teleren/devto huggingface dataset:
Jelly Fin: Looking For Contributors
Tags: jellyfin, opensource, contributors, help
Published: 2018-08-29 03:52:06

---
title: Jelly Fin: Looking For Contributors
published: true
description: Here's an update on the status
tags: jellyfin, opensource, contributors, help
---

Jelly Fin is opensource now.  Thanks to @ben for the encouragement!  You can find it here:

{% github jonathan-irvin/jelly-fin %}

Right now, it's just me, but I could use some help if you're willing.  I've never truly done a serious open-source project before so I'm not sure where to start to make sure it's successful.  Any tips?

If you're interested in pitching in, sweet.  The most I can offer is just some exposure to cool things like serverless architecture, multi-platform development, clean design, and a LOT of opinions.

I have some issues created now to outline some features, but I could use some help in documentation, building out the API on AWS, and then the beast that will be the client.

Please comment below if you're interested in what should be a fun project!
Avoiding Font Piracy On GitHub & Netlify
Tags: github, opensource, licensing, webfonts
Published: 2018-08-28 21:50:55

---
title: Avoiding Font Piracy On GitHub & Netlify
published: true
description: After reading "How GitHub became the web’s largest font piracy site (and how to fix it)" I was wondering how I can avoid uploading/publishing font files on GitHub, considering that most of my sites are deployed by Netlify, and require all files to be inside the GitHub repository.
tags: github, open source, licensing, webfonts
---

