teleren/devto huggingface dataset:
Let’s talk release management
Tags: discuss, release, git
Published: 2018-02-28 14:08:54

---
title: Let’s talk release management
published: true
description: Release management hell, it’s real
tags: discuss,release,git
---

I’m often working on ways to improve my own releases, and wanted to crowdsource some information - how do you do your releases?

Here’s how I do it:

1. There’s a repo on private gitlab server on how to release each product, along with deployment and staging guidelines, devops code in another repo

2. When you take on releases, you write an informative changelog, broadcast the upcoming release

3. Before the release goes live, there’s a devops freeze, preventing anyone from deploying to staging and production momentarily so we can test this RC

4. Upon approval, a third party will do a once over, and finally merge the changelog in, once the changelog is merged, the release is tagged, and CI kicks off building

5. Once we’ve built and distributed, we upgrade our production servers, this takes about 20 minutes in total

6. Devops freeze lifted on staging and dev, cycle over

7. Release manager documents what they did, how long it took, thoughts/ideas for next time, and commits this to the release management repo
Write Practical Shell Scripts
Tags: linux, bash, beginners
Published: 2018-02-28 13:45:04

---
title: Write Practical Shell Scripts
published: true
description: 
tags: #linux #bash #beginners
---

1 Sending Messages
2 Write Command
3 Creating The Send Script
3.1 Checking If The User Accepts Messages
3.2 Checking If Message Was Included
3.3 Getting the Current Terminal
3.4 Sending a Long Message
4 Monitoring Disk Space

https://likegeeks.com/write-shell-script/

Hope you like it.

Regards,
Minecraft your AWS
Tags: aws, dev, backend
Published: 2018-02-28 13:18:42

---
title: Minecraft your AWS
published: true
description: How can working with AWS can be same as Minecraft.
tags: aws, dev, backend
---

Remember Minecraft? It was one of the games that exploded due to the new interface and the way it allowed you to build and create anything and everything imaginable.

We have the same vision for TotalCloud — to let you operate anything and everything imaginable for your AWS cloud infrastructure in a couple of clicks.

TotalCloud presently works only with AWS.

How does it work?

In Minecraft, you can mine resources from the existing world and create a new world. Similarly, on TotalCloud, you can disconnect (manipulate) your cloud resources from your IT infrastructure with just two clicks (just like mining in Minecraft). Sounds simple, right? It is!

Once you have the resources in your inventory, you can add, delete, or do anything and everything imaginable. This is one of the reasons TotalCloud is made on a gaming engine — providing a Minecraft experience for your AWS.

