teleren/devto huggingface dataset:
sudo apt-get install python-software-properties
Tags: install, ubuntu, python
Published: 2017-10-15 08:07:18

---
title: sudo apt-get install python-software-properties
published: published
description: Install python software properties on Ubuntu Desktop, Ubuntu Server 16.04.3, Linux Mint, Vagrant Box
tags: Install, Ubuntu, Python
---

```shell
➜  ~ sudo apt-get install python-software-properties 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  liblua5.1-0 libvpx3
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  python-pycurl
Suggested packages:
  libcurl4-gnutls-dev python-pycurl-dbg python-pycurl-doc
The following NEW packages will be installed:
  python-pycurl python-software-properties
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 64.0 kB of archives.
After this operation, 299 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 python-pycurl amd64 7.43.0-1ubuntu1 [43.3 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 python-software-properties all 0.96.20.7 [20.7 kB]
Fetched 64.0 kB in 0s (96.3 kB/s)                
Selecting previously unselected package python-pycurl.
(Reading database ... 122145 files and directories currently installed.)
Preparing to unpack .../python-pycurl_7.43.0-1ubuntu1_amd64.deb ...
Unpacking python-pycurl (7.43.0-1ubuntu1) ...
Selecting previously unselected package python-software-properties.
Preparing to unpack .../python-software-properties_0.96.20.7_all.deb ...
Unpacking python-software-properties (0.96.20.7) ...
Setting up python-pycurl (7.43.0-1ubuntu1) ...
Setting up python-software-properties (0.96.20.7) ...
```
Organizing a Local Open Source Talk?
Tags: discuss, opensource, talk
Published: 2017-10-15 04:40:50

---
title: Organizing a Local Open Source Talk?
published: true
tags: discuss,opensource,talk
---

Hello,

Given you're an open source enthusiast,

and you live in Sudan where most tech people/companies still think of "open source" as a synonym for "free of charge"

...and those who actually know its meaning are either afraid and/or don't know how to start contributing to OSS! 

How would you organize a talk(s) about these topics:

1. What is open source? And how to start contributing?
2. Open source as a business!

