teleren/devto huggingface dataset:
Recommended Read: The Imposters Handbook (Seasons 1, 2)
Tags: readinglist, read, showdev
Published: 2019-02-27 02:09:36

---
title: Recommended Read: The Imposters Handbook (Seasons 1, 2)
published: true
description: The Imposters Handbook is a great learning resource for developers!
tags: readinglist,read,showdev
---

If you're looking for a book to read, I would strongly recommend [The Imposters Handbook, both Season 1 and 2](https://bigmachine.io/products/the-imposters-handbook/), it touches on a variety of subjects, and in my (unqualified) opinion does a great job at guiding the reason, and helping them understand the concepts normally taught in schools.

It's well worth a read, and if anyone would like a copy and cannot afford one, I will give away a few copies! :)

Thanks!
Você sabe como comprar um software? Pt. 1 – Introdução 
Tags: projectmanagement
Published: 2019-02-27 02:07:45

---
title: Você sabe como comprar um software? Pt. 1 – Introdução 
published: true
description: Problema principal- Nós não sabemos adquirir software, será?
tags: Project Management
cover_image: https://thepracticaldev.s3.amazonaws.com/i/d5o7ps0lmrwi00mvm9pe.png
---



Colocando algumas discuções sobre desenvolver software de forma bem sucedida, essa será uma série de posts que vou fazer sobre o custo de vários tipos de software, e irei adiciona-los aqui conforme forem feitos \o.

https://wp.me/paJQm5-N
When can you safely make an assumption when developing anything?
Tags: help, discuss, askdev
Published: 2019-02-27 02:05:30

---
title: When can you safely make an assumption when developing anything?
published: true
description: Is there a safe time to make an assumption?
tags: help,discuss,askdev
---

Suppose you're developing an application (eg. website, mobile app, backend app, etc) - when can you safely make an assumption when developing it?

For example, if you've tested Creating an Item, Deleting it, and Reading it's info - is it safe to assume Update works?

Furthermore, if you have your tests automated, how much trust do you put into your tests?
Plans for my web server
Tags: devops
Published: 2019-02-27 00:36:21

---
title: Plans for my web server
published: true
description: Talking about previous mistakes and describing the future plans for my web server.
tags: devops
---

I currently own a small VPS server hosted at OVH. It serves as a home to a few experiments with Linux, some files that I needed to share and a clown fiesta of security issues and running web services that I setup months ago and eventually forgot.

Although I'm still learning how to work with Linux and how to secure a server, I've learned from my mistakes and developed a new and improved plan.



## The old plan

Two years ago, I was amazed by sysadmins and how they managed to setup their servers. Inspired by them and hoping I could enforce some security, I wrote down some key points:

- Only ports 80 (HTTP), 443 (HTTPS) and 22 (SSH) are open
- Every service has a specific Linux account
- Every service listens on localhost
- nginx exposes those services via reverse proxies
- nginx routes traffic to services using sub domains
- Let's Encrypt certificates for every sub domain

Everything looked great and I was excited, but as time went by, this plan quickly stabbed me in the back.



## Old plan flaws

- **Permissions became a pain in the butt**

    A few things didn't work because the working directory of a service wasn't created with the right account and `sudo` needed to be used every time I wanted to publish a temporary file; needless to say, there are some files and directories with permissions set to 777.


- **Services' working directory weren't centralized**

    Shared files lived on `/var/www/static`, a Node.js app ran on `~/dev/nodejs/app`, ...


- **nginx's config file had lots of repeated blocks**

    Since every service/sub domain had two blocks - HTTPS reverse proxy and HTTP to redirect to HTTPS - a lot of blocks were identical due to the logic being the same for all the services.


- **Certificates for every sub domain**

    At the time, Let's Encrypt didn't support wildcard certificates; thereby, the certificate had to be updated every time I wanted to deploy a new service. It wasn't that bad, just something that can now be avoided.


- **Unused/broken services**

    Services stopped being used, things broke, memory leaks happened and I didn't even notice. This *definitely* needs to be improved.



## The master plan