_[Original post](https://blog.totalcloud.io/minecraft-aws-get-anything-150/)_
How are you supporting old browsers like IE8, 9 and 10?
Tags: discuss, css3
Published: 2018-02-28 09:00:42

---
title: How are you supporting old browsers like IE8, 9 and 10?
published: true
description: browsers coverage and compatibility discuss
tags: DISCUSS, CSS3
---
I am interested in knowing how are you supporting old browsers when using latest CSS3 features like flexbox. Firstly, Do you support old browsers? Do you discuss about browsers coverage prior to project commencement? It would be great if you can also share tips and tricks to follow or keep in mind while developing websites for old browsers.
Can I see your terminal?
Tags: discuss, windows, mac
Published: 2018-02-28 06:19:59

---
title: Can I see your terminal?
published: true
description: I want to see everyone's terminal
tags: discuss, windows, mac
---

Last time, I posted [Can I see your desktop home screen](https://dev.to/itsjzt/can-i-see-your-desktop-home-screen--4ffb) and it went more popular than I thought. 

This time I want to see your Terminal.

is it hyper? or iterm? or xterm something? post down below.

here is mine

![terminal](https://thepracticaldev.s3.amazonaws.com/i/45ymsp4z94w6buv7z57p.PNG)

update 1:

Now after looking at some cool terminal I have updated to [fluent terminal](https://github.com/felixse/FluentTerminal/).

![update 1](https://thepracticaldev.s3.amazonaws.com/i/7sxycfob5q2cikg3mt5c.PNG)
Swap Parameters in Visual Studio using Regular Expression
Tags: visualstudio
Published: 2018-02-28 06:04:55

---
title: Swap Parameters in Visual Studio using Regular Expression
published: true
description: Swap Parameters in Visual Studio using Regular Expression
tags: VisualStudio
canonical_url: http://vrnithinkumar.github.io/2017/08/19/vs-regex/
---

This issue occurs to me many times while sending a review request, For example when I use Assert.AreEqual() method and the parameters are not in the order ( expected value, actual value) is got swapped. It's boring and long vexing job to correct all the Assert.AreEqual() parameter order. While searching on the Internet found this easy way to swap the parameters using Regular Expression.
```csharp 
// One of the common place to swap parmeter
public static void AreEqual(object expected, object actual)  
``` 
For example, I wrote code like :
```csharp
Assert.AreEqual("ActualString1", CretedString1);  
Assert.AreEqual("ActualString2", CretedString2);  
Assert.AreEqual("ActualString3", CretedString3);  
```
 
The parameter is reversed order, it's not right and For sure I will get a review comment to change this.
 
To swap this parameter we can use find and replace with the regular expression.
 
> Note: Regular Expression in Visual Studio is bit different.

_Add this as Search Term_
```
\((".*"),([^\)]*)  
```
_Add this as Replace Term_
```
($2, $1  
```
## How its works
![Alt text of image](http://vrnithinkumar.github.io/2017/08/19/vs-regex/RegEx.png)

For information about regular expressions that are used in replacement patterns, see [Substitutions in Regular Expressions](https://msdn.microsoft.com/en-us/library/ewy2t5e0.aspx). To use a numbered capture group, the syntax is $1 to specify the numbered group and (x) to specify the group in question. For example, the grouped regular expression (\d)([a-z]) finds four matches in the following string: 1a 2b 3c 4d. The replacement string z$1 converts that string to z1 z2 z3 z4.
 
**Example Screenshots**
_Before_ :
![alt text](http://vrnithinkumar.github.io/2017/08/19/vs-regex/before.png)
_After_ :
![alt text](http://vrnithinkumar.github.io/2017/08/19/vs-regex/after.png)

 
> 1. Be careful to select code part you want to swap parameter. Don't apply for whole Document or Solution, It might do some harmfull effects.
> 2. You can tweak the regex for other use cases where parameter pattern is different.
> 3. There exist some shortcuts to reorder the parameter in VS but it didn't work for me and even if it work, We need to select each AreEqual method and apply those shortcut.
 
**More Reference:**
[Assert.AreEqual Method](https://msdn.microsoft.com/en-us/library/ms243413.aspx)
[Using Regular Expressions in Visual Studio](https://msdn.microsoft.com/en-us/library/2k3te2cs.aspx)
[Is there a shortcut to swap/reorder parameters in visual studio IDE? - Stack Overflow](http://stackoverflow.com/questions/3292292/is-there-a-shortcut-to-swap-reorder-parameters-in-visual-studio-ide)
What is your favorite way to automate new user welcome emails (node)? Why?
Tags: discuss
Published: 2018-02-28 04:24:11

---
title: What is your favorite way to automate new user welcome emails (node)? Why?
published: true
tags: discuss
---

I've tried sendgrid, and I'm playing with nodemalier. I'm curious what mailers are really making devs happy. What do you like and why?
Is Coding an Art?
Tags: discuss, cleancode, art
Published: 2018-02-28 02:40:40

---
title: Is Coding an Art?
published: true
description: Some people think is just science, because our code should follow certain design patterns or principles that limit our creativity
tags: discuss, cleancode, art
cover_image: https://i.ytimg.com/vi/60zhX909jmQ/maxresdefault.jpg
---

I attended a talk at the college I go to that touched a few topics at a high level of how to step up our game from being just a regular programmer to becoming a great one, in which one of the speakers shared his opinion with the public with the question you read on the title...

Yeah, yeah, yeah, I know that we should know about DRY, KISS, SOLID, and a bunch of other principles or best practices to achieve the coding "Valhalla", but... is it true there is absolutely no creativity involved into coding?

The speaker's opinion can be resumed into:

> _"Things like design patterns and certain rules restrain us (programmers) from doing any kind of art form."_

And no, this is not related to what the outcome might be, like a video game or an app, try to focus on the code itself.
Why I Love The UNIX/Linux CLI
Tags: aws, bash, bashhacks, cloudformation
Published: 2018-04-28 04:27:31

---
title: "Why I Love The UNIX/Linux CLI"
published: true
tags: AWS,bash,bash hacks,cloudformation
canonical_url: http://thjones2.blogspot.com/2018/02/why-i-love-unixlinux-cli.html
---

There's many reasons, really. Probably too many to list in any one sitting.  
  
That said, some days you pull an old trick out of your bag and you're reminded all over why you love something. Today was such a day.  
  
All day, we've been having sporadic performance issues with AWS's CloudFormation functionality. Some jobs will run in (a few tens of) minutes, others will take an hour or more. Now, this would be understandable if they were markedly different tasks. But that's not the case. It's literally "run this template 'A' and wait" followed by "re-run template 'A' and wait" where the first run goes in about the time you'd expect and the second run of the same automation-template takes 10x as long.  
  
Fun thing with cloudformation is that, when you launch from the command line, you can pass all of your parameters via a file. Some templates, however, don't like it when there's two active copies that contain the same parameter values. The way around this is to generalize your parameters file and then "process" that parameter file for each running. The UNIX/Linux CLI means that you can do all of this inline, like so:

```
aws --region us-east-1 cloudformation create-stack --stack-name RedMine07 \
  --disable-rollback --capabilities CAPABILITY_NAMED_IAM \
  --template-url https://s3.amazonaws.com/my-automationbucket/Templates/RedMine.tmplt.json \
  --parameters file://\<(sed 's/__NUM__/07/g' RedMine.parms.json)
```
  
The nifty part here is in the last line of that command. When you wrap a shell command in "\<()", it runs the command within the parentheses and encapsulates it into a file-handle. Thus, if your main command requires an input-file be specified, the output of your encapsulated command gets treated just like it was being read from an on-disk file rather than as an inline-command.  
  
Slick.  
  
In my case, I'd generalized my parameters file to include a substitutable token, "\_\_NUM\_\_". Each time I need to run the command, all I have to do is change that "07" to a new value and bingo, new stack with unique values where needed.  
  
Another fun thing is the shell's editable history function. If I want to run that exact same command, again, changing my values — both those passed as stack-parameters and the name of the resultant stack — I can do:  
  

```
!!:gs/07/08
```
  
Which causes the prior stanza to be re-run as so:  
  

```
aws --region us-east-1 cloudformation create-stack --stack-name RedMine08 \
  --disable-rollback --capabilities CAPABILITY_NAMED_IAM \ 
  --template-url https://s3.amazonaws.com/my-automation-bucket/Templates/RedMine.tmplt.json \
  --parameters file://\<(sed 's/__NUM__/08/g' RedMine.parms.json)
```
  
Similarly, if the command I wanted to change was the 66th in my history rather than the one I just ran, I could do:  
  

```
!66:gs/07/08
```
  
And achieve the same results.
Which is the best macbook for programming?
Tags: discuss
Published: 2018-02-27 20:30:03

---
title: Which is the best macbook for programming?
published: true
description: 
tags: discuss
---

My macbook pro (from early 2011) just broke. I thought it was a RAM issue but it's not. I have a feeling it might not be worth repairing. In short I want a new laptop.

I would really love to get the cheapest macbook this time round (with the plan of going all out few years down the line). But, I have no clue when it comes to what different spec might mean.     

Is macbook air a good laptop for programming? At the moment I'm all about node development, but regardless of what programming language I explore (say mobile development) is it a good laptop?

The cheap version is £949 (fantastic price)

1.8GHz Processor 
128GB Storage
1.8GHz dual-core Intel Core i5 processor
Turbo Boost up to 2.9GHz
8GB 1600MHz LPDDR3 memory
128GB SSD storage1
Intel HD Graphics 6000

The other version is £1099

1.8GHz Processor 
256GB Storage
1.8GHz dual-core Intel Core i5 processor
Turbo Boost up to 2.9GHz
8GB 1600MHz LPDDR3 memory
256GB SSD storage1
Intel HD Graphics 6000

I have a strong feeling the storage of 128GB is too small. 

I still want to get an apple product but would love to go as cheap as possible, but still not regret it

Any suggestion is greatly appreciated
Why I refused a high-paying job while being unemployed
Tags: career, ethics
Published: 2018-02-27 19:38:37

---
title: Why I refused a high-paying job while being unemployed 
published: true
description: a blog post about choosing the right job 
canonical_url: https://ztickm.github.io/Why-I-refused-700-euros-job/
tags: career, ethics, 
---

*This was originally posted on my [blog](https://ztickm.github.io/Why-I-refused-700-euros-job/)*  
I had to let go an opportunity that could have paid 700 Euros per month, which is way above the average pay in Algeria.

## The offer
The job discription stated that the employees were to teach and help computer science students in their last year of their master's degree.
The teaching sessions were to be held via video calls for an hour or more. 

In addition to the salary, the company would pay for a relatively high-speed internet (8Mbps); for a high quality camera; and they would pay the salary for two to three months, in which the employee will have to study on their own some educative material the company would provide, 8 hours a day, 5 days a week.

## Why I refused the offer

### Reason 1: The incompatibility of the candidates
The company had gathered a dozen candidates, and scheduled a video call meeting regrouping all of us. I noticed that all candidates, including myself, were not fit for the job. Some candidates didn't even have education or experience related to computer science or computer engineering.  
I began questioning that their mission was really about teaching and not bullshitting students into paying someone who would read course material for them.  
The company was only looking for people who could communicate easily.

### Reason 2: Punctuality and time management
I was told that I would have my first interview at 9am, but it was the aforementioned video call meeting. Which was followed by one to one interviews with all candidates, I ended up being interviewed at 12pm.  
After which, we were told to stay on the group call until 2pm, for no reason. And we were asked to reconnect again at 3 to hear from the boss.  
The whole thing was badly managed.

### Reason 3: The contract
Since it was a foreign company not implemented in Algeria, the employment terms stated that we would work as freelancers, with a minimum commitment of one year, with no leaves and no vacations.
If a candidate was to change jobs or just stop, they would have had to repay the two/three months salary spent on the self-driven training.  

## Conclusion
In the past, I wouldn't have ever imagined letting go a job that paid this much, but I came to the realization that not every well paying job is worth the headaches and certainly not the ethics.
The tech tools I use
Tags: tech, tools, dev
Published: 2018-09-23 14:11:55

---
title: The tech tools I use
published: true
tags: tech, tools, dev
canonical_url: https://smakosh.com/the-tech-tools-I-use
---

> This article was originally published on my personal blog [Smakosh](https://smakosh.com/blog).

[![Tools](https://smakosh.com/static/tech-84f598a3896d271a6bdbaab95494ff67-5025c.jpg "Taken from my Instagram")](/static/tech-84f598a3896d271a6bdbaab95494ff67-ab4eb.jpg)

TL;DR I use Javascript for everything :D

So I thought about sharing the tools I personally use personally or at work, so let’s start with the design tools:

- Adobe Illustrator for logos, icons, illustrations.
- Adobe XD or Invision Studio for designing user interfaces & wireframes.
- Adobe Photoshop for editing pictures & memes :D
- Adobe After effects for editing videos (I recommend Adobe Premiere Pro for editing videos & AE to add effects).
- Dribble for inspiration and I share my work there as well as on Behance

Let’s now get into the tools I use while coding:

I share my code & look for inspirations on:

- Github
- Codepen

If I’m simply coding an interface that I’ll might integrate into an app (web or native) I use plain html/css & vanilla js.

- Jekyll or Gatsby (I recommend Gatsby), I use Github to host the files and I deploy on Netlify.

For Css I’m cool to use what ever tech available out there that makes my task done quickly & well, I have personally used Bootstrap 3 & 4, Bulma, Lostgrid, Materliaze, Tachyons & made my own little framework called Unnamed that has over 175 stars on Github, but I seriously prefer using cssGrid & I always enjoy styling my elements from scratch since the components are fully reusable with react.

If I’m making a web app, for the front end I use the `create-react-app` boilerplate as it’s the official one from the team that made React Js but I always have to add react-router, Redux, Recompose & many other modules I use the most.

I obviously use Git bash as my terminal when I’m on windows but I go with iTerm2 when I’m on macOS & VScode as my code editor (material theme).

For the backend, I was using php/mysql but I didn’t personally like it and switched to node js and so I currently use Express Js/Mongoose and Mongodb as database to make Restful APIs which I deploy on Heroku.

Forgot to mention that I sometimes use Firebase when I’m too lazy to work on the backend.

For native apps, I use React native to build mobile apps (Ios & Android).

For growth hacking, I focus more on building useful products that users really need in their lives and I simply share it on Product Hunt, Hacker news, Reddit and on social media.

I use Windows 10, MacOs Mojave, my MSI GP62 laptop, my macbook pro 2017 touchbar work laptop, Nexus 6p with a Dbrand wood skin. Full setup can be found [here](https://docs.google.com/document/d/1falYEEHhJxq4HIXwOPoc4lk0AYsfHY4U6ZCcY4Srs8g/edit?usp=sharing).
You need to know about i3
Tags: productivity, linux, ubuntu
Published: 2018-02-27 16:19:47

---
title: You need to know about i3
published: true
tags: ["productivity", "linux", "ubuntu"]
canonical_url: https://lobotuerto.com/blog/you-need-to-know-about-i3/
cover_image: https://thepracticaldev.s3.amazonaws.com/i/8zx9pk7uepqe5x7ozin9.png
---

# Power users rejoice

If you are a power user, you'll be happy to know that something like **i3** (an improved tiling window manager) exists ---I know I was, very.

These are the three videos with which I initiated myself into this new world of productivity.  
Of course, it won’t be _too_ easy at the start (or, it might be, depending on your mental model and how you go about things).

But worry not, if **i3** is meant for you, it’ll stay with you —or you’ll stay with it— for a long time to come.

Just have a look at least at the first video, you just need to watch the first two minutes of it to see if it's something you'll love for life or not. Dare to have a look? I _double dog dare_ you!

# What is i3?

From the [official site](https://i3wm.org/):

> i3 is a tiling window manager, completely written from scratch. The target platforms are GNU/Linux and BSD operating systems, our code is Free and Open Source Software (FOSS) under the BSD license. i3 is primarily targeted at advanced users and developers.

Following videos were authored by: [bookercodes](https://twitter.com/bookercodes).

## i3wm: Jump Start (<sup>1</sup>⁄<sub>3</sub>)

{% youtube j1I63wGcvU4 %}

> Welcome to this three-part series on the i3 Window Manager. i3 is a sophisticated tiling window manager for Linux. In this tutorial, you’ll learn what i3 is; how to install it; and of course, how to use it. In the second video, you’ll learn how to configure it, too!

* * *

## i3wm: Configuration (<sup>2</sup>⁄<sub>3</sub>)

{% youtube 8-S0cWnLBKg %}

> Welcome to part two of my three-part series on the i3 Window Manager. In what turned out to be my longest screen-cast yet, I’ll show you how to configure various aspects of i3.

* * *

## i3wm: How To “Rice” Your Desktop (<sup>3</sup>⁄<sub>3</sub>)

{% youtube ARKIwOlazKI %}

> Welcome to the finale of my series on the i3 Window Manager. In this final screencast, I’ll teach you how to rice your desktop. “What does ‘rice’ mean?”, you might be asking.  
‘Rice’ is a word that is commonly used to refer to making visual improvements and customizations on one’s desktop to better suit one’s tastes (source: [/r/unixporn](https://www.reddit.com/r/unixporn/)).

* * *

# Resources

Here is a link to [other videos and screenshots.](https://i3wm.org/screenshots/)

# How do I get it?

## Ubuntu

You’ll just need to:

```
sudo apt install i3
```

Then restart your machine, and select **i3** before logging in with your user.

## Manjaro Linux i3 Community Edition

Or you could try a Linux distribution that comes with **i3** preinstalled.  
Have a look in here: [Manjaro Community Editions](https://manjaro.org/community-editions/).

* * *

**Enjoy!**

[Visit my blog](https://lobotuerto.com), you might find other interesting stuff over there.