Keep in mind that you have never been in a tech conference before :(

Thanks
I learned a lot, but how much?
Tags: devtips
Published: 2017-10-15 03:53:34

---
title: I learned a lot, but how much?
published: true
description: A method for assessing what was learned during a project.
tags: devtips
---

We’re often told in programming that personal projects are, in addition to being a great way to build a portfolio of work to show prospective employers, a method for learning new things. That’s totally true. Personal projects, especially if we’re working solo, can provide challenges that will help us learn combined with the freedom to pursue this work at our own pace and in whatever area we’re interested in exploring.

So, how do we tackle a personal project? We sit down, plan it, code it, tweet about it and then after boatload of work and the excitement of launching, we’re done, right? I often have had the sense that I learned “so much by working on something.

Sure. But what exactly have we learned? Has this been useful to us beyond the project existing for ourselves and others to use? How do we gauge the value of this experience in terms of our education and growth?

For me, the answer lies in something many of us who work in Agile paradigms are already familiar with, but with a slightly different focus: The retrospective.

Fairly recently I’ve started doing a retrospective session to see what I got out of doing a particular personal project. If you wanted, you could even do a solo sprint and retrospective pattern of work as well. These retrospectives help me to gain insights into what worked, what didn’t, etc. Surprising things turn up as I write about the project I just completed.

When I’m done I have an immediate and thorough understanding of what I’ve just done and what I learned along the way. An added benefit is that as long as I keep doing this, I’ll have a record I can look back on of what I was thinking in the moment and what the most distinct aspects of the project were for me at the time.

I also take a little time to reflect on what I learned about myself as a person in doing the project. What kind of choices I made, how I reacted to the challenges and hurdles I encountered, and what parts were satisfying or interesting to me. This can help lead my choices for future projects as well as areas that might be interesting to pursue in my study and work choices.

It does take a bit of extra time and effort to do this, but not overly much and it’s been worth doing so far. If you’d like to try it out yourself, here’s my template to use as a starting point for your own:

- Challenges going into the project:

- What resources did I have to mitigate these challenges? (People, books, sites, etc)

- How did I prepare for the project?

- Challenges during the process:

- Where did I get really stuck?

- How did I overcome those hurdles?

- Could I have done it better and what would that have taken?

- If this project exposed knowledge gaps, what do I need to learn?

- What did I learn from this project?

 - Technologically:

 - Personally:
Breaking Free from the CSS Specificity Trap!
Tags: css, rwd, eqcss
Published: 2017-10-14 21:25:56

---
title: Breaking Free from the CSS Specificity Trap!
published: true
description: Have you ever wished the specificity of the CSS rules you were writing could be different from the selector you have used?
tags: css, rwd, eqcss
---

Have you ever wished the specificity of the CSS rules you were writing could be different from the selector you have used?

Watch me break free from the specificity trap using EQCSS and ReSpec, and learn how the technique works so you can use it in your own projects!

[Setting Custom Specificity for CSS Rules on YouTube](https://www.youtube.com/watch?v=z9FtZGJHKYY)

<iframe width="560" height="315" src="https://www.youtube.com/embed/z9FtZGJHKYY?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>

- [EQCSS demo](https://codepen.io/tomhodgins/pen/QqZwva)
- [EQCSS Homepage](https://github.com/eqcss/eqcss)
- [ReSpec demo](https://codepen.io/tomhodgins/pen/mBzywr)
- [ReSpec Homepage](https://github.com/tomhodgins/respec)

Thanks for watching, happy hacking!

Follow me on twitter ➸ https://twitter.com/innovati
curl oh-my-zsh
Tags: install, ubuntu, zsh
Published: 2017-10-14 18:32:58

---
title: curl oh-my-zsh
published: published
description: Install oh-my-zsh on Ubuntu Desktop, Ubuntu Server 16.04.3, Linux Mint, Vagrantbox
tags: Install, Ubuntu, ZSH
---

```shell
vagrant@vagrant:~$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Cloning Oh My Zsh...
Cloning into '/home/vagrant/.oh-my-zsh'...
remote: Counting objects: 831, done.
remote: Compressing objects: 100% (700/700), done.
remote: Total 831 (delta 14), reused 776 (delta 10), pack-reused 0
Receiving objects: 100% (831/831), 569.01 KiB | 172.00 KiB/s, done.
Resolving deltas: 100% (14/14), done.
Looking for an existing zsh config...
Found ~/.zshrc. Backing up to ~/.zshrc.pre-oh-my-zsh
Using the Oh My Zsh template file and adding it to ~/.zshrc
Time to change your default shell to zsh!
Password: 
         __                                     __   
  ____  / /_     ____ ___  __  __   ____  _____/ /_  
 / __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \ 
/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / / 
\____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/  
                        /____/                       ....is now installed!


Please look over the ~/.zshrc file to select plugins, themes, and options.

p.s. Follow us at https://twitter.com/ohmyzsh.

p.p.s. Get stickers and t-shirts at http://shop.planetargon.com.

```
LB Console for BigIp F5
Tags: django, loadbalancer, devops
Published: 2017-10-14 17:15:24

---
title: LB Console for BigIp F5
published: true
description: Custom console for BigIp F5
tags: #django #loadbalancer #devops 
---

## Introduction

LB Console is an application that wraps functionalities provided by BigIp F5 UI to configure load balancer. BigIP F5 load balancer is one of the extensively used load balancer (at least in e-commerce domain). 

## Problem statement

Though BigIp F5 has very effective UI but in terms of usability users are required to have some understanding of how F5 works.

Things get much complex for teams who want to integrate monitoring application, deployment application & other planned activities. As there is a learning curve required to understand basic working of F5 plus the API integration at multiple levels feels like an overhead for the consumer.

## Solution

An application that performs all required transactions with BigIp F5. That exposes REST endpoints that can be used for integration with other applications. 

Have a simpler UI that is user friendly & fast. A tracking mechanism that keeps log of all critical transaction.

## Tech stack

* Python Django framework
* [PyControl](https://github.com/mcauthorn/pycontrol)
* ElasticSearch
* Python Boto3
* Docker

#### RESTful approach

Implementing a simple RESTful approach proved to be extremely useful as it enabled teams to easily integrate the same with deployment strategies and moving application from data centres to cloud (AWS & OpenStack).

#### Django DB Caching

As the volume of pools and servers configured at F5 were moderatley large ~3k servers under ~1K pools, read calls from LB Console to BigIp F5 were considerable. Hence to minimise # of calls to F5 Django DB based caching came in handy. 

This enabled the application to query directly to F5 only when the required data was not present in the cache. Result from every F5 query being saved in cache with a short TTL (300s) ensured that data being served almost instantly & F5 query calls only in the event of cache miss occurrence.

#### ElasticSearch based logging

ElasticSearch based logging each of the create/update/delete transaction helped in keeping critical data readily available for consumers. User interface being the primary consumer to display logs per server or pool, later the same was integrated with our IRC channel for users to query the logs from IRC itself.

#### Docker 

Conventionally Django projects were shipped as tar files in production or in some cases deployment via Git was practiced. So to bring some reliablility and standardisation in deployment approach Docker came very handy plus usual benefits of using containerisation. 

LB Console application also solves complex problems like:

- Traffic switching within data centres.
- Managing DNS entries in AWS Route53.
Ellie Weekly Update 2017-10-14
Tags: ellie
Published: 2017-10-14 15:39:12

---
title: Ellie Weekly Update 2017-10-14
published: true
description: What's new with Ellie this week
tags: Ellie
cover_image: https://thepracticaldev.s3.amazonaws.com/i/h690tlbqsklrkpclvfyl.png
---

Hi friends! I wanted to keep you all updated on what's happening with Ellie. I'll publish a roundup each week that I actually make changes and then archive the related cards in [Trello](https://trello.com/b/7cFN60SP/ellie). Here's this week's update:

### New Features
- Put some links in the header. You can find links to [Twitter](https://twitter.com/ellie_editor), [GitHub](https://github.com/lukewestby/ellie), and [Trello](https://trello.com/b/7cFN60SP/ellie) at the top right of the app.
- The open section in the sidebar can be closed.
- Replaced the message in the `Ready` screen with a button to start compiling.

### Community
- Added a README in the [repo](https://github.com/lukewestby/ellie) that contains info about how to develop Ellie locally.
- Created a contributor license agreement and linked it to the repo with [CLA Assistant](https://cla-assistant.io/)
- Got the live stream going again, check out Friday's stream [here](https://www.youtube.com/watch?v=0OaYBzJpDgM)

### Finance
- Applied to [Open Collective](https://opencollective.com/ellie)

### In Progress and Experiments
- Adding a section to view calls to `Debug.log`
- Learning PureScript to see if it's worthwhile to use it to rewrite the build manager.
- Considering options to abstract the S3 dependency so people don't have to set up a bucket in order to do local development.
Dealing with lists in Javascript - Listing.js
Tags: javascript, node, library
Published: 2017-10-14 13:02:21

---
title: Dealing with lists in Javascript - Listing.js
published: true
description: JS Library for working with lists
tags: javascript,nodejs,library
---

Most of you might know lists from programming languages like Java or C#. At the company I'm working for we are using Adobe's ColdFusion on the backend. Here, we actually use lists quite often. In my view it's a nice alternative to Arrays. That's why I started working on a small JS library for dealing with lists in Javascript, called: **Listing.js**. At first the lib was intended only for private usage but I think there's no reason to not share it.<br/>

**The library is available at [GitHub](https://github.com/Lars124/Listing.js/tree/master)**

The methods from this library is a collection of list and array functions from other programming languages, so you will know the most of them. You can use this library in your browser and Node.js. Next, I want to give you a short introduction to the lib.


## Valid delimiters and lists:
Listings.js recognizes three different types of delimiters:
```javascript
var list = "1,2,3,4";
var list = "1;2;3;4";
var list = "1:2:3:4";
```

Obviously, each number is a list element. The default list delimiter is the comma (","). Besides numbers, you can also use strings as list elements.

```javascript
var list = "hello,I,am,Lars";
var list = "Nice;to;see;you";
```

**Note:** Listing.js recognizes the empty spaces in lists. So if an element includes empty spaces and you try to find the element, make sure that your search parameter also includes the empty spaces.


```javascript
var list = "hello my,name is,not Peter";
listing.find(list, 'name is');

// Result: 1
```

## Examples:
As next, here are some methods examples. You can find an overview of all methods and test cases for them at the [GitHub Repo](https://github.com/Lars124/Listing.js/tree/master).

```javascript
var list = "1,54,2,64,24,76";
listing.append(list, 89);

// Result: "1,54,2,64,24,76,89"
```

```javascript
var list = "1,54,2,64,24,76";
listing.changeDelims(list, ";");

// Result: "1;54;2;64;24;76;89"
```

```javascript
var list1 = "1,54,2";
var list2 = "77,31,501";;
listing.concat(list1, list2);

// Result: "1,54,2,77,31,501"
```

```javascript
var list = "ThisIs,aList,withStrings";
listing.contains(list, 'List');

// Result: "1"
```

```javascript
var list = "43,21,5,9,104";
listing.each(list, function(item, index) {
  // Iterartion 1 -> item = 43, index = 0
  // Iterartion 2 -> item = 21, index = 1
  // Iterartion 3 -> item = 5, index = 2
  // Iterartion 4 -> item = 9, index = 3
  // Iterartion 5 -> item = 104, index = 4
});
```

```javascript
var list = "13,32,54,13,11,6,103,54";
listing.getDuplicates(list);

// Result: "13,54"
```

```javascript
var list = "13,32,54";
listing.len(list);

// Result: "3"
```

```javascript
var myString = 'This is a test';
var list1 = 'a,test';
var list2 = 'no,fun';

listing.replace(myString, list1, list2);

// Result: "This is no fun"
```

Let me know if you know more features you like to see in the lib. ;)
Architectural decisions that you regret...
Tags: discuss
Published: 2017-10-14 11:26:36

---
title: Architectural decisions that you regret...
published: true
description: 
tags: discuss
---

Hi,

First post on [dev.to](https://dev.to)...

Hate to make the first one a #discuss , but I couldn't resist asking about Architectural decisions you might have made (long ago?) on your projects but you regret making...

So, anything you would like to share ?
Programming for absolute beginners
Tags: beginners, developer, programming
Published: 2017-10-14 10:50:53

---
title: Programming for absolute beginners
published: true
description: Beginner's guide to learn concepts of programming 
tags: beginner, developer, programming
cover_image: https://thepracticaldev.s3.amazonaws.com/i/r21sl5694n0c8n0iccu4.png
---

Wanted to learn computer programming but not sure where to start? In this video series, I try to introduce you to basic concepts that you would find in almost any programming languages.
There is no pre-requisite for this course. This course is independent of any programming languages and focuses purely on building up the required foundation to get you started with almost any programming language.
We will be covering the following topics in this playlist:
* What is a computer program & how does it work?
* Abstract programming concepts — Pseudo code & Flowcharts
* Syntax — The rules of programming languages
* Working with data
* Program flow
* [Introduction to Object Oriented Programming [Article]](https://dev.to/charanrajgolla/beginners-guide---object-oriented-programming)

##Introduction
{% youtube FMF-brcyo4Y %}

##What is a computer program & how does it work?
{% youtube THJKX45Z36k %}

##Abstract programming concepts — Pseudo code & Flowcharts
{% youtube AlEBMhxreo0 %}

##Syntax — The rules of programming languages
{% youtube WZOUkttQHa0 %}

##Working with data
{% youtube I8zR4TCmeZg %}

##Program flow
{% youtube PsZEGba-sRA %}

*This article was originally published on [Skill Hive Blog](https://medium.com/skillhive "Programming for absolute beginners")*
[Node.js] Using Local Module In Projects 
Tags: javascript, node, aws, awslambda
Published: 2017-10-13 18:41:59

---
title: "[Node.js] Using Local Module In Projects "
published: true
description: 
tags: javascript, js, node.js, nodejs, aws, aws lambda
---

Link to article at Medium: https://medium.com/@dimpiax/node-js-using-local-module-in-project-c6fb54bbc83a

You have several projects that use the same abstract libraries, you can hold “the same independent copy (not good) or create a private repository at npm.js.

I will share with you my experimental approach that is good in specific case.

File structure is next:
```
/serviceA
/serviceB
/library
```

Both services use same abstract classes / scripts from library, or a few of them. You can install local library as dependency simply putting local path to it. 

Further examples will be with **serviceA**.
```
cd serviceA
npm i --no-save ../library
```

Important to **not** save dependency in package.json. Also npm creates alias to library, so after any changes you have a fresh version. After installing you can require your library’s dependency files as default.

Not bad, but what to do in **production** case?
For example, I have built a project using babel and want to add some additional files to built folder, that i will upload farther via git hook, scp or s3.

*Use-case, in more details, uploading zip file to s3 and update Lambda function. There is no scenario to install dependencies inside lambda function, so need to put project as is.*

Solution is to put your library by script inside build folder — not good, but works. Maybe sometime **npm** will support this approach by command.
Example: `import syncManager from 'library/managers/syncManager'`

Prepare package.json and some scripts inside. 
`package.json:`

```
{
  "name": "serviceA",
  "version": "0.1.0",
  "main": "index.js",
  "config": {
    "sourceDir": "src",
    "buildDir": "dist",
    "library": {
      "name": "library",
      "path": "../library"
    }
  },
  "scripts": {
    "clean": "rimraf $npm_package_config_buildDir",
    "build:prod": "NODE_ENV=production npm run clean && mkdir $npm_package_config_buildDir && cp$npm_package_main package.json package-lock.json $npm_package_config_buildDir && cd $npm_package_config_buildDir && npm i",
    "pack:prod": "npm run build:prod && mkdir -p $npm_package_config_buildDir/node_modules/$npm_package_config_library_name && cp -r $npm_package_config_library_path/. $npm_package_config_buildDir/node_modules/$npm_package_config_library_name/.",
  },
  "author": "Dima Pilipenko <dimpiax@gmail.com>",
  "dependencies": {
  }
}
```

*Pay attention that `dependencies` does not have an library mention.*
By calling `npm run pack:prod` project is being prepared for farther use.

Hope this approach is useful for someone too :)

**The end.**

*Dear reader, if you have some proposition or question about this approach — let’s discuss in comments.*
Dev.to - are my comments getting a auto "Heart emoji"
Tags: question, meta
Published: 2017-10-14 10:34:50

---
title: Dev.to - are my comments getting a auto "Heart emoji"
published: true
description: Dev.to auto heart emoji
tags: question,meta
---

Not been on here for long but did a few comments now and something has been frustrating me, every time I post a comment it has 1 heart already, I could deselect one so the heart is assigned to me? 

Can this be removed? feature or bug?
Server Admin - Logging
Tags: log, server, discuss
Published: 2017-10-14 10:18:58

---
title: Server Admin - Logging
published: true
description: With so many options to log file management what is your weapon of choice?
tags: log, server, discuss
---

I've recently been getting myself into server provisioning/management and I'm hitting the vast world of logging.

There seems to be a few out of the box logging capabilities including syslog/rsyslog and also a few standard packages like logrotate on Linux flavoured operating systems.

I'm also seeing a ton of online services!

What does everyone else use for log management and how is your current set up looking?
Are dislikes dead nowadays?
Tags: discuss
Published: 2017-10-14 07:14:47

---
title: Are dislikes dead nowadays?
published: true
description: 
tags: discuss
---

Hi! I'm thinking a lot about social functionality for my future project and I don't know when do you need dislike button for comment, post, etc?

Services with dislikes
* youtube comments, videos  
* reddit comments and posts
* disqus comments
* blizzard forum
* imdb reviews

Services without
* facebook (reactions)
* google plus (plus sign)
* medium (clap)
* xenforo cms (thanks)
* playmarket reviews (like)
* other 99% of social networks



I thought dislike functionality was trending in old days but while checking info about  reddit, youtube were created in 2005, disqus in 2007, but facebook also was that early and it doesn't have it.

Also in my research I found out that almost all old websites with user reviews has like and dislikes (imdb, etc) but new ones like playstore has only like and report (report is not visible).


Nowadays it seems nobody cares about dislikes, except old review websites and old comment systems. I can see trend in favor new facebook reactions and renaming likes to hearts (twitter, instagram, etc) / claps (medium) / plus sign (gplus).


btw I don't get why a lot of websites allow to upvote your own comment or reddit publication.


So are dislikes dead? And when you must have it? Is there a golden rule when do or not you must have this?