teleren/devto huggingface dataset:
Building a programming ENV: in 2K19
Tags: programming, go, linux, daw
Published: 2019-04-03 04:31:18

---
title: Building a programming ENV: in 2K19
published: true
description: How I build my programming ENV's on whatever machine I am the longest on
tags: #programming #golang #linux #DAW
---

Now tracking this file with **git** revision power...

I've had to do this quite a few times, the past couple of months. Rebuild my programming ENV: on the #DAW where I spend most of my computing time on.

Since the machine also dubs as a streaming workstation, it is most of the times in a #win64 OS, even though per default it boots in #Linux (MX-Linux for a while now)

Now in the beginning I would scoff at building the ENV: in win64, the reality is that this machine is the one with the most RAM: we all know coding needs ram. The upgrade of this #DAW will also be 32GB later 64GB on a 2700X CPU sporting the same hardware for the rest.

Since I really needed to code more, I just hacked the button (literal from de knoop doorhakken in NL) and started in win7 to build the ENV

Amazing how the age of that OS was shown; not even single docker possible.
I went to win8.1 for various reasons and tried again. Still a failure. I read the docs but wanted to see if I was smarter and could fake win10, as a joke.


I then left #docker alone and went for the other key elements 1st:
- git: that gave me the powerfull bash, newer than the old install of mingw
- vim: luckily included with git
- MarkDownEdit for obvious reasons
- golang: easily installed and nice to learn
- nodejs: just need 2 learn that too
- python v2.7.x I need SimpleHTTPServer
- RubyStack neatly integrated package
- scoop: to get neat tool install from the bash line
- vscode: just too good an IDE to play in
- unreal engine: yeah I love gaming IDE's also


All these installed without a problem. Actually no, the RubyStack always hicked up at the end when it needed to do the samples. But it worked and I have PostgreSQL and PhpMyAdmin as a few examples in a nice package with ruby and other important tools.

I have a nice tweet series about this in the #301daysofcode #100DaysOfCode #Linux #advancedprogramming hashtags on twitter.

This is a middle part of it: <https://twitter.com/Radio_Azureus/status/1109157486710439937>


This is part-I of the series in which I will publish this thread
Finding Bugs
Tags: hng
Published: 2019-04-03 03:51:57

---
title: Finding Bugs
published: true
description: 
tags: hng
---

