teleren/devto huggingface dataset:
DEV is the gift that just keeps giving - todays 'search' was for hyperledger 
Tags: watercooler, blockchain, oracle, obp
Published: 2020-02-19 08:00:27

so i heard about hyperledger for the first time last week at OOWLON so lets see if theres any posts on DEV

https://dev.to/search?q=hyperledger

and quelle surprise THERE FRIGGING IS ! so whats point in me writing any posts ! 

however i would like to add this OBP tutorial link to the conversation

* https://coding-around-the-block.blogspot.com/2020/02/oracle-blockchain-platform-tutorial_2.html
i am only on @twitter for the ...
Tags: discuss, watercooler, smn, bmn
Published: 2020-02-19 07:37:43

i am only on @twitter for the ...

* jokes
* sarcasm
* confusion
* politics
* film reviews
* self promotion
* OTHER 

whats your excuse / reason ? for me its all of the above

todays fav post was "can i run AWS on my PC ?" 

is this a serious question about the AWS CLI ? judging from the responses such as "yes but you need extra RAM" I think a lot of people thought it WAS a JOKE !
Elixir’s with statement is fantastic
Tags: elixir, functional
Published: 2020-02-19 07:23:22

I gotta be honest. It was not exactly love at first sight when I first encountered Elixir’s `with` statement. But just like I learned to appreciate (and love) the whole non-defensive/let-it-crash approach, the same happened here as well.

The result: I was able to rewrite a bunch of complicated functions with very hard-to-read nested `case` and/or `cond` statements in a very clean, and, more importantly, maintainable and extensible way using `with`.

# Basic usage

The basic premise of `with` is that it lets you chain together pattern matches and arriving at the positive result, in a very concise statement. Error handling (if any — remember, this is still let-it-crash land) is done in an optional `else` clause, after we’re done with the positive codepath.

