teleren/devto huggingface dataset:
[New Release] Ubuntu Linux 18.04 Long Term Support – Bionic Beaver
Tags: uncategorized
Published: 2019-03-26 06:58:40

---
title: [New Release] Ubuntu Linux 18.04 Long Term Support – Bionic Beaver
published: true 
tags: Uncategorized
canonical_url: https://fossnaija.com/release-ubuntu-18-04-lts-bionic-beaver/
---

#### _How you can upgrade your Previous versions._

![](https://i2.wp.com/fossnaija.com/wp-content/uploads/2019/03/ubuntu_18_banner_1_fossnaija-1.png?fit=665%2C160&ssl=1)

Canonical(the company behind the development of ubuntu Linux) has released themuch awaited ubuntu 1804LTS – tagged “Bionic Beaver”. (Note:LTS stands for [LONGTERM SUPPORT](https://wiki.ubuntu.com/LTS)).The new Ubuntu 18.04 LTS has seen [somemajor improvements](https://wiki.ubuntu.com/BionicBeaver/ReleaseNotes?_ga=2.123539531.1716714468.1552333779-1204732084.1533608967)over its predecessor.

![](https://i1.wp.com/fossnaija.com/wp-content/uploads/2019/03/ubuntu-18-04-lts-bionic-beaver-released-fossnaija.jpg?fit=665%2C414&ssl=1)

Ubuntu 18.04 LTS will be supported by canonical till April 2023 (its usual 5 years) with security and performance updates.

Ifyou want to try out Linux, you can [downloadubuntu 18.04 LTS](http://releases.ubuntu.com/18.04/ubuntu-18.04.2-desktop-amd64.iso)from the official repository. But if you already have ubuntuinstalled on your PC, you can upgrade to this latest version.

### UPGRADING TO UBUNTU 18.04 LTS 

Tomove to the new ubuntu 18.04 FROM ubuntu versions [16.04LTS](https://fossnaija.com/linux-installation-dual-booting-with-windows-7/) or 17.10follow the steps enumerated below:

- Open the “ **Software & Updates** ” setting in system settings. 
- Select the third tab called “ **Updates** ”. 
- **For 16.04 LTS:** set the “ **notify me of a new version** ” drop down menu to “ **any new version** ” . 
- **For 17.10:** Set it to “ **For long term support versions** ”.

- Press _Alt + F2_ and type “ **update-manager -c** ” into the command box. 

- Update manager should open up and tell you that ubuntu 18.04LTS is now available. If not you can run : _/usr/lib/ubuntu-release-upgrader/check-new-release-gtk_ 

- Click upgrade and follow the on-screen instruction. 

**HappyLinux’NG!**

The post [[New Release] Ubuntu Linux 18.04 Long Term Support – Bionic Beaver](https://fossnaija.com/release-ubuntu-18-04-lts-bionic-beaver/) appeared first on [Foss Naija](https://fossnaija.com).
Vuetify Datatable, vuex and Laravel pagination (Updated)
Tags: vuetify, vuex, laravel
Published: 2019-03-11 19:44:38

---
title: Vuetify Datatable, vuex and Laravel pagination (Updated)
published: true
description: Struggling with this 
tags: vuetify,vuex,laravel
---

There is someone here who can tell me how to achieve this? i couldn't find any good tutorial using the same keywords above. 

Thanks. 

Update: I just make it work by my self, terrible documentation and poor examples on the web btw.
On The Inequality of Arrays
Tags: javascript, arrays
Published: 2019-03-11 18:56:12

I recently found out that two identical arrays are inherently non-equal and will never return 'true' when compared. My challenge was to solve the following problem:

>Write a function called moveAllZeros. It will take as its input an array of numbers. Move all 0's in that array to the end of it while maintaining the relative order of the non-zero elements. You must mutate the array. You cannot make a copy.

And I did so using the following code:

```javascript
const moveAllZeros = function (arr) {
  let i = 0;
  let zeroCounter = 0;
  while (i+zeroCounter < arr.length) {
    if ( arr[i] === 0 ) {
      arr.splice(i, 1);
      arr.push(0);
      zeroCounter ++;
    } else {
      i++;
    }
  }
  return arr;
};

const testArr = [1, 0, 3, 0, 0, 4, 9, 22, 18, 100, 20];
const resultArr = [1, 3, 4, 9, 22, 18, 100, 20, 0, 0, 0];

console.log(moveAllZeros(testArr));
```

I had assumed that I would be able to simply compare my output to the known value of the solution array, but this isn't true. It took me a good long time trying to figure this out using both `==` and `===` but to no avail until a coworker reminded me that in JavaScript, no array will never be equal to another array unless they are THE SAME ARRAY.

This is because, in JavaScript, all object types (including array) are compared by reference, not value. Per reddit user [/u/mursfZOR](https://www.reddit.com/user/mursfZOR)'s comment on [this thread](https://www.reddit.com/r/javascript/comments/539wea/why_are_my_two_arrays_not_equal_when_they_appear/), "only the primitive values can be compared for equality - i.e. boolean, string, number. The special values null and undefined also act this way."

Lesson learned.
How often do you have to go back and just focus on technical debt? 
Tags: discuss, productivity
Published: 2019-03-11 18:41:22

---
title: How often do you have to go back and just focus on technical debt? 
published: true
tags: discuss, productivity
---

Do you devote scrums/iterations for technical debt? If so, how often? 

What do you consider to be technical debt?
Setting up simple React & TypeScript project
Tags: typescript, react, parcel
Published: 2019-03-11 18:35:54

---
title: Setting up simple React & TypeScript project
published: true
description: 1st part of tutorial about simple project with React, TypeScript with Parcel
tags: TypeScript, React, Parcel
---


# Hello 👋🏻

This is my first blog post on dev.to. If you want to get those posts 1 week before those on dev.to you can join my newsletter on: https://krzysztofzuraw.com/newsletter


## Why

You may ask yourself why even bother adding a new template
when there is so much already existing? The answer is simple - because I can.
I also have an idea about presenting changes in this template as my project will grow so you can
see what was added and why.

## Template

It is nothing magical over there: you have [parcel-bundler](https://parceljs.org) that is doing the most of the work. You just plug `index.tsx` like you can see in `index.html`:

```html
<!DOCTYPE html>
<html>
  <head>
    <title>TypeScript + React with Parcel Sandbox</title>
    <meta charset="UTF-8" />
  </head>

  <body>
    <div id="app"></div>

    <script src="src/index.tsx"></script>
  </body>
</html>
```

One more important config to look into is `tsconfig.json` which tells TypeScript compiler how to compile a project. The most important entry from the point of type-safely is:

```json
"strict": true,
```

followed by:

```json
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
```

Type-safely means that you have to put more hard work into typing your application (like ensuring there are no implicit anys) but in reward of having fewer bugs in runtime. I encourage you to enable it every time.

As we are still in tsconfig - there is one entry called `plugin` where I put [typescript-tslint-plugin](https://github.com/Microsoft/typescript-tslint-plugin). This little fella will run tslint plugin from Microsoft in your VSCode. If you don't use VSCode - you can remove this one line.

Next to `tsconfig` is `tslint.json` - linter for TypeScript files configured to follow recommended [rules](https://github.com/palantir/tslint/blob/master/src/configs/recommended.ts) and prettier one. This `tslint-config-prettier` entry should be the last in `extends` array to ensure that prettier will format code according to tslint.

I've added also a [jest](https://jestjs.io/) for testing with [ts-jest](https://www.npmjs.com/package/ts-jest) that enables TypeScript support to unit test files.

## Summary & TL;DR

I give you TypeScript + React with Parcel playground:

- [Codesandbox](https://codesandbox.io/s/38lvk3x7l5)
- [Github](https://github.com/krzysztofzuraw-dot-com/react-typescript-parcel)
A library for Screenshot testing of the React Native application 
Tags: reactnative
Published: 2019-03-11 18:34:59

---
title: A library for Screenshot testing of the React Native application 
published: true
description: I've published recently a library for Screenshot testing of the React Native application https://github.com/rumax/react-native-PixelsCatcher. Please, fill free to use it and leave your comment. That can help me to improve it. Pull request and new ideas are also more than welcome
tags: react-native
---

I've published recently a library for Screenshot testing of the React Native application https://github.com/rumax/react-native-PixelsCatcher. Please, fill free to use it and leave your comment. That can help me to improve it. Pull request and new ideas are also more than welcome.
This Why You Should Start doing Code Reviews
Tags: security, beginners, career, productivity
Published: 2019-03-11 18:33:38

#### ***There are three main reasons why everyone should start doing code reviews today in my opinion:***


## **1) Improves your code's efficiency and performance. ⚡**
First of all, when you're writing codes, you tend to always chose the simplest and fastest way. For example, I'm currently writing a new search engine for the site [Anime Twist](https://twist.moe) because the one we have right now is running on the browser side and has really bad performance which leads to users with bad devices to have freeze. And I chose to do this task with Elasticsearch, so while I while I was working on the migration function, I was adding each entry by sending a new insert request to the database until my team mate gave me a code review and told me that I should use bulk instead, I knew it but I didn't apply it until someone else told me about it.


## **2) Enhances your code's quality. 👌**
Generally, when we're writing code alone, we don't care much about the quality of the code as long as it works, no tests and no documentation. That's how I always end up doing which is terribly bad especially when you're a back-end engineer like me, you don't know if your code works right without tests. But, when I ask for code reviews and they compliment my code, It gives me a lot of motivation and makes me want to write the best code I've ever written.


## **3) Security. 🛡**
Usually, when you write your code, you think about how it should work but never how it shouldn't work which leads to more vulnerabilities. I'd advice for this one, getting code reviews from the opposite field of development that is going to use your work. For example, back-end developers may not know exactly how their API is going to be used on the front-end so they end up most of the time, making huge mistakes for cause of lack of experience.


### ***In conclusion, I don't know if you saw it or not but Github has a feature to add comments to code.***
I'm jen chan, and I support people who don't have my opportunities.
Tags: wecoded, a11y
Published: 2019-03-11 18:07:38

---
title: I'm jen chan, and I support people who don't have my opportunities.
published: true
tags: shecodedally, a11y
---

## I advocate for equality by...
Donating to the poor when I have more than enough money to spend
Spending time listening to people who are having a hard time
Making sure those who I work with get paid and are clear on the terms of their work or volunteering
Pushing back on my privilege by highlighting members who aren't like me don't receive equal treatment or have their voices heard in meetings

## I will advocate for equality by...
Hopefully, not letting accessibility slide to the last item of the list
 
## I hope to see my school/work/developer/tech community...
do more than acknowledge systemic bias and hire leaders, create space for open conversation, treat offences just as they are, as mistakes.

## My advice for fellow allies is...
listen more
read the other #shecoded posts

Andddd.... I pressed post too fast and didn't know `published:true`
Random Youtube Song Player
Tags: youtube, api, beginners, showdev
Published: 2019-03-11 17:36:49

---
title: Random Youtube Song Player
published: true
description: Listen to a random song from thousands of A.R. Rahman's creations.
tags: youtube, api, beginner, showdev
---

#Random Youtube Song Player 

(https://rahmanify.harith.xyz)

Hi,

I am just getting started with web development and have built [this](https://rahmanify.harith.xyz) fun project. It is a random song generator from a list of albums of a well known Indian composer, A.R. Rahman. 

I have used an API from https://musicbrainz.org to get the album database of the composer in JSON format. Then I randomly select a song from the list and pass it to the Youtube search API which will return a list of search results. However, I only return the top result which is always accurate.Then the web app redirects the page to youtube with the returned video ID. Finally, the web app is hosted on Firebase.

Limitations of this app:
1. Couldn't filter the year of the album due to the limitations of the API.
2. Doesn't work on Safari and Firefox yet.
3. Youtube API only accepts around 200 requests per IP, I think.

Any form of suggestions on how I could improve this simple app is highly appreciated,
Thank you.
Introducing Jekyll Rest
Tags: jekyll, ruby, opensource
Published: 2019-03-11 21:55:45

---
title: Introducing Jekyll Rest
published: true
tags: [jekyll, ruby, oss]
canonical_url: https://scottw.com/jekyll-rest
---

Executive Summary - [Jekyll Rest](https://dev.to/scottw/jekyll-rest-3jhl) allows you to publish to a Jekyll based site which uses Github as a repository.

One of the things I like about the Jekyll + Github + Netlify combination is there is nothing to manage. No backups. No (major) concerns with hosting. Ultimately, nothing to do but write[^1]. This is actual serverless IMO.

The trade-off is a slower publishing flow and usually being tied to a computer with Git access. Most of the time this is not as big of an issue as it would seem (how many of you blog more than once a week). However, I am continuing to try and flush out my “shorts” concept and always needing to be at a computer with Git access was slowing me down.

I had initially hoped I could leverage Zapier and avoid writing any code. Unfortunately, Zapier[^2] only got me about 50% there. Zapier is willing and able to receive a post from me from just about any tool (web, email, and even SMS), but I could not figure out how to correctly format my content to make it work with the Github V3 rest API[^3].

The more I play with Zapier, the more convinced I am I could make it work, but I soon realized that sending in posts from various devices require a bit more finessing of the data. This ultimately made writing it in Ruby even more appealing.

In the end, I built something I am calling Jekyll Rest. It is a single endpoint you host on your own in a matter of seconds on Heroku.

It has just one endpoint, `create`. This endpoint was written to be as flexible as possible. You can specify all of the individual parameters (title, date, body, etc.) or you can send it a block of frontmatter. It will do its best to decipher what you meant, even extracting a title from your content if necessary. The rules for this are defined on the [GitHub readme](https://github.com/scottwater/jekyll_rest/blob/master/README.md).

With this endpoint, you can do a couple of things:

1. You can add it Zapier. This enables you to compose blog posts via email or SMS.
2. Automate your workflow.

I have done both. I have it set up now so that I quickly email and txt new short posts. I also built a simple UI that helps me share various things I find interesting.

[^1]: I will someday how I can see blogging as just writing
[^2]: Zapier is amazing.
[^3]: The biggest issue was base64 encoding the content
CtrlP Shortcuts for Rails
Tags: vim, rails
Published: 2019-03-12 14:30:18

---
title: CtrlP Shortcuts for Rails
published: true
tags: [vim, rails]
canonical_url: https://scottw.com/s8d
---

I liked how @garybernhardt had specific rails shortcuts in vim for his Selecta script. As a fan of CtrlP + Ag, I did not want to switch, so I came up with the following which works well.


```viml
map <leader>gv :CtrlP app/views<cr>
map <leader>ga :CtrlP app/assets<cr>
map <leader>gc :CtrlP app/controllers<cr>
map <leader>gw :CtrlP app/workers<cr>
map <leader>gm :CtrlP app/models<cr>
map <leader>gl :CtrlP lib<cr>
map <leader>gs :CtrlP spec<cr>

```

The pattern should be obvious. One mistake I initially made was using:

```viml
map <leader>gl :CtrlP<cr>lib/

```

This ends up just entering lib/ for you in the search and does not explicitly limit the search to the lib directory. This is noticeably slower since each keystroke is a wasted search. Also, with a small directory name like _lib_, it is easy to have invalid fuzzy matches. The CtrlP + directory and then enter keeps the search focused on the specified directory only.
Python's except quirk
Tags: python
Published: 2019-03-11 16:01:41

---
title: Python's except quirk
published: true
description: A short Python snippet that does something totally unexpected.
tags: python
canonical_url: https://pydist.com/blog/python-except
---

Let me show you my favorite Python quirk. What would you expect this python code to do?
```python
e = 2.718
try:
    1/0
except ZeroDivisionError as e:
    pass
print(e)
```
If you come to Python from another programming language, you might expect that the `except` clause introduces a nested scope, so assigning to `e` in the clause does not effect the pre-existing `e` variable in the outer scope. However, in python control structures do not generally introduce nested scoped (comprehensions being the exception), so with more python experience you would probably expect this to print a `ZeroDivisionError` instance.

Actually, in the standard CPython implementation it prints nothing; instead, the last line raises a `NameError`. Is this a bug? Actually, it was [quite intentional](https://bugs.python.org/issue1631942). If you look at the bytecode generated by the except clause, you see:
```
LOAD_CONST 0 (None)
STORE_NAME 1 (e)
DELETE_NAME 1
```

When control flow exits the `except` block, python deletes the name from scope. Why? Because the exception holds a reference to the current stack frame, which contains *everything* in scope. Since python is manages memory primary via reference count, this means that nothing in the current scope will be freed until the next round of garbage collection runs, if at all. The current behavior is a compromise between memory usage, ease of implementation, and cleanliness of the language. It is a bit of a wart, but I think it embodies a one of the things I love about Python: not letting purity get in the way of practicality.

But that only explains the `DELETE_NAME` instruction. Why does CPython set `e` to `None` if it's going to delete it immediately afterwards? Well, imagine you had the same thought as the CPython team, and decided to clean up the exception reference at the end of your `except` block:
```python
try:
    1/0
except ZeroDivisionError as e:
    ...
    del e
```

At the end of your `except` block, CPython will try to delete the name `e`&mdash;which you already deleted! To get around this, CPython assigns `e = None` before deleting `e` to guarantee that `e` exists.
What tech skill do you want to learn next? 🤓
Tags: learning, beginners, programming, help
Published: 2019-03-11 15:53:08

--- 
title: What tech skill do you want to learn next? 🤓
published: true
description: What's a tech skill you are interested in learning? Tell us and we'll build a course for it!
tags: learning, beginners, programming, help
---

Last week we [announced an exciting partnership](https://medium.com/nextdottech/packt-and-next-tech-partner-to-bring-interactive-tech-education-to-developers-da6e2f33cd5d) with technology publisher Packt. We're working with them to build a library of hands-on courses for learning tech skills, and we'd love to hear what you're interested in learning!

We've already released a number of courses covering topics like:

- Software engineering
- Web development
- Data science
- Machine learning
- Databases & SQL

Here's a screenshot from a machine learning course that contains a Jupyter Notebook:

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

Here's another one of a SQL course:

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

These courses all provide browser-based environments where you can get real-world experience with what you're learning. Getting to actually build something is an important part of the learning process, but too often performing hours of setup gets in the way of mastering a new skill.

We built the Next Tech IDE to solve exactly this problem, and we're very excited about this partnership with Packt, as it means we'll be able to release more hands-on courses than ever before!

# What do you want to learn?

Okay, enough about us, tell us about you! What are you interested in learning? Is it a specific language, a general area of technology, or something else?

If you'd like, you can pick a title from the [Packt website](https://www.packtpub.com/) and just reply with it below! We'll respond and let you know if it's a course we're already working on or let you know when we can release it!

Your input is really valuable to us as Packt has SIX THOUSAND eBooks and videos, so there's a lot for us to pick from! 🥴

In the meantime, want to see what the current courses look like? Head over to [our website](https://c.next.tech/2NPMsFH) to check 'em out!
How Agile Teams Grow Toxic! Episode 4 | Commitments
Tags: career, agile, productivity
Published: 2019-03-11 15:29:23

---
title: How Agile Teams Grow Toxic! Episode 4 | Commitments
published: true
description: How can you do your best work on a software project with the wrong (or too many!) commitments?
tags: #career #agile #productivity
---

Does it ever feel like you'd get so much more done if it weren't for *how much work people have you do to make commitments*?

Today I'd like to help you understand whether the development team you're on is making commitments in a way that's compatible with the people at the company -

...or will stress them out and put the software project at risk!

Since most teams I have worked with [aren't really agile](https://www.youtube.com/watch?v=H6GdK-dChtY&list=PL32pD389V8xt_znF-pvOl7OP_xNfnkGgq&index=5), I'm focusing on helping you with the risks with commitments between the wrong people - which often happens in "traditional" software development companies.

Whether you're a programmer, in UX, or maybe operations - commitments that are too strict, or too unrealistic, put your job and the success of the project in danger.

Let me share with you some insights I've learned about how commitments can cause agile teams to grow toxic.

Afterwards, I'll give you some actionable tips on what you can do to cope with traditional (non-agile) teams that require unrealistic commitments.

I hope this helps you select the best project for your career, or if you're on an unhealthy team - protect yourself so you have the best chance of being successful!

Visit my site to watch the entire 25 minute video (or listen as a podcast):

# [📺 Watch or 🎧 Listen](https://jaymeedwards.com/2019/03/08/how-agile-teams-grow-toxic-ep-4-commitments/)

Related videos:
* [📺 The Secret of Scrum Nobody Talks About](https://bit.ly/2E30krX)
* [📺 An Agile Budget Keeps You From Being A Code Monkey](https://bit.ly/2XO6Trd)
* [📺 What REALLY Gets Software Developers Promoted?](https://bit.ly/2IvVQzm)
* [📺 How Agile Teams Grow Toxic! Ep. 3 Forecasting](https://bit.ly/2VHhSAQ)
* [📺 Why Do So Many Programmers Lose Hope?](https://bit.ly/2SUtYop)<hr />

[🔔 Subscribe for over 100 videos on healthy software development](https://YouTube.com/c/JaymeEdwardsmedia?sub_confirmation=1)