- Use Docker to isolate, control and centralize services; this also allows me to test new shiny ~~JS frameworks~~ services without polluting the whole system with unwanted packages
- Figure how to generate a nginx config file from a simplified config file
- Upgrade to Let's Encrypt's wildcard certificates
- Move infrequently accessed files to some external cold storage solution
- Create a nice personal page with details about me
- Host a MySQL/MariaDB database with semi-automated account creation and deletion
- Develop a web app to manage shared files

<hr>

What do you think about this new plan? Would you do something in a different way? Suggestions are appreciated!
Not Everything Is Code, as Code
Tags: devops, git, markdown, everythingascode
Published: 2019-02-27 01:21:59

---
title: Not Everything Is Code, as Code
published: true
description: Can you apply Everything-as-Code to, idk, Marketing? Finance? People (HR)? 
tags: DevOps, Git, Markdown, Everything-as-Code
---

It'd be cool to shift or extend the thinking on DevOps practices like _[Everything-as-Code](https://openpracticelibrary.com/practice/everything-as-code/)_ (EaC) to apply it to the wider business. I think opening up these practices has massive potential to add hhheeeaaapppsss of value to a business. It's a fair argument though, that the practice as it is would no longer make sense because **not everything is code**.

We should be thinking about how to apply what's actually adding the value in EaC, which is that if you use Git (and CD to some extent), _most things_ can be as tested, reviewed, repeatable, re-usable as code is, without sacrificing collaborative ways of working.

It's definitely more complicated than "make everyone use Git and Markdown instead of word" and I know it's something that requires a massive investment, but I think it's worth it. 

Unfortunately I feel like it's something that we probably won't see in businesses until familiarity with writing code or working with code is ubiquitous, which may never happen?

Anyway idk cya later ;)
Flyweight Design Pattern [Structural]
Tags: blog, concepts, designpattern, designpatterns
Published: 2019-03-06 03:27:04

---
title: Flyweight Design Pattern [Structural]
published: true
tags: blog,concepts,Design Pattern,Design Patterns
canonical_url: https://itscoderslife.wordpress.com/2019/02/27/flyweight-design-pattern-structural/
---

Intent: The flyweight pattern is used to reduce the memory usage and the creation costs for similar objects that rely on the same data.

- Instead of creating multiple objects, the flyweight pattern shares one instance to represent multiple objects.
- Each flyweight object is divided into two pieces, the state-dependent extrinsic part, and the state-independent intrinsic part.
- The intrinsic state is stored in the flyweight object.
- To implement the flyweight pattern we must identify the immutable state free intrinsic set of properties from the state-dependent extrinsic state.
- The extrinsic part should be managed by clients and passed to the flyweight instance, whereas the immutable state of the flyweight should be protected from changes.

> The flyweight pattern allows the sharing of common objects that can be used identically saving memory by reducing the number of object instances at runtime.