Let’s look at a basic example. Suppose you’re working with the [Elixir library for Stripe](https://github.com/code-corps/stripity_stripe) and you want to implement a function that creates a new [subscription](https://stripe.com/docs/api/subscriptions) for a [customer](https://stripe.com/docs/api/customers). Here’s what this may have looked if we hadn’t used the `with` statement:

{% gist https://gist.github.com/aloukissas/e9d62743064377f8d2850baf9ecd19e7 %}

What’s wrong with the code above? Here’s a hint:

![](https://miro.medium.com/max/7244/1*WP_eI3-8L-CAxGFq5PEz5Q.jpeg)

Let’s try to write the same function using the `with` statement:

{% gist https://gist.github.com/aloukissas/6aa45179dd63b313a6d9e71eabf176d8 %}

That’s a lot cleaner and easier to read, no?

# Alas, it’s not all rosy

But there’s a problem. In the second implementation, it’s really hard to infer which of the steps of the function calls failed the pattern matching, so that we can return a more useful error to the caller. It also makes it harder to debug.

> So, did we trade readability for usability?

Not quite.

# We can do better!

Fear not, reader! A really simple solution that we’ve been leveraging heavily in our codebase at [AgentRisk](https://agentrisk.com) is to leverage pattern matching. Here’s how:

**Each chained function call returns a tuple with an atom that helps us know exactly where things went wrong in the chain.**

If we rewrite the previous code example like this, this is what we get:

{% gist https://gist.github.com/aloukissas/dda59c35e497056fb854e7f374b81508 %}

In the example above, we are swallowing the error return values, but this was in favor of simplicity. The core idea here is that we tag each step with a unique tuple pattern, so that we can know exactly where the error occurred.

# A final note

Hopefully, this post clarified a few of the nuances of Elixir’s with statement. We have not found a better way to implement complex functions in our codebase, for readability, maintainability, and ease of debugging.

I want to thank [Carlos Brito Lage](https://twitter.com/carloslage) for introducing me to this pattern as well as editing an early version of this post.

---

*This post was originally posted on the [AgentRisk blog](https://blog.agentrisk.com/elixirs-with-statement-is-fantastic-1431bcbcde3).*
Nikema's 100 Days of Code - Day 3
Tags: 100daysofcode
Published: 2020-02-19 07:03:45

## [Day 3](https://github.com/prophen/100-days-of-code/blob/master/Day-3.md)

Tuesdays are park days for my kids and me. I tend not to code as much on this day of the week because I have to get outside in time for the kids to play before the sun goes down.

I wrote code today. My weekly Swift exercises are due at 11pm. I did them and submitted them. 

Also, I worked late last night on writing notes for a course I completed. They didn't make it into day two's logs, I'm counting them today. 

{% twitter 1229869815768051712 %}

****

Follow along with me on GitHub

{% github prophen/100-days-of-code no-readme %}

<p style='text-align:center'> <a href="https://www.buymeacoffee.com/nikema" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" width="150px"></a></center></p>
Habits Of Top Programmers
Tags: todayilearned, beginners, webdev, tutorial
Published: 2020-02-19 06:57:53

## Daily plan

### Have a daily routine. Follow it religiously.

Coding daily should be the first on that list.

### Hit the gym - gives you immense energy

Eat right - keeps you happy and active

### Code again!


## Weekly plan

Every programmer needs a weekly plan

Come up with a big project idea and break it down.
Create weekly tasks and prioritize them.

Then come what may - complete those tasks!

Reward yourself weekly when you complete them.

Also, remember - don't be too hard on yourself if you don't.

## Build awesome stuff

You need to be building awesome stuff regularly in this age.

You have to put yourself out there to get noticed.
Create a portfolio of awesome projects.

Write blogs.
Create mobile apps.
Create web apps.
Create chrome extensions.

Don't focus on monetizing yet. Put yourself out there first.

Need project ideas? Keep following me - I share a lot of them :)

---

I love jotting down my thoughts on my blog [Ninja Academy](http://ngninja.com/).
How To Learn Any New Programming Language Quickly?
Tags: beginners, career, productivity, webdev
Published: 2020-02-19 06:55:21

## Step 1

This sounds like a cliche - but it's true!

### Practice... Practice... Practice!

Don't just read the theory - implement the language!

Write programs. Start small at first if you want. 
But write code daily!


## Step 2

### Teach... Teach... Teach!

The next step is to teach.

Pair program with someone. Teach them what you know.
Learn from them in the process too.

You will expedite your learning by doing this.

Writing blogs is one awesome way to teach others.



## Step 3

### Mentorship!

This is very important too.

Get a mentor. It doesn't have to be paid always.

Have someone you can look up to.

Learn from them. Get their secrets and resources.
Make a list of your favourite ones.


If you want my secret resources and study guide to expedite your learning process.
Here's the link
Springboot vs. NodeJS
Tags: architecture, node, java
Published: 2020-02-18 19:01:41

Please note here i'm talking about monolithic application, since we all know when it comes to small and medium scale startup/company tend to get things starting with MVP. Company management trying to get this done without spending so much of money, also within limited time period. 

Therefor two or three developers start working on project. Normally one guy for backend, one for web frontend and one for mobile app depending on the requirement.

So people start using NodeJS and let's assume we have healthy project after initial release. But things gets dirty and hackey when code getting bigger and bigger. So this is the point that we need to think about decoupling things into small small services. 

I know we should design system initially to accommodate future changes. And we should use necessary design patterns to keep things clean and straight forward. But i think when we use dynamically typed language like javascript we have much freedom over language like java. But that freedom lead us to rabbit hole.

I think debate title should be change as strongly typed and dynamically type. But i will keep the title as it is because i would love to see suggestions and experience from you regarding those two frameworks.
Migrating user passwords from Django to Ruby
Tags: django, ruby, authentication
Published: 2020-02-19 06:40:34

One of our clients asked us to migrate his existing Django application to Ruby. A part of this process was a migration of an existing users database.
Of course we had to find a way to use existing crypto passwords from Django and not asking our users to reset them

Passwords in Django are stored as a string that consists of four parts splitted with a dollar sign.

```
<algorithm>$<iterations>$<salt>$<hash>
```

By default, Django uses the [PBKDF2](https://en.wikipedia.org/wiki/PBKDF2) algorithm with a SHA256 hash. I found a rather outdated [Ruby gem](https://github.com/emerose/pbkdf2-ruby) that implements a Password-Based Key-Derivation Function and gave it a try.

```ruby
def migrate_django_password_seamlessly(user, password)
  alg, iteration, salt, django_password = user.crypted_django_password.split('$')
  attempt = Base64.encode64(
    PBKDF2.new(password: password, salt: salt, iterations: 36000).bin_string
  ).strip
  
  # check if hash of user provided password equals to the password in a database
  if attempt == django_password
    user.update(password: password, password_confirmation: password)
  end
end
```

The method above is a part of user sign in service and called only if `crypted_django_password `column from `users` table is not null.
When does PHP call __destruct()?
Tags: php
Published: 2020-02-19 06:05:20

In PHP, `__construct()` is called while creating an object and `__destruct()` is called while the object is being removed from memory. Using this knowledge, we can create more fluent APIs as demonstrated by Freek Van der Herten in this [short video](https://freek.dev/1545-how-to-avoid-large-function-signatures-by-using-pending-objects).

Now let's see when PHP calls `__destruct()` exactly.

An object is removed from memory if you explicitly remove it:

```php
$object = new Object();

unset($object); // __destruct will be called immediately.

$object = null; // __destruct will be called immediately.
```

It's also called when the scope where the object live is about to be terminated, for example at the end of a controller method:

```php
function store(Request $request)
{
   $object = new Object();
  
   User::create(...);

   // __destruct will be called here.

   return view('welcome');
}
```

Even if we're within a long running process, queued job for example, __destruct will be called before the end of the handle method:

````php
function handle()
{
   $object = new Object();
  
   User::create(...);

   // __destruct will be called here.
}
```

It'll also be called when the script is being terminated:

```php
function handle()
{
   $object = new Object();

   User::create(...);

   // __destruct will be called here.
﻿
   exit(1);
}
```
I should have made this product - Git Command Explorer
Tags: git, webdev, codenewbie, opensource
Published: 2020-02-19 06:01:19

Hi,
 I'm back with another post, but this is not about me or my projects. It's different.
It's about a resource that is in buzz right now, and I'm happy that I found it on twitter.

### [Git Command Explorer](https://gitexplorer.com/)
**Find the right commands you need without digging through the web**
![Git Command Explorer](https://dev-to-uploads.s3.amazonaws.com/i/b20jcovd6wvprxfxpgwm.png)

It's too amazing, that I'm jealous that I should've made it before. Sometimes you just need to look up for problems you're having and list them out and share on the internet and maybe if you can create an easy unified solution to all the problems related to it.

I've bookmarked this and already using it for 2 days now, and I wouldn't be shocked if you do the same.


I also posted this post on my official website : [justaashir.com](https://www.justaashir.com)

Follow me on Twitter, I post more sh*t there : [@justaashir](twitter.com/justaashir)
Why Do Software Projects Fail?
Tags: podcast, management, webdev, showdev
Published: 2020-02-19 05:48:20

{% youtube ChOeVAwj-tE %}

Te ha pasado que con el pasar del tiempo por más que se intenta liberar un proyecto no mas no sucede, pues en este episodio vamos a ver que hay tras bambalinas, cuales son los motivos más comunes y sin más te invito a que me cuentes que opinas, que me regales un like al podcast y espero tus comentarios.

Escucha el podcast en tu plataforma favorita 👍

Spotify
https://open.spotify.com/show/6NpVP8C...
Breaker
https://www.breaker.audio/dosis-de-co...
Google Podcast
https://www.google.com/podcasts?feed=...
Overcast
https://overcast.fm/itunes1476940061/...
Pocket Casts
https://pca.st/0924
RadioPublic
https://radiopublic.com/dosis-de-cdig...

Y en anchor
🔥 https://anchor.fm/ismaeldevmw
Interview and Negotiation Coach AMA: comments and livestream Feb 19th 6:30pm PT
Tags: ama, career, beginners, seniors
Published: 2020-02-19 05:34:21

I empower candidates to ace technical and behavioral interviews, and negotiate offers. I have Youtube videos on negotiation, but am trying something new this week: real time Ask Me Anything & Office Hours.

I will answer comments here in this thread as long as people ask questions, and I'll answer comments in real time on Feb 19th at 6:30pm PT on the live stream here: https://www.youtube.com/watch?v=JEEUDIl_mnM

Bring questions about upcoming interviews and negotiations. I will give advice based on my experience in management and separately working with candidates, and will give examples of what you can say to impress your interviewers and talk confidently about employment terms. 

We can even get into asking for raises, rebuilding workplace reputations and handling other employee challenges,  for example. Even if you don't have a specific question, join the stream to say hi and/or give silent support.

---

MORE ABOUT ME:
☆ LinkedIn Lusen ☆ https://linkedin.com/in/lus
☆ Twitter Lusen ☆ https://twitter.com/staycalmcomic

SUBSCRIBE:
☆ Youtube ☆ https://youtube.com/channel/UCdvny6qs8e4VUJIG01puw2Q
☆ Newsletter ☆ https://dangoormendel.com/newsletter

MORE LINKS:
☆ Website ☆ https://dangoormendel.com
☆ Speaking Inquiries ☆ lusen@candidateplanet.com
☆ Client Inquiries ☆ hello@dangoormendel.com
☆ LinkedIn Adam ☆ https://linkedin.com/in/adamdangoor
☆ Twitter Adam ☆ https://twitter.com/AdamDangoor
Hello World
Tags: webdev, youtube, discuss, beginners
Published: 2020-02-19 05:20:16

---
title: Hello World
published: true
description: I’m a software engineer that is looking to give back to the community. I give a brief introduction in this video and I’d love to hear what kind of content the community here on DEV would like to see. 
tags: webdev, youtube, discuss, beginners
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/dze8zx96vel25brtzbkx.jpeg
---

Hi there!

I recently decided to try my hand at YouTube. I’ve been feeling like something has been missing lately, and I think for me that’s been community and a sense of helping others and giving back, so that’s what I want my channel to be, a way to give back. This video is just a short intro but I’d love to hear your suggestions on what kind of content you’d like to see. Please let me know in the comments.

Happy coding!

{% youtube 75Fb4VwZNZg %}
Terminal.app's Homebrew theme for Visual Studio Code
Tags: vscode
Published: 2020-02-19 05:12:43

---
title: Terminal.app's Homebrew theme for Visual Studio Code
published: true
description: 
tags: vscode
---

I published a Visual Studio Code theme like the Homebrew profile in Terminal.app.

**Screenshot**

![](https://dev-to-uploads.s3.amazonaws.com/i/vztmljmks8rmrsd7tjgc.png)

**Links**

- Visual Sturio Marketplace: [Homebrew](https://marketplace.visualstudio.com/items?itemName=zenizh.homebrew)
- GitHub: [zenizh/vscode-theme-homebrew](https://github.com/zenizh/vscode-theme-homebrew)
Integration Test Entropy
Tags: testing
Published: 2020-02-19 04:23:40

## What is Entropy?

According to the Oxford Dictionary, entropy can be defined as:

> gradual decline into disorder

When I think about integration or end-to-end tests I've encountered in my
career, entropy definitely comes to mind. I have written and encountered
integration tests that were written when the project was under active
development, but became more and more brittle and lost value as time went on. As a result, developers begin skipping them in CI builds and soon neglect them altogether. In this article, I want to talk about the two main reasons I believe this entropy occurs and what can be done to make sure integration tests thrive and provide value throughout the lifespan of a project.

_Note: Integration tests could have many different meanings to different
developers. For the purposes of this article I'm referring specifically to end to end tests that either test a UI (Selenium, Cypress, etc.) or test the data returned by a REST API._

## Data Reliance

The most common reason for brittle integration tests I've seen is a reliance on data. I do believe that end-to-end tests should manipulate data all the way to the data store in order to assure stakeholders that the application is working properly. However, these tests shouldn't assume that the data will always and forever be in the correct state for an accurate run of the test. Data change is inevitable and no one wants to waste hours trying to diagnose a failing test because of a change in data.

There are several ways to mitigate this risk. The easiest would be to write setup and tear down code for integration tests that ensure that data is in the right state before and after the run. Of course, if integration tests can be written in a way that they are not reliant on any specific data this is even better. A more complicated solution could be to utilize a Docker container that contains known data specifically for integration tests.

## Business Requirements

In my opinion, every integration test should be tied to a business requirement and this link should be immediately obvious to anyone who encounters the test. Unfortunately, this doesn't always happen. Tests that make an HTTP request to an API endpoint and assert against data or tests that look for a specific element to appear on a UI don't necessarily meet this need. When the test inevitably breaks for a developer unfamiliar with the original requirements, the test should make its value clear. Otherwise, it's all to easy to decide the test isn't valuable anymore and delete it.

My favorite method for linking tests to actual business requirements is to use Behavior Driven Development. You may be familiar with this concept as BDD, [Cucumber](https://cucumber.io/), or Gherkin, but the idea is the same. If integration tests can be written in a _behavior_ oriented fashion that business owners can easily understand and verify, the result is a huge win for the project.

_Originally posted on [redgreenrefactor.dev](https://redgreenrefactor.dev/integration-test-entropy/)_
Moving into tech from a different industry?
Published: 2020-02-19 04:13:19

Having a tuff time most of the jobs I have applied for seem to focus more on the work field that I have been in. I'm looking for entry level in order to learn and gain experience. My main problem is my current industry is completely unrelated to tech I am from the cosmetics industry. How can I relate this to tech new jobs in this field? I had a interview I froze I had no idea what to say that can make it relate to the job I was interviewing for.
What backgrounds is everyone is from?
Estudar a zona de conforto ou sair do convencional
Tags: javascript, csharp, productivity
Published: 2020-02-19 03:15:44

Em 2018, tive a experiência de desenvolver um sistema offline para uma amiga. Este sistema não era complexo, foi simplesmente um software para cadastrar professores, alunos, aulas e fazer avaliações físicas dos clientes da academia.

Devido o baixo nível de complexidade busquei sair da “zona de conforto” e produzir em uma linguagem diferente das que eu já havia desenvolvido, algo novo que eu não conhecia. Como o software deveria funcionar somente offline, muitas pessoas me recomendaram utilizar o Windows Forms da Microsoft, pois era bem mais simples para criação de sistema desktop.
Seguindo o conselho de muitos, acabei de frente com visual studio e programando em C#. Foi uma experiencia incrível poder entender o básico de uma tecnologia que não trabalhava diariamente e realmente foi bem rápido a produção, cerca de 1 mês e meio já tinha um sistema funcional.

Porem meu PC deu problema no meu HD e tive de formatar a minha máquina.Por sorte eu estava utilizando o controle de versão, mas estava com tempo, então encarei como um recomeço e decidi iniciar o mesmo projeto na “zona de conforto” utilizando uma tecnologia que na época era nova, chamada de Electron.

Sem duvidas meu ganho de produtividade aumentou, isso porque já tinha alguns trechos de códigos em Javascript e HTML, o que facilitou muito na hora de produzir. Mas mesmo trabalhando em um projeto que era “zona de conforto” acabei aprendendo e me divertindo com a produção.
Então compartilho com esse post, que de fato sair da zona de conforto é muito interessante para ampliarmos nossos horizontes e entendermos outras tecnologias, paradigmas, linguagens, frameworks…
Mas aperfeiçoar a sua zona de conforto também pode ser benéfico para você. Pois se você gosta da tecnologia não se preocupe que a atividade vai ser compensatória. Porém ambas devem de ser prazeroso e divertido, não podem ser chato e estressante
Introduction
Published: 2020-02-19 03:04:59

So!
I am completely new to all of this but I'd love to educate myself and learn the ins and outs of coding, specifically game development. 

As of right now in life, I have no idea what I want to do in the future. But that's okay! Because I know what direction I'd like to take. They say that the higher you shoot, your lowest wouldn't be that low... or at least that's what my mom says to encourage me to live life to the fullest and succeed with all my might. So, I'd like to do just that, and shoot to become what I've always wanted to do: creating my own IPs (Intellectual Property) and work my hardest to get my ideas out there to the world and make a difference with my voice!

I've always wanted to post blogs somewhere, somehow... I guess this will be where I will start my blogging journey! I know this is a development based blog post, but I'd love to share my journey of looking for jobs in the entertainment industry in general. Hopefully this keeps me learning how to code and improving as time goes on, while I also learn how to make amazing art for others!

Well I don't really have anything else to say besides... thanks for reading and I hope to see you all soon with my updates of my journey to become a developer of my own video game! :)