teleren/devto huggingface dataset:
Advice on training junior developers
Tags: beginners, management, learning, discuss
Published: 2017-09-16 13:10:09

---
title: Advice on training junior developers
published: true
description: A discussion on training new developers within a team.
tags: beginners, management, learning, discuss
---

Hi!

I work as a front-end developer, and have recently found myself in the position of mentoring and training a new junior front-end developer.

I'm relatively good at dealing with people on a personal level, but in terms of training and teaching good coding practices, I haven't really had to do this kind of thing before.

I thought it would be an interesting discussion in the Dev community, to find out what other people's experiences are with this kind of thing. As a developer, taking on a role that involves managing another person can be daunting. At the moment I find that I just want to be as helpful as possible. How do you start to transfer knowledge and experience that you've gained over years?

Here are a few questions that I'm curious to know:

**What is the best piece of advice you were given as a junior developer?**

**Have you ever had a 'mentor' of some kind?**

**Do you have any preferred methods of teaching development work to another person?**

Discuss!
It's a fact: great teams have great leaders.
Tags: teams, leadership, culture
Published: 2017-09-16 12:08:08

---
title: "It's a fact: great teams have great leaders."
published: true
description: 
tags: teams, leadership, culture
---

This week at work there have been multiple discussions around great teams and with that, about my team. This is why I decided to write some thoughts around it. 

I have been working in IT for almost 11 years, in 3 countries with colleagues from all over the world. This means that in a rather short time I had the luxury to learn a lot about work environments, various cultures and I also ran into multiple challenges which most probably only occur in such environments.

Even more important, I had the tremendous luck to work with and have as mentors colleagues that are among the best in their field, who also enjoyed helping others grow. With this I noticed a trend: great teams, have great leaders.

Short and sweet: teams are made of people, people are different, follow their own career path and go through various stages in their lives. On top of this, there is the human nature factor: some of us are more competitive than others, some would prioritize higher their own needs and success compared to team's needs and success and so on.

With all these differences and challenges, there are still great teams out there.

What do these teams do differently?
- They respect each other.
- They learn to be good listeners and take into account everyone's opinion. 
- They take responsibility for both their successes and failures.
- They trust each other.
- They believe that knowledge sharing will not make you irreplaceable, but it will help both you and the team evolve.
- They are not afraid to ask for help.
- They do not let conflicts go undiscussed, but bring these out in the open and talk it through.
- They regularly pause and reflect on how things are progressing and look into what should be improved next.
- They have good sense of humor that keeps morale up also during hard times.
- They are happy and supportive of a colleague's success.
- And they do not forget to also have fun and celebrate achievements. 

Where do the team leaders fit in? They are the ones that nurture the team by encouraging the values derived from above items. 

And let me tell you, it can sometimes be an extremely bumpy ride and this is when you know that change is happening! :-) 

What do you think makes a team great?

I would love to hear your thoughts and comments around this.
Watch out for multiple subscriptions with BindCommand to event in RxUI
Tags: reactiveui, c
Published: 2017-10-24 06:48:03

---
title: "Watch out for multiple subscriptions with BindCommand to event in RxUI"
published: true
tags: ReactiveUI,C#
canonical_url: https://blog.jonstodle.com/multiple-subscriptions-with-bindcommand-to-event-in-rxui/
---

When using the handy binding methods in ReactiveUI, you might find yourself using the very handy overload of `BindCommand()` which let's you bind a command to an event:

```
this.BindCommand(ViewModel, vm => vm.MyCommand, v => v.TextBox, nameof(TextBox.GotFocus));
```

You might even have it inside a `WhenActivated()` in your view:

```
this.WhenActivated((CompositeDisposable d) =>  
{
    this.BindCommand(ViewModel, vm => vm.MyCommand, v => v.TextBox, nameof(TextBox.GotFocus));
});
```

What you **have** to remember is to dispose that `BindCommand()` with the disposable you're given inside `WhenActivated()`.