Example from [sourcemaking.com](https://sourcemaking.com/design_patterns/flyweight):

The Flyweight uses sharing to support large numbers of objects efficiently. Modern web browsers use this technique to prevent loading same images twice. When browser loads a web page, it traverse through all images on that page. Browser loads all new images from Internet and places them the internal cache. For already loaded images, a flyweight object is created, which has some unique data like position within the page, but everything else is referenced to the cached one.

- The flyweight pattern should be used to support a large number of similar objects via sharing.
- Instead of creating multiple objects, the flyweight pattern shares one instance to represent multiple objects.
- To implement the flyweight pattern we must separate the immutable set of properties from the state-dependent part.
- The intrinsic part should be stored in the flyweight object whereas the state-dependent extrinsic part should be managed by clients. The extrinsic state is stored or computed by client objects and passed to the flyweight when its operations are revoked.

Disadvantages:

Common thing is clients can change the immutable state of the flyweight. The intrinsic state of the flyweight objects must not be modified by callers.

Another wrong implementation is not protecting the flyweight from concurrent access. A shared flyweight instance may be accessed in parallel from several different strats. Therefore, threat safety is imperative.
It’s Time For Link Pages
Tags: miscellaneous, nonsense
Published: 2019-02-27 16:25:37

---
title: It’s Time For Link Pages
published: true
tags: miscellaneous,nonsense
canonical_url: https://jsrn.net/miscellaneous/2019/02/27/its-time-for-link-pages.html
---

There are a few complaints that are often made about the internet by those of us who spend too much time on it.

# 1) It Sucks Now

The first is that the internet isn’t fun any more. There’s no exploration. Everything is centralised in a few places. Everybody is trying to build a brand. Nobody does anything just for the fun of it. You go on Twitter, get mad, and log off. There’s nowhere else to go.

# 2) The Whole Thing Is Owned By Like Three People

The second complaint, and it’s very much related, is that the majority of the content that _we_ produce is aggregated in a few places to the benefit of companies. Twitter. Facebook. Yahoo Answers.

I was reading an AskReddit thread a while ago. “What sites do you use when you aren’t on reddit?” I didn’t know. Everything is on one place, and it’s filtered through algorithms, trends, bots and social manipulation. We generate content, but we don’t give it directly to each other. We give it to a third party who flavours it and squeezes it into our waiting mouths like a sort of digital nutrient paste.

The solution ~~RSS, RSS is the solution~~ has been staring us in the face. ~~It’s RSS.~~

[Link pages](https://en.wikipedia.org/wiki/Link_page). Remember link pages?

> “A link page is a type of web page found on some websites. The page contains a list of links the web page owner, a person or organization, finds notable to mention. Often this concerns an enumeration of partner organizations, clients, friends or related projects.” - _Wikipedia, the only good counter-example to my rant._

People still have personal websites. A lot of us techies still have personal websites. But it’s an exercise in brand building. Look how clever I am. Hire me. Be my friend.

We need to bring link pages back. In a big way.

Advantages:

- Make friends. Become popular.
- Cool graphics.
- Won’t disappear when Jack Dorsey dismantles the Twitter servers to salvage parts for Mark Zuckerberg’s future body.

Disadvantages:

- Literally none.

I will put my money (just kidding, I use GitHub pages so I don’t pay squat) where my mouth is here and say that if you run a tech site, don’t represent a company, and send me a small (ideally 88 x 31, as per the [web badge guidelines](https://en.wikipedia.org/wiki/Web_badge)) image, I will include it on a special page on my website that gets no traffic.

My dream is that one day our sites will once again be connected by an intricate network of links. A web. A World Wide Web.

# Answers To Anticipated Comments

> James, the web badges you mention are generally used for web standards, not linking to other sites!

Yeah, I know. Aren’t they cool though?

> Are you trying to be funny?

Depends whether it worked or not.

> This is a great idea. Can I link to your site?

Sure. Here:

![my badge](https://jsrn.net/assets/images/badge.png)
Microsoft Ignite | The Tour – London
Tags: softwaredevelopment, azure, conference, developers
Published: 2019-03-01 17:43:42

---
title: Microsoft Ignite | The Tour – London
published: true
tags: SoftwareDevelopment,Azure,conference,developers
canonical_url: https://www.funkysi1701.com/posts/microsoft-ignite--the-tour--london-38d0
description: I have just spent the first day at the conference Microsoft Ignite | The Tour. 
---

I have just spent the first day at the conference Microsoft Ignite | The Tour. 
![Alt Text](https://www.funkysi1701.com/wp-content/uploads/2019/02/D0UTj08XgAEo1YJ.jpg?fit=662%2C440&ssl=1)
The conference was free I just needed to arrange travel and accommodation. Microsoft have really looked after me and all the other guests, breakfast and lunch has been provided, I got a free t-shirt, coffee (or tea) all day plus a beer or glass of wine to end the day. And that’s before you collect any free stuff the vendors are giving away.

The first session was Designing resilient cloud applications with [Matt Soucoup](https://twitter.com/CodeMillMatt) and talked about some cloud technologies like Azure key vault and serving static files from blob storage. Unfortunately this had a few technical issues with the demos. I think it was just connectivity with the MongoDB backend but this slightly spoiled the session. As this was the only technical problem I noticed all day I can let it pass.

Next was a session on Azure DevOps mainly build and release pipelines called Deploying your application faster and safer with [Brian Benz](https://twitter.com/bbenz). A lot of this I knew but good to reinforce I am doing things correctly.

Next was a session on Application Insights called Detecting application anomalies with Telemetry with Matt Soucoup.

Probably the most useful session was on Docker and Kubernetes called Integrate containers and Kubernetes into your Azure DevOps build and release model with [Marco De Sanctis](https://twitter.com/crad77). Going to spend some time looking through the examples from this session.

A session on Serverless covered Azure Functions, Azure Logic apps and the other Azure Serverless offerings. Investing in Serverless: less servers, more code with [Simona Cotin](https://twitter.com/simona_cotin).

Lastly was a panel discussion on the changes facing IT Pros and SysAdmins. What is the future of the IT Pro in a DevOps & Cloudy world? with [Jennifer Stirrup](https://twitter.com/jenstirrup), [Baki Onur Okutucu](https://twitter.com/bakionur), [Amy Boyd](https://twitter.com/AmyKateNicho) and [Stephen Thair](https://twitter.com/TheOpsMgr). Should they learn to code, how should they make sure they keep up.

Tomorrow I have a loads more sessions, including ones about mental health, Azure pipelines, more Kubernetes stuff and dealing with failure.
WE WILL SPECIALIZE
Tags: discuss, ux, webdev
Published: 2019-02-26 21:28:23

---
title: WE WILL SPECIALIZE
published: true
description: 
tags: #discuss #ux #webdev
cover_image: https://cdn-images-1.medium.com/max/800/0*uqRWwyQy4p8yPhhX.jpg
---

"We will specialize" is the first proclamation of "The win without pitching manifesto" book by Blair Enns and here I'm going to talk about my version of it.

It made so much sense for me to specialize as I found myself trying to be a front-end web developer and a UX/UI designer at the same time. Companies require profiles with a lot of skills that are beyond one specialty and I found myself trying too hard not to give up my effort of two years of hard work in learning and practicing web development.

## Specializing levels up your learning game

It's much better to focus on one thing and learn it then trying to learn everything or you'll end up as another jack of all trades and master of none. If you're learning web development, try to understand how the front-end and the back-end work, taste a lot of stuff then try to find the thing that you're most passionate about and specialize in it. It may be SVG animations, it's small but people would hire no one but you if you become another Sarah Drasner or another Sara Soueidan because you will become an expert.

*if we are not seen as ore expert than our competition then we will be viewed as one in a sea of many*

## Being irreplaceable

If you're another web developer who makes websites or another web designer who makes mock-ups, you can be replaced easily. Instead if you choose to specialize and commit to this decision by controlling your learning path and claiming this expertise, you'll be seen as an irreplaceable expert.

## Playing hard to get

It may sound like a trick we're trying to do but in the battle for control between you and the client, you should win because you don't want them to dictate how you should do your work and that will be for their benefit too because when you control, you will be free to diagnose their problem(the third proclamation) and try to solve it with your own process. It's the right way to do the work because remember? you're the expert and you know so well how to solve your client problems.

Positioning as experts offers us is a sales advantage and a price premium so we won't be cutting prices, we're going to win more and charge more ( The 11th proclamation of the book). And we need to charge more because we need to solve problems by making great things for our clients.

##### "The win without pitching manifesto" book by Blair Enns is a real treasure to level up your game as a creative, the 12 proclamations are so related to each others, so I really encourage to read it, no affiliate link, buy it from what ever you want.
Rename local and remote branch
Tags: git, beginners, productivity
Published: 2019-02-26 19:51:15

---
title: Rename local and remote branch
published: true
description: Fix your bad branch for great good
tags: git, beginners, productivity
cover_image: https://images.unsplash.com/photo-1457369433242-bd0dbcec0b39?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1000&q=80
---

We've all been there (or maybe you haven't, hopefully this helps prevent what's to follow): cloning the project, making changes in our local branch, then commiting those changes to the repository, only to find you didn't follow the contribution guidelines for branch naming. Recently, I opened a merge request against the [docs for GitLab](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25498), but didn't follow our documentation guidelines for [branch naming](https://docs.gitlab.com/ee/development/documentation/index.html#branch-naming) as I should have.

Initially, I created my branch: `add-efs-warning`, committed my changes and opened up the merge request. However, this was wrong as the branch name _also_ needs to be prefixed with `docs/`, `docs-`, or `-docs`. Rather than copying the changes I made to a blank text file, changing to the master branch, deleting the old branch, then creating a new branch and applying the changes, I learned how to rename my local branch _and_ remote branch.

Let's say you did the exact same thing I did and you're on your wrongly named local branch -- let's call it `bad-branch-name`. If you want to rename the branch, you can run:

```shell
git branch -m docs/new-branch-name
```

This will rename the current local branch to `docs/new-branch-name` and avoid feedback from the technical writers that review your changes. Next, you can run the following command to rename `bad-branch-name` to `docs/new-branch-name` and push the new local branch:

```shell
git push origin :bad-branch-name docs/new-branch-name
```

Finally, you can reset the upstream branch for the new local branch (switch to the branch if you're not currently working in it):

```shell
git push origin -u docs/new-branch-name
```

Cover image by [Teddy Kelley](https://unsplash.com/photos/H-_Qtte5YU8?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)
Create a subdomain in Amazon Route53 in 2 minutes
Tags: aws, routefiftythree, dns
Published: 2019-02-26 19:34:31

In this guide, I will show you to create a subdomain in Amazon Route53.

An example of how this is useful could be adding api onto your existing domain. You can redirect "api.yourwebsite.com" to an EC2 instance or a load balancer for instance.

You will need an AWS account for this.
You will start and end this guide in Route53.

1. If you haven't already, create a hosted zone for your original domain. (example.com)
2. Create a new hosted zone for your subdomain by clicking on "Create Hosted Zone" and entering the following:

  Domain Name: api.example.com (or whatever you want your subdomain to be)
  Comment: This can be anything
  Type: Public Hosted Zone

3. Click "Create"
4. Click into your hosted zone, and select the record set with type "NS"
5. Copy the nameservers in the "value" box on the right.
6. Return to your original hosted zone. (example.com)
7. Click "Create Record Set" and enter the following:
  
  Name: api.example.com (or whatever your subdomain hosted zone is called)
  Type: NS - Name Server
  Value: Paste in those nameservers you copied.

8. Click "Create"
9. Return to the hosted zone for your subdomain and click "Create Record Set"
10. You can redirect your subdomain to anything you want now. You can use an "A" record with a blank "Name" field and enter in an IP address. You can click "Yes" next to an alias and then click in the "Alias Target" box to select which AWS service to resolve to. When you are done click "Create"

In 1-2 minutes, open up a new tab and enter your new subdomain. It should resolve. If it does not, check that you completed the steps correctly. If it still does not resolve, leave a comment below the post.

I hope this helps anyone who was looking for an easy way to create a subdomain in Route53.

Thank you.
What's Your Computing Cocktail Party Fact?
Tags: discuss, trivia, history, fun
Published: 2019-02-26 19:24:04

Inspired by [Lucas'](https://dev.to/lewanderer) comment...

{% devcomment 93lb %}

...what's your computing / programming cocktail party fact? Meaning, what's a cool conversation starter or bit of trivia that you know about programming or computer science? Here's mine:

_Linux_, in addition to being one of the world's most popular operating systems, is also a [brand of detergent](https://news.softpedia.com/news/There-a-Linux-Detergent-Out-There-and-It-s-Trademarked-484782.shtml) in Switzerland!

![](https://thepracticaldev.s3.amazonaws.com/i/q31ed9u9cs2hz4ss02t3.jpg)
Need some help with nodejs
Tags: help
Published: 2019-02-26 19:23:06

---
title: Need some help with nodejs
published: true
tags: help
---

Hello guys!
I start learning node js. It’s amazing language and i like it. But i need some help. Somebody who can direct me about project structure & code style and best practices. If you could help me i’ll be grateful.
Here (github: kurakste/NodeRestfull) is my study project.
Any feedbacks or recommendation are welcome.
GitHub, GitLab, Bitbucket... What's your favorite Git platform?
Tags: discuss, git
Published: 2019-02-26 19:12:01

---
title: GitHub, GitLab, Bitbucket... What's your favorite Git platform?
published: true
description: GitHub, GitLab, Bitbucket... What's your favorite Git platform?
tags: #discuss, #git
---

GitHub, GitLab, Bitbucket... What's your favorite Git platform?