After reading *[How GitHub became the web’s largest font piracy site (and how to fix it)](https://pixelambacht.nl/2017/github-font-piracy/)* I was wondering how I can avoid uploading/publishing font files on GitHub, considering that most of my sites are deployed by Netlify, and require all files to be inside the repository.

At first I tried to encrypt the fonts using a 7z archive. Unfortunately, 7zip can not be used inside Netlify deploys, so I decided to try and download an archive from a secret, remote location before building the project:

```json
"scripts": {
  "build": "npm run fonts:fetch && gatsby build",
  "fonts:fetch": "wget -O Fonts.zip $SECRET_FONTS_URL; unzip Fonts.zip -d ./static/fonts; rm Fonts.zip",
}
```

I run an NPM Script called `fonts:fetch`, which will download a zip file from a secret location specified inside an environment variable. This zip file can then be extracted to a desired location and Netlify can use it inside the building process.

Inside my deploy settings, I can then set that secret URL:

![](https://thepracticaldev.s3.amazonaws.com/i/t3gv6j83e577im57v8wp.png)

... which ensures that no trace of the font files is left inside the repository! 👮‍♂️
How do you estimate time required for assigned task?
Tags: discuss
Published: 2018-08-29 01:39:09

---
title: How do you estimate time required for assigned task?
published: true 
description: 
tags: #discuss
cover_image: https://thepracticaldev.s3.amazonaws.com/i/4rkspowjbwhky2yi6dar.png
---

When some tasks are assigned to you, your boss would often ask for your estimated time for assigned task. 

For me, I often say a very draft estimate which is not a accurate time it finally used. 

How would you do time estimation?


# General Estimated Time

I would like to conclude the general estimated time from the comments in this post. 

> The responded estimated time would be double of your estimated time generally.

```
Responded Estimated Time = 2 * Estimated Time
``` 

## Why

* The task may be highly unknown which developer may never try.
* Extra task may be required such as deployment, merge, review, testing. The definition of real completion may be different from your definition.
* There may be extra requirement such as documentation
* There may be technical obstacle which block you continue
* Meeting, Communication and other assigned task make you cannot continue 
* Personal problem such as sick, family issue and daily life problem
* Third Party Dependency. It may be your teammate, client or partner 
* There may be something more that you cannot imagine when you do estimation

*It is just draft response to our customer or boss to make them feel safe. Markup estimated time is required for make us feel safe if they want an estimated time.*

*Time estimation is just iterative estimation. No correct estimate until it ends*

# Progress Report

Even a double estimated time would not make your task complete on time. I suggest you to have regular progress update for your boss, customer or any stakeholder. Any surprise of agreed estimated time would make you get a extreme trouble. Progress update may make you safer. 


*This post is republished in [Medium](https://medium.com/developer-notes/how-do-you-estimate-time-required-for-assigned-task-8a070a1dd726)*
Using .Net Core Console Apps as a Baseline for Teaching Programming
Tags: dotnet, dotnetcore, console, teaching
Published: 2018-08-29 00:54:54

---
title: Using .Net Core Console Apps as a Baseline for Teaching Programming
published: true
description: Re-envisioning coding instruction starting with a modern language and simple, fast feedback loops, with no UI or DB concerns to start.
tags: #dotnet, #dotnetcore, #console, #teaching
---
![ToCode.Software](https://thepracticaldev.s3.amazonaws.com/i/ln7hrhu1joz8wknglpt3.PNG)
Many self-taught programmers, myself included, become easily overwhelmed by modern app and web development tutorials. My thought is that this is caused by the combination of UI, Database, and logic layers. So I decided to make [ToCode.Software](https://tocode.software) as a new type of tutorial.

I am a .Net developer, and I also love cross-platform code. There is a wonderful web tool, [DotNetFiddle](https://dotnetfiddle.net), that can help anyone from beginner to professional try out some simple C# code. I used DotNetFiddle as an embedded, interactive template for the beginning lessons of ToCode.Software, so users can try out code without ever leaving the site.

As the second step, I introduce [Visual Studio Code](https://code.visualstudio.com/), [.Net Core](https://www.microsoft.com/net/download), and the bash shell, so learners can start making their own simple console apps with file-based, object-oriented classes.

After going over many of the basics of the C# language and coding logic, there are two projects, a simple [ChatBot](https://tocode.software/2018/06/16/lesson-3/), and a more complicated [Go Fish Game](https://tocode.software/2018/08/26/lesson5_gofish_pt1/). I hope to expand this series to include many of the following concepts:

1. Adding an app UI with Xamarin.Forms
2. Adding a web UI with HTML and CSS
3. Connecting to a SQL database to store and retrieve data

I'd love some feedback on this project. Feel free to comment here, or on the site, and share!
Change the date of a git commit
Tags: git, webdev, hacks, showdev
Published: 2018-08-29 15:09:52

---
title: Change the date of a git commit
published: true
tags: git, webdev, hacks, showdev
canonical_url: https://codewithhugo.com/change-the-date-of-a-git-commit/
---

One of the greatest and worst things with git is that you can rewrite the history. Here’s a sneaky way of abusing that, I can’t think of a legitimate reason to do this.

As with anything, thanks StackOverflow for all the options I can pick from 👍.

## Set the date of the last commit to the current date

```
GIT_COMMITTER_DATE="$(date)" git commit --amend --no-edit --date "$(date)"
```

## Set the date of the last commit to an arbitrary date

```
GIT_COMMITTER_DATE="Mon 20 Aug 2018 20:19:19 BST" git commit --amend --no-edit --date "Mon 20 Aug 2018 20:19:19 BST"
```

## Set the date of an arbitrary commit to an arbitrary or current date

Rebase to before said commit and stop for amendment:

1. `git rebase <commit-hash>^ -i`
2. Replace `pick` with `e` (edit) on the line with that commit (the first one)
3. quit the editor (ESC followed by `:wq` in VIM)
4. Either:
  - `GIT_COMMITTER_DATE="$(date)" git commit --amend --no-edit --date "$(date)"`
  - `GIT_COMMITTER_DATE="Mon 20 Aug 2018 20:19:19 BST" git commit --amend --no-edit --date "Mon 20 Aug 2018 20:19:19 BST"`

See here for more information around rebasing and editing in git: [Split an existing git commit](https://dev.to/hugo__df/split-an-existing-git-commit-26d6).

[Sean Mungur](https://unsplash.com/@seanmungurdp?utm_medium=referral&utm_campaign=photographer-credit&utm_content=creditBadge "Download free do whatever you want high-resolution photos from Sean Mungur")
When is it appropriate to ask for donations?
Tags: discuss
Published: 2018-08-28 22:28:52

---
title: When is it appropriate to ask for donations?
published: true
tags: discuss
---

When is it appropriate to ask for donations? I've seen developers with donation links in Github READMEs, or on project websites, and even pinned tweets. Would it be appropriate to add a donation link at the end of an article on DEV?
What's the difference between Kubenetes, Docker, Boxes, VMware, Rancher and Virtualbox?
Tags: help, vmachines, vm, explainlikeimfive
Published: 2018-08-28 21:06:55

---
title: What's the difference between Kubenetes, Docker, Boxes, VMware, Rancher and Virtualbox? 
published: true
tags: help, vmachines, vm, explainlikeimfive
---
Git squash via sourcetree
Tags: git, squash, sourcetree
Published: 2018-08-28 20:46:32

---
title: Git squash via sourcetree
published: true
description: How to git squash using sourcetree
tags: git,squash,sourcetree
---

There are some very detailed posts on `dev.to` how/why to git squash.  Especially from the cli.  Here's how you might do the same thing with sourcetree.

I am the maintainer of an alpine package and the maintainers of alpine's package system are sticklers.  Each time I submitted an update, they requested that I squash my commits.  This confused me because GitHub allows you do that automatically on pull requests.  Well I guess I should appease the maintainers and learn how to do it.

![Sourcetree](https://thumbs.gfycat.com/ColorlessSeveralAmericanbadger-size_restricted.gif)
[HD version](https://gfycat.com/gifs/detail/ColorlessSeveralAmericanbadger)

It took me a long time before I realized to git squash commits that have already been pushed, you'll need to force push.  Sourcetree hides the ability to force push, which is fine by me.

```bash
git push --force
```

Then after that, the branch will look like this.

![After git push --force](https://thepracticaldev.s3.amazonaws.com/i/rvudlahoilhpez6vcj4y.png)

This is the basic concept that you'll use on your branches.  Sourcetree makes it more visual of a process.
CSS Custom Properties (Native FWT)
Tags: css, webdesign, ui, webdev
Published: 2018-08-28 20:30:16

---
title: CSS Custom Properties (Native FWT)
published: true
description: Modern CSS has a powerful feature called CSS Custom Properties (AKA CSS Variables); this feature allows us to get things done more elegantly (Native FWT).
tags: CSS, Web Design, UI, web development
cover_image: https://thepracticaldev.s3.amazonaws.com/i/95q9d1yv0w7p3aulwpxc.png
---

# Introduction

A style sheet consists of a list of rules, and many of theme might contain duplicate data; for instance an application may establish a color scheme and resume 3+ colors, or the size of the gutter (gap) between columns throughout the application. Altering this data can be excruciating and fallible. Modern CSS has a powerful feature called CSS Custom Properties (AKA CSS Variables); this feature allows us to get things done more elegantly (Native FWT).

## Custom properties `--*`

CSS variables are prefixed with `--`, like `--color-primary`, represent custom properties that contain a value that can be reused throughout the application using the `var()` functional notation.

> Unlike other CSS properties, custom property names are case-sensitive.

## Usage

Declaring and using variable:

```
:root {
  —color-primary: tomato;
}

h1 {
  color: var(—color-primary);
}

button {
  background-color: var(--color-primary);
}
```

A common use case is to define variable(s) in the `:root` pseudo-class and then use it wherever the value is needed to halt some instances of repetition.

## Custom Property fallback values

Using `var()` functional notation you can define multiple fallback values when the given variable is not yet defined. The first argument to the function is the name of the custom property (CSS variable) to be substituted. The second argument to the function, if provided, is a fallback value, which is used as the substitution value when the referenced custom property is invalid.

Example: Coral, will be the color value for h2 tag because `--color-secondary` is not defined

```
h2 {
  color: var(—color-secondary, coral);
}
```

Example: Black is the border color value because both of `--color-main` and `--color-accent` are not defined

```
blockquote {
  border-left-color: var(--color-main, var(--color-accent, black));
}
```

Example: Invalid number of arguments


```
footer {
  background-color: var(--color-a, --color-b, red);
}
```

---

## Demo

For this article I’ve prepared two examples: Internationalization (a real-world example of CSS variables usage), and Theme management; both can be found [here (original article)](https://elmahdim.com/css-custom-properties/#examples)

---

## Browser compatibility

![css variables](https://thepracticaldev.s3.amazonaws.com/i/2anpkgfy6ysjjmp7ox3t.png)

Further details can be found [here (caniuse)](https://caniuse.com/#search=CSS%20Variables)
If Statement Golf: what's the longest one you've seen?
Tags: game, if, conditionals, challenge
Published: 2018-08-28 20:29:30

---
title: If Statement Golf: what's the longest one you've seen?
published: true
description: TRIGGER WARNING - may induce rage for some developers
tags: #game,#if,#conditionals, #challenge
---

Let's play a little game. Who has seen the most ridiculous set of conditions within the parentheses of an `if` statement?

### Trigger Warning 😡

Before commenting, please know I understand there are developers out there who hate `if` statements with a passion. If you are such a developer, please stay away to avoid needing heart medication and/or a psychological examination.

Now, getting back to our little game...

### The rules 📖
- Only what's within a single set of outer parentheses of an `if` statement counts
  - JS example: `if ( condition ) {`
- If parentheses aren't required for your language of choice, then everything after the `if` and before the terminating character counts
  - e.g., BASH `if` statements wrap individual conditions in sets of parentheses or brackets, so they also count.
    - `if [ -r $1 ] && [ -s $1 ]; then`
- You can't count multiple sets of statements from something like an `if...elseif...else`. In cases like those, only use the set of conditions from a single `if` or `elseif`.
- In this case, I'm not counting multiple parts joined by conditional operators as a single condition. Everything between conditional operators is counted individually.
  - This refers to operators such as `and`, `or`, `||`, `&&` and any others your language uses.
- The character count I'm giving is exact because it's in front of me. If you can't pull it up immediately, it's ok to estimate. But please do estimate as close as you can.

##### One last note 📝

Honestly, I'm not sure if I'm using the word "condition" incorrectly here. Should I be using the word "expression" instead? This part of dev grammar is a little fuzzy to me.



With all of that out of the way, let the brain hemorrhaging commence. 😵🧠
Welcome Thread - v16
Tags: welcome
Published: 2018-08-28 19:47:16

---
title: Welcome Thread - v16
published: true
description: Introduce yourself to the community!
tags: welcome
---

Hey there! Welcome to dev.to!

![Abe Simpson says, "Oh, hi there!"](https://media.giphy.com/media/26tk1rgzY5mgjTuFy/giphy-downsized.gif)

Leave a comment below to introduce yourself to the community!✌️
# Welcome!
1. Leave a comment below to introduce yourself! You can talk about what brought you here, what you're learning, or just a fun fact about yourself.

2. Reply to someone's comment, either with a question or just a hello. 👋

3. Or answer this question: what advice would you give to yourself a year ago?
Jelly Fin: Ok, we're going Open Source
Tags: github, jellyfin, help
Published: 2018-08-28 19:41:23

---
title: Jelly Fin: Ok, we're going Open Source
published: true
description: This is a thing now.
tags: github, jellyfin, help
---

Ok, after much encouragement from the dev.to community, Jelly Fin is now Open-Source.  At the time of this writing, it's _very_ rudimentary.  

{% github jonathan-irvin/jelly-fin %}
Tips to Boost Lead Generation of Your Brand
Published: 2018-08-28 18:37:26

---
title: Tips to Boost Lead Generation of Your Brand
published: true
description: 
tags: 
---

Striving to reach the top in the tough and competitive world of digital marketing is pretty challenging. You have to come up with ideas that are unique and innovative plus follow the trends of the ever-changing technological world. 
The trends and techniques change with the arrival of every New Year, marketers have to keep up with this faced paced improvisation. However, if you ever ponder on the statistic the basics to success is the same and that is to capture the attention of the target users.
 
Several ways are there through which you can capture the attention of your target audience. To learn about the expert ways read on!

Create Compelling Campaigns

You can create compelling content campaigns for your brand. These campaigns can be of PPC, SEO or social media campaigns. Incorporate fun filled sides to engage your viewers. Use infographics, vlogs, video content animation and polling system to keep your customers indulged and engaged in your brand’s activities.

 Create Wikipedia Pages

It’s best to join hands with the experts if you want to take the leap to success and enjoy outbound online visibility. The <a href="https://wikipediaservices.net/">wikipedia writers</a> create successful wiki profiles for their users to engage their customers. Knowing the use of policies in the right manner, Wikipedia writers make sure that every brand receives highest online visibility while getting listed in the top charts. 

Maintain a High Content Quality

A high-quality content is interesting, precise, if detailed then has valuable information, error-free and up-to-date. By creating the best quality content, you can capture the attention of your target users and compel them to lay their trust in your brand. You can seek assistance from the professional Wikipedia writers to get your content created. 

Monitor Your Performance

It’s good to keep your statistics monitored timely. You should monitor the performance of your website on a regular basis. Check the areas, which needs to be improvised. Moreover, do check how your competitors are doing business. It good to keep your enemies closer. In this way, you will get to know all the most productive manners to promote and market your brand. 

Innovate Ideas

Remember one thing that to find success in the digital landscape you must innovate compelling ideas to bring your customers closer. Be a friend and establish a healthy relationship with them to give them an impression that you care and you strive to deliver the best services.
Introducing workflow
Tags: workflowwm, react, showdev, productivity
Published: 2018-08-28 18:15:47

---
title: Introducing workflow
published: true
description: an experiment in declarative windows management
tags: workflow-wm, react, showdev, productivity
---

_First posted on https://spectrum.chat/workflow?thread=7679137d-130c-4b8a-8eb2-09acf0d2b27c_. _Updated code samples to support [workflow@2.x](https://github.com/havardh/workflow/commit/ca77860)_.

`workflow` is a node command line tool that turns declarative layouts into running applications on your screen. 


![ReactExample.js](https://thepracticaldev.s3.amazonaws.com/i/chodmke88uapwkwsflhm.gif)


Layouts can be declared as javascript objects or as React applications. Layouts contain apps and their position on the screen, in addition to arguments which are passed to the apps. The code example below is the layout used in the gif above, declared as a React application. The React application is evaluated into javascript objects by a custom reconciler in the `render` function. 

```jsx
import React from 'react';
import { render, Workspace, requireComponent } from 'workflow-react';

const { SplitH, SplitV } = requireComponent('workflow-layout-tiled');
const { TextEditor, Browser, Terminal } = requireComponent('workflow-apps-defaults');

export const flow = render(
  <Workspace name={'workflow-react-example'}>
    <SplitV percent={1.0}>
      <SplitH percent={0.8}>
        <TextEditor percent={0.5} file={__filename} />
        <Browser percent={0.5} url={'https://github.com/havardh/workflow'} />
      </SplitH>
      <Terminal percent={0.2} cwd={__dirname} />
    </SplitV>
  </Workspace>
);
```

## Support

`workflow` supports Linux using i3 and OSX. It has experimental support for Windows and Linux using wmctrl (Ubuntu and more). There is support for at least one terminal, browser and text editor for each platform. Upcoming posts will describe how to implement/improve windows manager support and adding support for more applications. 

## Getting started

```bash
$ npm install --global workflow
$ workflow ReactExample.js
```

When you run `workflow` for the first time, it will ask you to set up your workflow-home directory. This is the place where you will add all your layouts and supporting libraries. The default location for the workflow-home directory is `~/.workflow`.


This post is the first in a series on how to use and extend `workflow` to suit your needs. The next [post](https://dev.to/havardh/controlling-your-desktop-layout-with-react-1g0b) describes how to write your own layout declarations. Workflow is still experimental and incomplete, but the foundations are starting to come together. Come join me building the community at https://spectrum.chat/workflow and the development at https://github.com/havardh/workflow.
The $500 MILLION dollar cost of WordPress Gutenberg
Tags: wordpress, opensource, gutenberg, php
Published: 2018-08-28 17:41:41

---
title: The $500 MILLION dollar cost of WordPress Gutenberg
published: true
description: Has anyone stopped to ponder the cost of Gutenberg to businesses world wide? 
tags: WordPress, Opensource, Gutenberg, Php
---
![elephant](https://thepracticaldev.s3.amazonaws.com/i/e88gqt09cekgelqcmy79.jpeg)

This is the elephant in the room - not that Gutenberg isn't ready for prime time. Has the WordPress team considered the knock on effect on Gutenberg? I explore this topic on Medium
https://medium.com/@scott.bowler83/wordpress-gutenberg-the-500-million-cost-to-business-c531cc70a2b1
React Tutorial: Building and Securing Your First App
Tags: javascript, react, authentication
Published: 2018-08-28 17:23:19

---
title: React Tutorial: Building and Securing Your First App
published: true
description: Learn how React works and create and secure your first React app in no time.
tags: #javascript #reactjs #authentication #react
canonical_url: https://auth0.com/blog/react-tutorial-building-and-securing-your-first-app/
---

In this article, you will learn the basic concepts of React. After that, you will have the chance to see React in action while creating a simple Q&A (Questions & Answers) app that relies on a backend API. 

[Read on ⚛️](https://auth0.com/blog/react-tutorial-building-and-securing-your-first-app/?utm_source=dev&utm_medium=sc&utm_campaign=firstapp_react)

![React Tutorial: Building and Securing Your First App](https://thepracticaldev.s3.amazonaws.com/i/i9q47wlzeyeynjaji871.png)
Feedback on my website
Tags: feedback, help
Published: 2018-08-28 16:36:49

---
title: Feedback on my website
published: true
description: 
tags: feedback, help
---


Heya, I'm currently trying to build up my website. I've been trying to post more regularly this year, and I've started fleshing out the content more in terms of projects.

I'd greatly appreciate any feedback as I'm not a designer. 

https://tj.ie/

Please feel free to share your own websites, or work you're proud of. It'd be great to get some inspiration, and celebrate the magic work you do!