Unlike regular command bindings, which just binds the command to the command property of the control...

```
this.BindCommand(ViewModel, vm => vm.MyCommand, v => v.MyButton);
```

Command to event bindings adds an event listener to the event and executes the command when the event fires. If you don't dispose this binding, `BindCommand()` will add a new event listener when navigating back to that view. This means you'll have to event listeners, both executing the command, resulting in two executions of the command.

This will of course repeat every time you navigate back to a view, and reactivate it. The solution is to follow best practice when using `WhenActivated()` and dispose the binding:

```
this.BindCommand(ViewModel, vm => vm.MyCommand, v => v.MyButton)  
    .DisposeWith(d);
```

Happy coding!



_This post was originally published on [blog.jonstodle.com](https://blog.jonstodle.com/multiple-subscriptions-with-bindcommand-to-event-in-rxui/)_
Hi, I'm Apoorv Saxena
Tags: introductions
Published: 2017-09-16 03:51:08

---
title: Hi, I'm Apoorv Saxena
published: true
description: My introduction post
tags: introductions
---

I am a polygot programmer from India.

You can find me on GitHub as [ApoorvSaxena](https://github.com/ApoorvSaxena/)

Most recent open source contribution is [Lozad.js](https://github.com/ApoorvSaxena/lozad.js), light and performant lazy loading library.

Big fan of performance optimisations in webpages, checkout publications and links to conference talks on [Linkedin](https://in.linkedin.com/in/saxenaapoorv).

Nice to meet you.
Steps to mitigate 503 errors on dev.to
Tags: meta, webperf
Published: 2017-09-15 16:39:04

---
title: Steps to mitigate 503 errors on dev.to
published: true
description: This is a memo to the team.
tags: meta, webperformance
---

This is mostly a memo to the team, but anyone can feel free to ask me anything about what's up.

We've had a heightened number of request timeout 503 responses over the past week. They come in clusters. I have ideas about why were having a hard time dealing with them, but no solid answers. In the face of this, I've made several _we'll get to that eventually_ efficiency improvements and [Mac](/maestromac) chipped in with improved monitoring. Here are the changes to deal with it:

- [Origin Shielding](https://docs.fastly.com/guides/performance-tuning/shielding) through or CDN Fastly. This should significantly augment the amount of requests that do not go through to our server. It acts as a central node for the distributed nodes to first read. By default that central node is the origin server.
- Removed superfluous async requests to the origin server that were inefficiently lying around.
- Improved efficiency of necessary origin server requests that happen asynchronously on most page loads, this includes fetching the number of reactions for an article and comments, etc. These are small changes, but these get a lot of traffic.
- Lowered the time-to-timeout so we don't waste resources on the strenuous requests.
- Periodic flushing of in-memory cache. This may be leaky, need to investigate further, but we've hit our plan limit a few times and we shouldn't _need_ to increase the plan. This seems like a fine interim solution.
- Better monitoring for these issues. We're a small team that's not managing any life-or-death programs, and some amount of "shit hitting the fan while we're all asleep" is allowed, but we now have better alerts when we see heightened error rates. This was all Mac, as mentioned earlier.

All-in-all, our CDN should now be taking much more of the load, improving the user experience and limiting these worst-case scenarios.

I've wrongly said this a few times this, but I really think we have a pretty fine setup at this point to handle plenty more traffic than we are getting. There's still some more routine optimizations in the pipeline and more work to be done investigating this for current issues and future scale.

![](https://media2.giphy.com/media/VcBLRaAiKQAms/giphy.gif)
Should I test initialize?
Tags: ruby, rails, testing, discuss
Published: 2017-09-15 14:18:49

---
title: Should I test initialize?
published: true
description: 
tags: ruby,rails,testing,discuss
---

So, yesterday I was discussing with my team if it is a waste of time to test initialize method in ruby using rspec.

Usually, when we test a method which needs to instantiate a class (.new), initialize method is implicitly tested. But we only "implicit test" private methods and initialize is a public method.

Another point is that initialize should only create attributes without complex logic.

What do you think about that?
Managing dotenv files in git repositories
Tags: discuss, node, dotenv
Published: 2017-09-15 12:55:20

---
title: Managing dotenv files in git repositories
published: true
description: Secure your .env files but make it easy for other developers to configure their environment
tags: discuss, node, dotenv
---
Sometimes your project needs access to sensitive information like an access token or database password. Maybe your project needs some configuration like a hostname or a port to run on.

If so then it is likely that you are at least aware of the dotenv file. If not see this great medium article on [Managing environment variables in Node.js – Rafael Vidaurre – Medium](https://medium.com/@rafaelvidaurre/managing-environment-variables-in-node-js-2cb45a55195f).

The big problem with storing sensitive information inside a git repository is that you could push and leak these keys (more so for open source projects). Because of this most gitignore file templates include all files with `.env` extensions as a precaution.

Now security is out of the way, what about convenience. When you first clone a project that depends on a `.env` file you have to A) know the environment variables that the project expects or B) copy from an env example file or readme and fill in the contents manually.

This could be much more streamlined which is why I have published an npm package [envup](https://www.npmjs.com/package/envup).

![Example](https://thepracticaldev.s3.amazonaws.com/i/7zjuzac7ry386rqcyr36.png)

This tool allows you to create an `env.json` file in the root of your project containing the contents of your environment file and then configure it with one command.

This allows you to keep your env file ignored and also make it easy for others to configure their environment too!
Mistakes are needed!
Tags: mistakes
Published: 2017-09-15 09:17:24

---
title: Mistakes are needed!
published: true
description: 
tags: Mistakes
---
*Originally posted on my [blog](https://mathieu-nivoliez.com/posts/2017-09-15-mistakes-are-needed/).*

Hello, today we are going to speak about mistakes, why they are needed and how to approach it.
‘Are you going to make us feel bad?’

Not at all. Quite the opposite in fact.

We all endeavour for the better in our project. We want to wipe out mistakes, we want to make it as perfect as it is possible to. And often, we forgot one simple rule. Mistake is fuel to creation. Some of you may follow the YouTube channel [FunFunFunction](https://www.youtube.com/channel/UCO1cgjhGzsSYb1rsB4bFe4Q) animated by [@MPJ](https://twitter.com/mpjme). In a relatively [new video](https://www.youtube.com/watch?v=6YBV1cKRqzU&t=1484s), he spoke about how he should have left duplication in his code to let a pattern emerge. As he said himself, duplication is bad and should be avoided. But any mistake should be taken care of in a reasonable way. Thus, it leads me to several points I would like to rise.
Mistakes there are and mistakes will always be.

Mistakes are bound to happen. You’re not a machine, and therefore, you are not perfect (hopefully, it would be boring). Denying it will only make mistakes less visible and difficult to manage.
Mistakes will make you better.

Sadly, we rarely learn from success. On the other end, failure teach us a lot. By making mistakes, you force yourself to find new ways to deal with a problem, you exercise your reflection over a difficulty.
‘So, what should we do?’

Here the crafty question. My best advice is to accept mistakes and set up an environment to able to deal with them. Testing is one way, review is another one, and there are many more. Also, lower your initial standard. Let me explain, many organisations require upfront conception, for example UML diagram before programming, and often, it doesn’t work. The goal is to make it perfect in one shot. To get something working at the first try. I assure you, it will most likely never happen, you will work with obsolete tool, you will lack some knowledge about something, a coworker will be less accurate, etc.

So, in four words, leave room for mistakes. They are your safeguard to creation. And to companies, learn not to reprove mistakes. A mistake should be an occasion to learn, not to punish. Of course, this should be adapted in function of the situation, but you got the idea.

That’s all I have to say for now. This article was quite difficult to write for me and I am not sure to have expressed my mind correctly. But, it’s close to my heart: I see so many people being mad about not making mistakes and being stuck by ‘flaws of a perfect design’ and I want to highlight this issue. If you have any comment, advice or stories about this, please tell them.

—Mathieu
Office Hours
Tags: giveback, officehours, people
Published: 2018-11-04 16:28:23

---
title: Office Hours
published: true
tags: give back,office hours,people
canonical_url: http://designfrontier.net/office-hours
---

If you hadn’t noticed from this post and the last one... I am feeling grateful and like I need to give back to the community a bit. So while Hack Night SLC is ramping back up I thought it would be good to try out office hours.

I recognize that the fact that I can do this is a deep privilege, and that I’ve been lucky enough to have mentors and friends help me throughout my career. I really wouldn’t be where I am without many blessings, and lots of help.

So I am going to try and help others with the same sort of things.

## What do you do in these office hours?

So far I’ve done 2 office hour meetings. We talked about career stuff. We talked about interviews and how to handle them better. We talked about where they wanted to be in their careers. We talked about some ideas for how to get there.

I don’t really have a plan for what to cover. If you sign up you can leave a note there about what you would like to talk about. Could be bikes. Could be programming. Could just be that you need to talk. Whatever. I am here as a resource for you for the 20-ish minutes that our meeting lasts. So whatever questions that you have about I’ll do my best to answer.

I’ve really enjoyed it so far and hopefully it’s been useful and fun for the folks that I’ve met with.

## How do I sign up?

This is the easy part! See where it says designfrontier up there? Click on that. There will be a [link there to office hours](https://appoint.ly/s/danielZGVzaWduZnJvbnRpZXIubmV0/open-office).
Speed up Ubuntu apt-get downloads with apt-fast
Tags: ubuntu, linux, debian, aptget
Published: 2017-09-15 03:07:52

---
title: Speed up Ubuntu apt-get downloads with apt-fast
published: true
description: Speed up apt-get with apt-fast
tags: ubuntu, linux, debian, apt-get
---

## Intro

I've been experiencing slow download speeds on my Ubuntu VirtualBox a couple of weeks ago. Initially, I thought that my internet connection was acting up again (I have an 8 Mbps connection at home), so I did speed tests. However, tests consistent which led me to conclude that it's probably an Ubuntu mirror server thing. Half a day passed, and the connection was still a struggle so I  cleaned my sources list and changed them from the mirror that my location was using to US with:

```bash
    sudo sed -i 's/http:\/\/us./http:\/\//g' /etc/apt/sources.list
```

## apt-fast

So, speed was normal again. However, I kept thinking about the latency of downloading it from the server that I set it to. With a few Google searches, I came up with this great package that uses parallel connections to speed up downloads. It's [__apt-fast__](https://github.com/ilikenwf/apt-fast).

> apt-fast is a shellscript wrapper for apt-get and aptitude that can drastically improve apt download times by downloading packages in parallel, with multiple connections per package.

I felt the drastic improvement! You can install it by following the set of commands below:


```bash
sudo add-apt-repository ppa:saiarcot895/myppa
sudo apt-get update
sudo apt-get -y install apt-fast
```

## How to use apt-fast


You'll use __apt-fast__ the same way you'd use __apt-get__ or __aptitude__.


```bash
sudo apt-fast update
sudo apt-fast install -y <package-name>
sudo apt-fast dist-upgrade
sudo apt-fast remove
```

## Further increase download speeds

You can add mirrors that are closest to your location for better results. Open up:

```bash
sudo vim etc/apt-fast.conf
```

Then add this line of code:

```bash
MIRRORS=( 'http://ftp.debian.org/debian, http://ftp2.de.debian.org/debian, http://ftp.de.debian.org/debian, ftp://ftp.uni-kl.de/debian' )
```

You can read more about __apt-fast__ on its Github [repository](https://github.com/ilikenwf/apt-fast).

_This was originally published on my [blog](https://dexterbrylle.info/fast-apt-get-downloads-apt-fast/)_
Weird programming languages
Tags: discuss, programming
Published: 2017-09-15 01:16:19

---
title: Weird programming languages 
published: true
description: This is weirder than me
tags: #discuss #programming
---

After how many years of programming experience I've had a couple of days ago it sort of hit me that out of the hundreds upon hundreds of languages out there, I mainly focus on about 4-5 for what I do. And me being a little bit of a weird person I thought to myself what could be the weirdest programming languages out there today? So that's what I did. I started googling and a little bit of binging and found some of the weirdest ones and uploaded them to github.

https://github.com/RapidTheNerd/WeirdProgrammingLanguages

Granted some of them are very old, but some of them newer than others. But nether the less they're very interesting to look into, such as CommonLisp I don't know about you but I've never seen more parentheses in my life than this language.

What are some of the weird, wacky and interesting languages you've found? Feel free to contribute to the repo above.
Build a tool and then extract a library
Tags: softwaredevelopment, tools, libraries
Published: 2017-09-15 01:07:52

---
title: Build a tool and then extract a library
published: true
description: 
tags: Software Development, Tools, Libraries
---

Recently, I wrote tool X that accepts a Boolean SAT formula (in conjunctive form) along with a model/interpretationâ€Š–â€Šan assignment of truth values to variables in the formulaâ€Š–â€Šand checks if the model satisfies the formula.

Then, I started planning for a tool Y that identifies a satisfying model (if one exists) for a given Boolean SAT formula. Clearly, tool Y could use the algorithm in tool X as a subroutine to check if a model satisfies the formula. For reasons such as efficiency (avoid data transfers between programs via the file system), simplicity of use (install one tool), and avoiding code duplication, it is better if tool X could be refactored into a tool t-X and a library l-X where t-X uses l-X. This would enable tool Y to use library l-X and be more efficient, simple, and avoid code duplication.

While all of the above makes sense from a software engineering perspectiveâ€Š–â€Šreuse, simplicity, reduced code duplication, etc., I am now wondering “should I refactor tool X into t-X and l-X before I implement tool Y?”

    Is one possible reuse good enough to refactor out a library from a tool?

I think the answer is **No**. My reasons are as follows:

1. One possible reuse is not the same as one reuse. For all I know, it may be a sub-optimal idea to use the algorithm in tool X as subroutine in tool Y. So, it is better to verify such use is indeed optimal and then refactor tool X and tool Y.

2. One reuse is not the same as multiple reuses. Once there is a (possible) second reuse, it makes more sense to refactor both tool X and tool Y. Until then, C-n-P will suffice as a simple and cost efficient option.

3. Such refactoring entails the creation of a test suite for library l-X. Since test suite creation takes time and effort (even if it is based off of the test suite for tool X), it is best to delay it until the refactoring is necessary.

4. Multiple uses can help design the interface of library l-X. The largest intersection of behaviors required by different uses can trivially help identify the behaviors to be captured by the library. Consequently, this can help design a general enough interface of library l-X that makes the behaviors accessible to many clients.

The above reasons are nothing more than reasons to avoid premature optimization.

Now, off to implementing tool Y :)

(The original post can be found [here](https://medium.com/about-things/build-a-tool-and-then-extract-a-library-913554310aaa))
Software Freedom Day party hat
Tags: software, freedom, gnu, funny
Published: 2017-09-14 21:37:58

---
title: Software Freedom Day party hat
published: true
description: do you want to enjoy the Software Freedom Day properly?
tags: software,freedom,gnu,funny
---

This Saturday (September 16th) is **Software Freedom Day**, and for this special day I created a [repo](https://github.com/terceranexus6/GorritoSoftwareFreedomDay) with a surprise, a printable pdf party hat. This is the image of the party hat:

![](https://pbs.twimg.com/media/DJtvPFZW4AIsffZ.png)

The repo also includes in **Spanish** a very brief introduction to what is Software Freedom Day, what is GNU and what is GNU/Linux. Enjoy yourselves!