teleren/devto huggingface dataset:
Factfulness – Book Review
Tags: life, bookreview, books, business
Published: 2020-08-13 22:54:25

---
title: Factfulness – Book Review
published: true
tags: life, bookreview, books, business
canonical_url: https://greenido.wordpress.com/2019/01/11/factfulness-book-review/
---

It’s one of the best books I read during 2018. 

Hans Rosling was a great author (and a speaker) and he expressed his ideas in a very clear way. One of the great things that open this book, is the test that he gives you at the beginning. It comes to prove you, how little you know about the world we live in. It drives the point home very clearly.

Don’t believe?

Try it for yourself:

![](https://greenido.files.wordpress.com/2018/12/hangs-survery-1.png?w=696)<figcaption><br></figcaption>

![](https://greenido.files.wordpress.com/2018/12/hangs-survery-2.png?w=696)

![](https://greenido.files.wordpress.com/2018/12/hangs-survery-3.png?w=696)

…and now scroll down and check your results…

1

2

3

4

5

6

7

8

9

10

Go, but please be honest.

![](https://greenido.files.wordpress.com/2018/12/hangs-survery-answers.png?w=696)

How many answers you were able to get correctly?

The two main ideas I took from the books are the new framework Hans proposes: [four income groups](https://www.gatesnotes.com/Books/Factfulness#incomegroups) and the ten instincts that prevent us from seeing the world as it is. He devotes most of the book to show the different instincts, from the fear instinct (= more attention to scary things) to the size instinct (standalone numbers often look more impressive than they really are) to the gap instinct (most people fall between two extremes). With each one, he offers practical advice about how to overcome our innate biases.

I highly recommend this book. If you wish to get a taste of his brilliant mind and clear explanations here is one of his Ted talks:

<iframe src="https://embed.ted.com/talks/hans_rosling_shows_the_best_stats_you_ve_ever_seen" width="696" height="524" frameborder="0" scrolling="no" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
Get Free Unlimited Private Repositories From GitHub
Tags: opensource, fossstories, fossnaijanews
Published: 2019-01-16 11:13:49

---
title: Get Free Unlimited Private Repositories From GitHub
published: true 
tags: FOSS,FOSS Stories,FossNaija News,open source
canonical_url: https://fossnaija.com/github-free-repositories/
---

[![github_homepage_fossnaija](https://fossnaija.com/wp-content/uploads/2019/01/github_homepage_fossnaija-1024x609.png)](https://fossnaija.com/wp-content/uploads/2019/01/github_homepage_fossnaija.png)

 

GitHub [has announced](https://blog.github.com/2019-01-07-new-year-new-github/) that it now allows unlimited private repositories (“repos” for short). For those who don’t know, GitHub is an online code-hosting platform using the [open-source](https://fossnaija.com/open-source-really-matter-control-not-code/) version control software system called [git](https://dev.to/xeroxism/microsoft-acquiring-github-for-75-billion-dollars-5hj5-temp-slug-5020478). Code stored on GitHub can be modified and improved upon any an individual developer or group of developers; and any changes made to t he codebase is tracked, stored and undone if necessary.

Before now GitHub has offered free repositories accounts to developers to store their code, but these repos are public by default i.e. open to anybody to copy (Forked) and use. And the GitHub user must pay (about $7 per month) if they want to make them private.

Over the years many developers (newbies and veterans alike) have been drawn to GitHub almost like it’s the default platform available. One reason being that it has a very simple/intuitive user interface and popularity among many developers and organizations.

But having private repos has been a very important item in the wish-list of many GitHub users for some years now. And also one of the reason that have attracted git users to other platforms like Gitbucket.

With the announcement , GitHub now include private repos. So developers can now use it for projects they don’t want to share with the public (yet), without paying anything i.e. FREE!!!

 

[![github_prices_fossnaija](https://fossnaija.com/wp-content/uploads/2019/01/github_prices_fossnaija-1024x405.png)](https://fossnaija.com/wp-content/uploads/2019/01/github_prices_fossnaija.png)

 

There’s a caveat though; the private repos can only allow up to three collaborators per repo for free. The free (unlimited) public repos will continue though with its unlimited collaborators too.

Whether this development is as a result of the [GitHub’s acquisition by Microsoft](https://dev.to/xeroxism/microsoft-acquiring-github-for-75-billion-dollars-5hj5-temp-slug-5020478) last year, only time will tell. A new year , a new GitHub indeed!

**Happy Linux’NG!**

The post [Get Free Unlimited Private Repositories From GitHub](https://fossnaija.com/github-free-repositories/) appeared first on [Foss Naija](https://fossnaija.com).
Introspective Questions For Personal Development
Tags: motivation, learning
Published: 2019-01-11 16:16:06

As devs, we're constantly working on external projects. By the nature of our work, we're always learning, though it may often be accidental or out of necessity. Learning for a job may be a necessity, but it may not always be what we want to learn for our personal growth/development - the internal project of our selves. Working on the internal project of our selves will almost always lead to benefits for our external projects.

With that in mind, here are a few questions I've regularly come back to over the years.

#### What do I want to learn?

This isn't necessarily code related. It could be a language, a skill, something for a hobby, etc.

#### Why do I want to learn that?

A lot of people get tripped up on this. You don't actually need a "great" or world changing reason. Sometimes, it's just because you want to try something new. It's hard to say if you'll have a long term interest in something before actually doing it.

#### What's stopping me from learning that?

Identifying the blocks can help remove them.

#### Who can I learn from?

It's great to be able to bounce questions and ideas off of someone, if you can. If not, learn from whatever source you can - books, websites, podcasts, videos, etc. Whether you can find someone to learn from or not, online communities (like this one!) are a great additional resource.

#### Is there someone I can teach?

Teaching something, no matter how experienced you are in a given subject, is a great way to solidify what you learn.

#### Why am I doing what I'm currently doing?

If you really dive into this one, it can be challenging and scary, but eye opening.

That last question led me to a career change. I was a dental tech for 15 years before transitioning to full time development. For me, the answer to the question was that I was good at it, it was safe, and it was easy. And that wasn't good enough for me. I wanted a challenge and needed to learn something new. Where I was in the dental industry, there wasn't much else to learn (the process for making dentures hasn't changed much since the mid 1970s).

Really diving in to code (more than only as a hobby) put me on the path I am now, which has led to some great opportunities. The ability to work remotely. Meeting people I wouldn't have otherwise, especially with being able to work remotely - coffee shops are my jam. Teaching opportunities, which is something I love doing. The list could go on.

Hopefully some of those questions spark some ideas for your own development. If you have a habit of doing this, what are some of the questions your regularly ask?
What is your job title?
Tags: career, title, discuss
Published: 2019-01-11 14:44:15

---
title: What is your job title?
published: true
description: 
tags: career, title, discuss
---

I'm always fascinated by how many different job titles there are out there. I've a quite a few myself and I'd love to see what you actual title is and how well you think it relates to your work!

For me, I am a ***Level 3* Software Engineer**. I focus on front-end development with React, but dip into Rails every now and then. I think this title is a pretty good representation of what I actually do, but I don't believe that there is a standardization around the levels - if someone knows of one, I would love to hear about it!

Have a great weekend folks!
There's nothing like waking up in the morning and your side project is buying your lunch!
Tags: webdev, career, productivity
Published: 2019-01-11 14:39:21

---
title: There's nothing like waking up in the morning and your side project is buying your lunch!
published: true
description: My side project is basically paying for my daily coffee. feels great!
tags: webdev, career, productivity, 
cover_image: https://thepracticaldev.s3.amazonaws.com/i/0duyozwmma5286j4wzmh.png
---


Just wanna share a small win. My side project is paying for coffees (and sometimes lunch)! Really great to see this in the morning when I wake up, gives such a boost to motivation levels for the day!

For those interested in the tech side of things, it's an Angular4 app with a node API running on Heroku. 

It seems to be getting more attention as I guess more developers are thinking about moving job and sprucing up their portfolio for the new year. 

I'm getting tons of good feedback and bug reports via the Drift widget (I know some people hate that popup - I do too - but it's giving me so many great conversations that I'd be silly to turn it off...)

[mydevportfol.io](https://mydevportfol.io?ref=devto) :)
How to manipulate your secure PDF, Words, Excel, PowerPoint Documents using C# .NET Metadata API
Tags: metadata, net, api, groupdocs
Published: 2019-01-11 14:06:58

---
title: How to manipulate your secure PDF, Words, Excel, PowerPoint Documents using C# .NET Metadata API
published: true
description: post
tags: metadata, .NET, API, groupdocs
---

Metadata is considered “data about data” inside a file and programmers manipulate it to store as well as extract different kinds of important information from a specific document which could relate to it’s various characteristics such as the user permissions. File security is one of the primary concerns for any professional, considering the number of times he may have to use online file transfer services regularly. So, we are constantly on the outlook for software applications as well as APIs which are reliable in terms of the data we could manipulate using them, and the type of files they could let us manage.

Depending upon the business requirements of any organization or even an individual user, one or more types of documents could be processed programmatically for fetching valuable information like the file metadata on .NET platform. Add to it the requirement of working with encrypted or password-protected documents, and the list of applications that could fulfil both these pre-requisites is quite small. GroupDocs.Metadata for .NET API is one such option, which covers both aforementioned requirements and offers much more. Application developers can use it to read, write, analyze and erase metadata from different types of protected documents such as Microsoft Word and PDF files, Excel spreadsheets or PowerPoint presentations. 

Additionally, this .NET document metadata API allows you to better utilize memory usage while loading or saving word processing and slides documents within your apps together with the ability to update metadata keys in DOC and DOCX file formats. Learn more –
 http://bit.ly/2QESWr1

Following code snippet shows how to work with metadata of a password protected PDF document:

`LoadOptions loadOptions = new LoadOptions("password");
using (PdfFormat format = new PdfFormat(Common.MapSourceFilePath(protectedFilePath), loadOptions))
{
    // Working with the password-protected document
    format.CleanMetadata();
    format.Save(Common.MapDestinationFilePath(protectedFilePath));
}`


This .NET API supports working with Word formats with less memory consumption. Please note that the DocFormat class implements the IDisposable interface and it's necessary to call the Dispose() method when you're done working with its instance.

Check following code snippets to use less memory while working with Word documents.

`using (DocFormat format = new DocFormat(@"d:\input.docx"))
{
    // Working with metadata
}`


If you are loading a Word document from a stream, it's up to you to close the stream when the file is not needed anymore.


`using (Stream stream = File.Open(@"d:\input.doc", FileMode.Open, FileAccess.ReadWrite))
{
    using (DocFormat format = new DocFormat(stream))
    {
        // Working with metadata
    }
    // The stream is still open here
}`
Inclusion is not a zero sum game
Tags: inclusive, design, diversity, leadership
Published: 2019-01-11 12:29:59

---
title: Inclusion is not a zero sum game
published: true
tags: inclusive,design, diversity,leadership
canonical_url: https://craignicol.wordpress.com/2019/01/11/inclusion-is-not-a-zero-sum-game/
series: we-can-do-better

---

Look around your office. How many people look like you? How does that compare to the people you saw on your commute, or in the supermarket? How does that compare to your users? Do you even know?

![](https://craignicol.files.wordpress.com/2017/11/dsc_0429-1-e1546904220408.jpg?w=748)<figcaption>Are you making space?</figcaption>

How many people are struggling with mental illness? How many have accessibility challenges? How many are white, straight, cis-gender, able bodied men?

Is there a mismatch? And if so, what are you doing to change it? Are your job adverts inclusive and on inclusive sites? (hint: [look at the StackOverflow developer survey before posting your job there](https://insights.stackoverflow.com/survey/2018/#demographics)) Do you have a network outside work that you can tap into to find new candidates?

Are you creating a safe space for everyone? Are company events open to new parents, to non-drinkers, to vegans, to women? Do people have to out themselves to attend a family day, or to avoid travel to a certain customer site? Do you support staff who need to transition? Staff who need quiet spaces? Staff who are fasting, or need non-Christian holidays?

Can your staff find somewhere to learn to sign? Or to write simplified for language learners, for those who have struggled to attain or retain language?

Which three of these questions are the most important to achieve for you this year? And how will you do it?

If you need somewhere to start, have a look at [Inclusive 101 from the Microsoft Inclusive Design Toolkit](https://www.microsoft.com/design/inclusive/), and ask yourself if that’s you, or [pick an episode from the Cause a Scene podcast and listen, especially if it makes you uncomfortable](https://hashtagcauseascene.com/blog/category/podcasts/).
Announcing PHP Apprentice!
Tags: php, showdev, webdev
Published: 2019-01-11 13:42:58

---
title: Announcing PHP Apprentice!
published: true
description: Announcing PHP Apprentice, an online book for learning PHP.
tags: php, showdev, webdev
cover_image: https://thepracticaldev.s3.amazonaws.com/i/x0hh5nxhc5n0rmbu0d3k.jpg
---
I am excited to finally announce [PHP Apprentice](https://phpapprentice.com)! It is an online, free and open-source book for learning the PHP programming language. The book is a side project I have been building for six months. My goal is to provide a contemporary resource for learning the basics of PHP with a focus on high quality code. PHP has been around for 25 years and has changed a lot since its inception. A lot of the resources for writing good PHP have not aged well or are inapplicable today. I wrote PHP Apprentice to remedy the lack of available websites for learning PHP.

Currently, PHP Apprentice has chapters on the basic building blocks of the language, but in the future I will be adding sections on generating webpages, connecting to databases and advanced  techniques like using Composer and autoloading. I am looking for feedback so please leave a comment here or an issue on the [repository](https://github.com/restoreddev/phpapprentice) if you have any thoughts or requests.

Each chapter in PHP Apprentice was written as a Markdown file. I then built an HTML generator in PHP that takes each file and parses it with [Parsedown](https://parsedown.org/) into an HTML chunk and loads them with a template into a full HTML page. The pages are then served by GitHub pages. The build process can be performed using a CLI command so I automated the deployment using [Travis CI](https://travis-ci.com/). Whenever any code is merged into `master`, Travis will pick it up, re-build all the webpages and push them to another branch on the repository which is used by GitHub Pages.

The frontend is all plain HTML, CSS and JavaScript. I used [PostCSS](https://postcss.org/) to add file imports and variables. The code highlighting is performed by [Prism.js](https://prismjs.com/).  I wanted the focus of each page to be on the code so the styling is very minimal. The site is responsive, but has room to improve the experience on mobile. I focused on desktop since I recommend writing the code in the chapters while reading the book.

PHP Apprentice was inspired by [Elixir School](https://elixirschool.com) and [Go by Example](https://gobyexample.com/), two sites I admire for their clarity and quality. I hope that PHP Apprentice will become a similarly helpful site for the PHP ecosystem. It is a living book so I will be changing and improving the site over time.

Please check out [PHP Apprentice](https://phpapprentice.com/) and let me know what you think!
Interview with Ben Ilegbodu: Three Things That Compose Seniority
Tags: career, leadership, motivation, culture
Published: 2019-01-11 13:00:46

---
title: Interview with Ben Ilegbodu: Three Things That Compose Seniority
published: true
description: 
cover_image: https://thepracticaldev.s3.amazonaws.com/i/azmj9bp23t4eskfujc6b.png
tags: career, leadership, motivation, culture
series: Learn from Expert Developers - devpath.fm
---

Today I'm sharing [a conversation I had with Ben Ilegbodu](https://share.transistor.fm/s/18d3c40b).

For those who don't know Ben: He is a Principal Frontend Engineer at Eventbrite and a member of the React and TypeScript communities. Ben's a Microsoft MVP and holds an MS in Computer Science from Standford.

{% podcast https://dev.to/devpathfm/principal-frontend-engineer-ben-ilegbodu %}

Ben shared a huge amount of wisdom and expertise concerning the process of becoming a senior engineer, but one bit really jumped out at me. Ben said, "There are a number of different qualities that I feel like compose seniority," then went on to share three key characteristics that he felt made one "senior."

## The ability to develop quickly
  
This characteristic feels obvious to me, but there is more to it than just shipping a ton of code in a short period. 

This also contains the more nuanced skill of writing the correct code early. Being a senior means, you should spend less time chasing incorrect solutions.

## The ability to teach others and help others grow

Ben referred to this as leadership. 

Teaching others is a significant part of being a senior engineer. 

Unlike the first and second characteristic, this trait doesn't always get developed by writing a ton of code. Learning to articulate your thoughts and cultivate others is a skill that can be learned outside of the technical world.

## The ability to find the ideal solution

This trait is the most difficult to quantify. 

I felt like it could be labeled as the "artistry" part of what software engineers do, the sixth sense that develops with experience. 

Ben referred to this as being able to find the most elegant or scalable solution depending on what the situation required.

After having spoken with Ben, I feel like I've got a much clearer idea of what it means to be a senior engineer. Going forward, I'll be searching for opportunities to exhibit these traits in my career.

What kind of traits make someone "senior" in your experience?


P.S. If this kind of stuff interests you, listen to a couple episodes of [devpath.fm](https://www.devpath.fm/episodes) :)
Template Literal expressions within the Template tag seem like a missed opportunity
Tags: discuss, javascript, templating, patterns
Published: 2019-01-11 12:41:46

---
title: Template Literal expressions within the Template tag seem like a missed opportunity
published: true
tags: discuss, javascript, templating, patterns
---

Template Literals are amazing, but I've lately found they make everything look like a proverbial nail, particularly when it comes to updating large blocks of HTML dynamically.

I'm still working in an environment which is mostly backend, where Perl generates HTML from templates, on top of which we add progressively enhanced javascript components. 

When both your back and front end need to be able to generate common UI patterns based on a pattern library, it becomes frustrating to have to define the HTML source for each UI pattern in multiple places (once in Perl, once in JS).

The `<template>` tag could be useful. The backend can generate the HTML required for the component (e.g each Todo item in the Todo list) and the JS can use that HTML template to generate each new todo item. 

But the only way of dynamically inserting values into that template, that I'm aware of, is with the extraordinarily clumsy use of CSS selectors in the template content. (see: https://blog.teamtreehouse.com/creating-reusable-markup-with-the-html-template-element)

Wouldn't it make so much more sense, now Template Literals are in every major browser, to add support within the `<template>` API for expressions? e.g

```html
<template id="test-template">
    hello ${where}
</template>
```

```js
const tmpl = document.getElementById('test-template');

// where "MAGIC" is some means of supplying data as json 
document.body.appendChild(tmpl.content.cloneNode(true, MAGIC));
```

Web Components have the `<slot>` system, but that requires the adoption of a much larger tech. And, yes, there's always Mustache/Handlebars et al, but again that's adding to the JS payload. Yes we also use React, but upgrading everything to React isn't always possible.

Am I alone in trying to make this work? Anyone found a framework-free or framework-lite solution for this?