Included across all pages on [Timbu](https://timbu.com) - a travel destinations curator - is the navigation bar. Validating the html on the pages of the website reveals that there is an errant unordered list tag that is never closed. This tag also has another ul tag as a direct descendant. This makes for an invalid markup. 

Even though browsers do ignore such mistakes and render the webpage properly, the inclusion of an extra unneeded tag can only result in extra cpu cycles as browser engines such as Google Chrome's Blink try to render the DOM.
Building your application after pushing to Heroku
Tags: heroku, npm
Published: 2019-04-03 02:20:27

---
title: Building your application after pushing to Heroku
published: true
description: Build scripts can be ran after pushing to Heroku
tags: heroku,npm
---

When deploying their application to Heroku, most people will run development script for their application. This will tremendously increase the loading time of your application. Instead you can build a production-ready version of your application after pushing your application to Heroku making use of **heroku-postbuild** script in your **package.json**
Getting organized
Tags: discuss
Published: 2019-04-03 02:14:53

---
title: Getting organized
published: true
tags: discuss
---

So I have gone back and forth on what my first post should be.. should I try and show off some knowledge, should I write a tutorial, should I tackle a new project and write about that?

Then I decided that maybe what I should really post is to find out how other people manage with probably my biggest weakness.. staying organized.

I head up a small team that works on a few projects at a time.  Most of the key end users are the same, but the projects differ, though are often similar-ish.  I get a ton of emails from people talking about different projects without any kind of subject line cue, and sometimes even emails covering multiple projects in a single email.. and if I'm being honest, my inbox is a MESS.

I've tried moving the emails based on project, but have a hard time where it covers multiple projects, and even then it's just breaking the mess up. 
 I've tried subfolders under each project but often can't classify them to a single issue etc.  I tried splitting them by person, but that doesn't really help keep my focus to a single project (and one person in particular has about 30000 emails stretching back several years)

So I end up doing a big cleanup about once every few months and say to myself.. this time I'm keeping my inbox at 0 emails from now on.. but we all know I'm lying to myself.

How do you all keep your email organized, easy to search and without burying emails in a million subfolders never to be seen again?
Day 7 Learning Javascript
Tags: beginners
Published: 2019-04-03 01:37:07

---
title: Day 7 Learning Javascript
published: true
description: A beginner's journey into Javascript
tags: #beginner
---

The Object of my Desire...

Not sure why, but learning the basics of Objects in Javascript has been one of the easiest subjects for me to grasp so far. Or maybe everyone else finds them super easy too? I don't know. But I just did 3 different exercises on Objects and got all 3 of the solutions right. The exercises involved adding "username/password" Objects as well as adding Objects to an Array I created.

I think this only means the next topic I learn is going to give me grief, which seems only fair.
Reverse Proxy Madness
Tags: webdev, career
Published: 2019-04-03 01:25:00

---
published: true
layout: post
title: Reverse Proxy Madness
tags: [webdev, career]
date: 2019-04-02 21:25 -0400
author: Gregg Meluski
description: what do you get when you reverse a reverse proxy?
---
*This post was originally published at [meluski.com](https://meluski.com/)*

Before we plumb my own confusing thoughts, let me first supply the sentence that made it really simple for me to understand exactly what a reverse proxy does (from ["Mastering Nginx"](https://www.goodreads.com/book/show/15957451-mastering-nginx)):

> A reverse proxy is a web server that terminates connections with clients and makes new ones to upstream servers on their behalf.

So freaking simple, right? If this is all you came for, please, quit reading this and move on to the book.

What had stymied me for many years was pondering the idea, of, what part of a proxy does a reverse proxy reverse? From the standpoint of an ignorant consumer, a my client and a proxy server have a one to one relationship. I have an originating IP address that makes a request to the proxy IP which, in effect, stamps its own identity in lieu of my own before passing it on to the destination.

Also freaking simple. And then I would start thinking about what reverses, and my mind would boggle.

The idea that a proxy server can handle inbound requests from multiple clients is RARELY acknowledged without some substantial digging. Most of the immediately searchable literature is about using the proxy server as a client, instead of how the internals of the proxy server actually work - as in handling request from multiple unrelated clients and then rerouting them so it appears they all originated from the same IP address.

I think part of the confusion is that conceptually, there are multiple, incomplete ways to look at the reversal when not considering the entire request cycle. After struggling with this for a while, I realized I was ignoring the response aspect of the relationship, because the reverse proxy does do its initial work when a request is inbound to the proxy server, same as a straightforward proxy.

Then it kind of hit me:

> A proxy server makes a request look like it came from a different IP than the true source, and a reverse proxy makes it look like the response came from a different IP than the true source.

As such:
> A proxy can be used to shield the identity of the actual requestor, a reverse proxy can be used to shield the identity of the actual destination.


Great. I get it now. And I hope this helps anyone who has also understand how the two are related. I'll leave you with some ASCII art, which helped me arrive at this conclusion:

### Proxy
```
[shield the source]
from multiple independent clients, allocate requests to a single specific IP
     ____
--> |    |
--> |    | --->
--> |____|
```
### Reverse Proxy
```
[shield the end points]
from a single client, conditionally allocate requests to specific IPs
      ____
     |    | ---> xxx.xxx.xxx.01
---> |    | ---> xxx.xxx.xxx.02
     |____| ---> xxx.xxx.xxx.03
```
Moving On Up (Or Down)
Tags: android
Published: 2019-04-04 03:08:48

---
title: Moving On Up (Or Down)
published: true
tags: android
canonical_url: https://zdominguez.com/2019/04/03/moving-on-up.html
---

<center>
{% twitter 1113242947460325376 %}
</center>


I tweeted that this morning after rediscovering CMD+SHIFT+UP. I have known about this shortcut for a while, but I guess I haven’t had reason to use it until lately.

And then I remembered a variation of this shortcut that would literally “move things don’t care”.

<center>
{% twitter 1113298274838929408 %}
</center>

This being IntelliJ, these actions work on more than just properties. They work for basically anything in your code that has a scope – individual lines, functions, classes even!

There are two main movement actions, _move statement_ and _move line_. Depending on what you want to do, each of these have their own benefits.

Moving a _statement_ means that the IDE will respect the context within which that particular element exists. In the case of a single line of code, this means maintaining its current scope. What this means exactly is – if a line is inside a function, using CMD+SHIFT+UP/DOWN will _never_ move it out of the function.

To wit:

[![](https://zdominguez.com/assets/moving_up/cmd_shift_line.gif)](/assets/moving_up/cmd_shift_line.gif)

But this line wants to move to another function! It says so itself! This is when CMD+ALT+UP/DOWN comes in handy:

[![](https://zdominguez.com/assets/moving_up/cmd_alt_line_2.gif)](/assets/moving_up/cmd_alt_line_2.gif)

This shortcut is really handy when reordering or refactoring functions:

[![](https://zdominguez.com/assets/moving_up/cmd_shift_fun.gif)](/assets/moving_up/cmd_shift_fun.gif)

I leave it as an exercise for the reader to see how the shortcut behaves with classes. Get moving and stop copy-pasting! :dancers:
Disable detailed tooltips in Inspect Mode for Google Chrome Dev Tools
Tags: chromedevtools, frontend, googledev
Published: 2019-04-02 22:00:04

---
canonical_url: https://opensauce.it/disable-detailed-tooltip-in-inspect-mode/
title: Disable detailed tooltips in Inspect Mode for Google Chrome Dev Tools
published: true
description: Disable those new annoying tooltips in the Inspect Mode on Chrome
tags: 
- Chrome Dev Tools
- Frontend
- Google Dev


---
I spend 3/4 of my life on Google Chrome DevTools. In the latest release of Google Chrome Dev tools someone had the great idea to push upstream an intrusive tooltip that pops up when you inspect HTML elements on mouse hover.
This:
![This](https://i.snag.gy/6B5irK.jpg)

Google describes the change this way:

> When inspecting a node, DevTools now shows an expanded tooltip containing commonly important information like font size, font color, contrast ratio, and box model dimensions.

I really don’t think fontsize as important information, in fact I find this “too much”. These simple CSS attributes are probably not the ones that I am worried about in my development journey of pixel perfect, lightweight and reactive web pages (sarcasm). In fact that’s probably the least important information I need when I dissect through html elements in the node tree.

<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">The new Chrome element inspector pop up is absolute garbage. Who the heck put that as a feature request <a href="https://twitter.com/ChromeDevTools?ref_src=twsrc%5Etfw">@ChromeDevTools</a> ?</p>&mdash; orlie (@orliesaurus) <a href="https://twitter.com/orliesaurus/status/1110952009396600832?ref_src=twsrc%5Etfw">March 27, 2019</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


## How to prevent this detailed tooltips from appearing?
There’s no way to disable the pop up from showing permanently, however I found out that simply holding your CTRL (or CMD or equivalent key) on you keyboard while moving your pointer over the web-page will disable the pop up from showing up.

## Why fix it if it isn’t broken?
All this information is repeated in Dev tools panels quickly below. Why the need for a tooltip that pops up? If you’re interested in scoping out the attributes of a certain element just look in the panes below.

Is this the best way to disable the tooltip? Probably not. However this will have to do, for now.
I do find this addition to Dev Tools annoying, then again I am a developer and I like to complain.
JavaScript interview question that you have to know
Tags: javascript
Published: 2019-04-02 21:46:11

---
title: JavaScript interview question that you have to know
published: true
description: What is the difference between *var*, *let* and *const* in JavaScript?
tags: JavaScript
---

What is the difference between *var*, *let* and *const* in JavaScript?

It happened to me with few junior JavaScript and few PHP mid/senior developers that they didn't know the answer and the bad side is that all of them had a decent experience in projects with JavaScript.

The difference is huge, Scope, Declaration and Re-declaration.
I was going to explain in details but found a very good article here that have all the details [Var, let and const- what's the difference?](https://dev.to/sarah_chima/var-let-and-const--whats-the-difference-69e)
Why Unix is everywhere?
Tags: discuss
Published: 2019-04-02 20:52:11

---
title: Why Unix is everywhere?
published: true
tags: discuss
---

Almost any OS is just a Unix derivative or at least inspired by it except few OS(s). The Unix ideology is everywhere. Was there any OS during the 1970s with a very different aim and philosophy. 

---
What were the other research institutions around the world doing at that time? Hadn't they made anything like Unix?
Java Annotations.
Tags: java, annotations
Published: 2019-04-02 17:25:38

---
title: Java Annotations.
published: true
description: 
tags: #java #Annotations
---

People Using Spring Framework in Java know how cool the annotations are, even I got surprised when I used the annotation for the first time. I'm not saying that only spring has annotations, Java itself has a lot of Annotation and that work so good and reduce a lot of codes.

When I was started to determine writing at least one annotation I thought the annotation will be capable of doing a lot of things without using any additional Methods, in fact, I was wrong.

If you want to write an annotation you need one Annotation and at least one method to facilitate the annotation,

The following example will show how easily you can create an annotation to Map fields from your Models to DTOs easily without having Setters or Constructors.


https://github.com/saifali40/mapper


```
import java.lang.annotation.*;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface FieldMapper {
    public String field();
}
```

This is the annotation I wrote for my demo project, where it will Run on the Runtime for the fields you can try other targets and retention policies as well, for my requirement I need the retention as runtime and target as the field.

```
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import in.saifali.mapper.annotations.FieldMapper;

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

public class Processor {
    Gson gson = new Gson();
    Map<Object, Object> dtoMap = new HashMap<>();
    Map<Object, Object> objectMap = new HashMap<>();
    public <T> T map(Class<T> t, Object object) {
        try {
            T returnClass = t.getDeclaredConstructor().newInstance();
            for (Field field : returnClass.getClass().getDeclaredFields()) {
                field.setAccessible(true);
                if (field.isAnnotationPresent(FieldMapper.class)) {
                    dtoMap.put(field.getName(), field.getAnnotation(FieldMapper.class).field());
                }else{
                    dtoMap.put(field.getName(), field.getName());
                }
            }
            objectMap = gson.fromJson(gson.toJson(object), new TypeToken<HashMap<Object, Object>>() {
            }.getType());
            dtoMap.forEach((x, y) -> dtoMap.put(x, objectMap.get(y)));
            String json = gson.toJson(dtoMap);
            return gson.fromJson(json, t);
        } catch (Exception e) {
            throw new IllegalArgumentException();
        }
    }

}

```

As the retention is Runtime I can use the Java reflection API and getting each field with annotation `@FieldMapper` and mapping to respective fields.

From the above GitHub repository, you find the test cases and understand how to use the above annotation easily.


Note: I'm not good at writing.
Manage your npm-package directly from your code
Tags: vscode, javascript, npm, package
Published: 2019-04-02 19:55:17

---
title: Manage your npm-package directly from your code
published: true
description: Easily install/remove npm package directly from your code or package.json file.
tags: vscode, javascript, npm, package
---

### vscode-here-and-now extension
Easily install/remove npm package directly from your code!
https://marketplace.visualstudio.com/items?itemName=orkhanjafarovr.vscode-here-and-now

![vscode-here-and-now](https://thepracticaldev.s3.amazonaws.com/i/snlxjxgmklcwvgb5z0ng.gif)

by clicking here
```javascript
import foo from 'bar';
const foo2 = require('baz');
Or in package.json
```

Key-bindings:
```
Install package: shift + alt + i
Remove package: shift + alt + u
```
Boilerplate for MERN stack development
Tags: react, node, javascript, showdev
Published: 2019-04-02 19:09:56

---
title: Boilerplate for MERN stack development
published: true
description: Boilerplate for MERN stack development
tags: react, node, javascript, showdev
---
**Welcome**, this is my newest boilerplate module, it helps to start MERN stack development faster and uses features like:

 - Docker containers
 - Clear separation of concerns (client, server, build)
 - Folder by Feature structure
 - Clean code with JavaScript Standard Style
 - PM2 (cluster mode) for production
 - Built-in local authentication with Passport
 - Built-in Socket.IO connection
 - Detailed description

Thanks for stopping by,
**Have a nice day!**

[Check out on GitHub](https://github.com/tamasszoke/mern-seed/tree/legacy)

**Update 2022**

There is a new TypeScript version, check the [article](https://dev.to/tamasszoke/a-seed-for-your-next-project-327f)!
Would you please try my Bootstrap 4 based dialogs?
Tags: javascript, bootstrap4, modal, dialogs
Published: 2019-04-02 18:02:03

---
title: Would you please try my Bootstrap 4 based dialogs?
published: true
description: Looking for testers for my new javascript library
tags: javascript,bootstrap4,modal,dialogs
---

Hi guys,



I've made a collection of flexible dialogs based on Bootstrap 4 modals.  
I think it's quite easy to use, and it can be extended.



I'll be happy if you give it a try.  
Any comment, criticism or contribution is very welcomed.



Github: [https://github.com/bgaze/bootstrap4-dialogs]()
Demo & docs: [https://www.bgaze.fr/bootstrap4-dialogs]()
Working in pressure situation is bad at all?
Tags: productivity, discuss, beginners, career
Published: 2019-04-02 17:37:08

---
title: Working in pressure situation is bad at all?
published: true
description: How are we dealing with pressure? Is there something that we are missing, or we are dealing with pressure in wrong way.
tags: productivity, discuss, beginners, career
---

Let’s Directly get into the plot.

### **Definitely, If we are following these things:** ###
* By thinking about pressure, instead of working.
* Working without calm, and committing mistake upon mistake.
* Working directly without any plan.
* Won’t give any updates the client.

### **Not at all, if we follow these things:** ###
* Stay Calmed, Don’t be in so much hurry ( Leads to mistakes 😳 ).
* Prepare the plan 💡 ( Do the estimation of tasks/subtask).
* Divide tasks in subtasks.
* Prioritize the things ( If there is so much work that needs to be done, we can push ahead the things that have less priority )
* Start working based on priority :star: .
* If we have some estimations we can give it to the client.
* Put the proper update.
* Don’t release before code review/testing ( We are human being Some time in the hurry some silly mistake takes a place. ).

### **Things that we should do:** ###
* Explain the complexity of tasks to the client.
Check for dependency ( also If there is a chance that dependency can arrive later on ), and if there is any, ask the related person ASAP, or schedule a discussion after defined time ( This will prevent unavailability ).
* Give the updates about work done, and remaining work, so they can be in sync.
* There is nothing wrong to ask for extra time If some task is taking time :).
* Be Empathetic.

### **Why we should work in pressure situation?** ###
* To improve productivity.
* It will increase the confidence for the next tasks.
* It gives the same feeling as we won the game 😎 ( Still I’m not a gamer 😛 )

That’s all from me but still, there are many things we can add here. Please reply in the comments below and let me know your thoughts on this, it will definitely increase my confidence to write on the next post soon. 😉

PS. This is my first non technical post 🙂
Building my developer portfolio reality blog.
Tags: beginners, career, codenewbie, personalnews
Published: 2019-04-02 16:30:52

---
title: Building my developer portfolio reality blog.
published: true
description: This article is an introduction of how i will be building my developer portfolio through participation in OS, freelancing, remote internship programs. 
tags: beginners, career, codenewbie, personalnews
cover_image: https://thepracticaldev.s3.amazonaws.com/i/kh7ujsovuqz09zia3gzr.jpg
---

This year i made a resolution to build my online portfolio and i hope before the year ends i would write _How I Got My First Dream Remote Job_ article.

I have come to the realization that no matter how introverted you are you might end up not achieving a lot or anything if you don't put yourself out there, unfortunately i fell into this group. I am a lover of tech, a developer for quite a long time and yet i cannot point out one successful project that i'm affiliated to. All the project i have had an opportunity of building is either shutdown or unsuccessful so how do you add that to your portfolio?

![Learning how to work](https://thepracticaldev.s3.amazonaws.com/i/zmze9iaca9esn256wxjv.jpg)
This year i'm starting all over again like a baby learning how to walk, i'm a beginner learning the best way to write code, how to work in a team, how to use the latest technologies in development, build my OS profile, tech blogging, basically i'll follow technology as it changes and hopefully get my remote job along the way.

I have decided to blog about my activities and experience every step of the way, currently am participating in two non-paid remote internship programs, tho one of the internship claimed that they'll be handing out cash price if you get to a certain level. Well, i don't care am there for the experience.

Stay tuned i'll blog about the internship every step of the way!

P.S: I will be bluntly honest with all my post.