teleren/devto huggingface dataset:
Even the Big Ones Mess Up
Tags: beginners, discuss, career, productivity
Published: 2018-12-27 19:47:51

This morning, my feed blew up due to my friends and family complaining about some new Instagram overhaul. Apparently, their feeds were scrolling horizontally instead of the usual vertically. It turns out that this was just one big *Oops* on the part of Instagram's engineering team, as tweeted by their Head of Engineering.

{% tweet 1078321786586951680 %}

When stuff like this happens, it's funny to see how quickly the reactions both *for* and *against* the change propagate across social media, but in another way, it makes me feel better about being a developer.

## If They Can Mess Up, so Can You

Stories like watching Instagram accidentally over-scale their testing of the new UI, or [Amazon's Alexa crashing on Christmas due to the influx of new devices](https://gizmodo.com/alexa-crapped-out-on-christmas-1831319216) makes me realize that no matter how big or powerful these companies are, they are still run by humans, and humans miscalculate and make mistakes.

So if Instagram or Amazon can make these mistakes, why do I give myself so much trouble for writing buggy code sometimes? No one can see all the use cases and outcomes of running their software, and mistakes do happen. 

You, me, Amazon or Instagram...we will never write *perfect* software or always get things right, because there is no right way or perfect software. Whatever works for you, your team, or your company at the time is good enough until you have to make modifications for new user/edge cases.

If we as developers kept programming until we thought our code was "perfect" then either it wouldn't *really* be perfect, or we'd never finish it! Design and plan ahead as best as possible, but don't beat yourself up for writing buggy code, because it's natural and just happens. If there wasn't any buggy code or systems to fix, a lot of engineers would be out of jobs 🙈

![I will not make mistakes](https://thepracticaldev.s3.amazonaws.com/i/yo82s9f0n60jar741g0z.jpg)

No matter how much we prepare, we will make mistakes, that's just a part of life. What matters is how we face those mistakes and issues, and the tenacity we bring to making software better. These ideas scale, whether we are just solo developers, or are the big companies like Instagram.

So what are your thoughts? How much fuss should we give companies this big when they make mistakes? What are your thoughts on writing code that walks the line between being good and being good *enough*? What are your thoughts on the balance between tech debt and time to release?
Do I wait until performance review time or bring it up now?
Tags: anonymous, career, discuss
Published: 2018-12-27 19:24:31

---
title: Do I wait until performance review time or bring it up now?
published: true
tags: anonymous, career, discuss
---

_This is an anonymous post sent in by a member who does not want their name disclosed. Please be thoughtful with your responses, as these are usually tough posts to write. Email sloan@dev.to if you'd like to leave an anonymous comment._

"I've been doing a really good job lately.  I've had feedback from my manager and my managers-manager that I've exceeded expectations and gone above and beyond over the last year.  While the compliments and shout outs at stand-ups are great to hear, our team culture is excellent, I'd like to approach my manager about a raise to go along with it.  I'm in a newly created role, where they didn't know what the role would be in a years time, and here we are.

I like the people I work with and believe that my manager is working in my best interests, but I'd like to ask for an increase to reflect my good work.  Do I wait until performance review time in three months and hope that I get what I'm hoping for, or bring it up now? How do I approach this conversation without sounding greedy, braggy and potentially asking for too much, leaving a bad impression when I'm on such a roll?"
Improving search in Vim and Neovim with FZF and Ripgrep
Tags: vim
Published: 2018-12-31 10:05:15

---
title: Improving search in Vim and Neovim with FZF and Ripgrep
published: true
tags: vim
canonical_url: https://matthewdaly.co.uk/blog/2018/12/27/improving-search-in-vim-and-neovim-with-fzf-and-ripgrep/
---

A while back I was asked to make some changes to a legacy project that was still using Subversion. This was troublesome because my usual method of searching in files is to use Tim Pope’s Fugitive Vim plugin as a frontend for `git grep`, and so it would be harder than usual to navigate the project. I therefore started looking around for alternative search systems, and one combination that kept on coming up was FZF and Ripgrep, so I decided to give them a try. FZF is a fuzzy file finder, written in Go, while Ripgrep is an extremely fast grep, written in Rust, that respects gitignore rules by default. Both have proven so useful they’re now a permanent part of my setup.

On Mac OS X, both are available via Homebrew, so they’re easy to install. On Ubuntu, Ripgrep is in the repositories, but FZF isn’t, so it was necessary to install it in my home directory. There’s a [Vim plugin for FZF and Ripgrep integration](https://github.com/junegunn/fzf.vim), which, since I use vim-plugged, I could install by adding the following to my `init.vim`, then running `PlugUpdate` from Neovim:

```
" Search
Plug '~/.fzf'
Plug 'junegunn/fzf.vim'
```

The plugin exposes a number of commands that are very useful, and I’ll go through the ones I use most often:

- `:Files` is for finding files by name. I used to use Ctrl-P for this, but FZF is so much better and quicker that I ditched Ctrl-P almost immediately (though you can map `:Files` to it if you want to use the same key).
- `:Rg` uses Ripgrep to search for content in files, so you can search for a specific string. This makes it an excellent replacement for the `Ggrep` command from Fugitive.
- `:Snippets` works with Ultisnips to provide a filterable list of available snippets you can insert, making it much more useful
- `:Tags` allows you to filter and search tags in the project as a whole
- `:BTags` does the same, but solely in the current buffer
- `:Lines` allows you to find lines in the project and navigate to them.
- `:BLines` does the same, but solely in the current buffer.

In addition to being useful in Neovim, FZF can also be helpful in Bash. You can use `Ctrl-T` to find file paths, and it enhances the standard `Ctrl-R` history search, making it faster and more easily navigable. The performance of both is also excellent - they work very fast, even on the very large legacy project I maintain, or on slower machines, and I never find myself waiting for them to finish. Both tools have quickly become an indispensible part of my workflow.
PHP Security: Introduction
Tags: php, security
Published: 2018-09-20 10:58:16

---
title: PHP Security: Introduction
published: true
description: It's time web applications built with PHP implement better security.
tags: php, security
---

Often, these days vulnerabilities are *still* being found in web applications. PHP has a pretty bad reputation regarding security, including one of the most popular frameworks WordPress. It's not to say making applications without vulnerabilities is easy- or that it's possible. But we really should try harder.

Us as PHP developers, need to make sure our data is safe from attackers. We need to **stop** this nonsense. And it's a big issue, big companies and businesses are continuing to be exploited and breached because of their security. I believe one of the big companies recently had a database breach, and they looked like they were stored with base64 and either sha1 or md5 hashing. I don't recall which company this was.

But remember, hashing, encryption, is only a small part of keeping your applications secure. You also have *SQL injection, cross-site scripting, session hijacking, remote file inclusion, cross-site request forgeries.*

And that's to name a few off the top of my head. There's **a lot** to cover in web application security.

You can start off with [PHP The Right Way](https://phptherightway.com), and [PHP Delusions](https://phpdelusions.net). They're great, especially for beginners(at least I think so).


# Let's get real.

That stuff up there? Those links? Their information? It's absolutely great! It really is. It's basic, more of a baseline. *A starting point, if you will.*


## [Paragonie](https://paragonie.com)

They make open-source software, *for PHP security!*

Their blog is **amazing!** However, they're not well known. They really should be though. So why don't *you* help with that? Once you're convinced they're amazing, start recommending their posts, and them in general.

They cover a lot of things. If you wanna get serious about web application security, I highly recommend you bookmark that page, follow them on Twitter, and keep an eye out for any future blog posts.

Don't forget to go through their archives. There is a lot of stuff there.

*Psst! They're on here too.*

{% user paragoniescott %}

----

Come on, let's make our web more secure! If you wanna post any links in the comments regarding security, please do so!


### Extra Links

{% link https://dev.to/dotnetcoreblog/three-steps-for-increasing-the-security-of-your-web-apps-3clg %}

{% link https://dev.to/dotnetcoreblog/owasp---who-jck %}

----

### Next Article

{% link https://dev.to/devmazee2057282/php-security-passwords-1moi %}
Should have knowledge of php beside node.js? 
Tags: node, php, webdev, backend
Published: 2018-12-27 17:08:21

---
title: Should have knowledge of php beside node.js? 
published: true
description: Beside learning Node.js and considering the use of #PHP  still by many companies specially in Indian market should we have the knowledge of both? Specially for a beginner? 
tags: #nodejs #php #webdev #backend #webdevelopment 
---
Creating a Splash Screen for Your React Apps
Tags: react, javascript, programming
Published: 2018-12-27 16:47:06

---
title: Creating a Splash Screen for Your React Apps
published: true
description: Learn how to develop a beautiful splash screen for your React apps so your users don't get a frozen screen.
tags: #reactjs #javascript #react #programming
canonical_url: https://auth0.com/blog/creating-a-splash-screen-for-your-react-apps/
---

In this article, you will learn how to develop a beautiful splash screen for your React apps. This screen will help users understand that your app is loading important data and that it is not stuck.

[Read on ⚛️💦](https://auth0.com/blog/creating-a-splash-screen-for-your-react-apps/?utm_source=dev&utm_medium=sc&utm_campaign=crt_spscreen_react)

![Creating a Splash Screen for Your React Apps](https://thepracticaldev.s3.amazonaws.com/i/o9624fwx5fjh82oa1wae.png)
The 35th Chaos Communication Congress (35C3) started today
Tags: learning, journey, conference
Published: 2018-12-27 16:12:21

---
title: The 35th Chaos Communication Congress (35C3) started today
published: true
tags: learning, journey, conference
---

It is an annual four-day conference on technology, society and utopia organised by the Chaos Computer Club (CCC) and volunteers.

[Homepage](https://events.ccc.de/congress/2018/wiki/index.php/Main_Page)
[Schedule](https://fahrplan.events.ccc.de/congress/2018/Fahrplan/schedule/1.html)
[Live Streams of all talks](http://streaming.media.ccc.de/35c3)
[Re-Live English Playlist](https://www.youtube.com/watch?v=zb-ZgtQdHKI&list=PL_IxoDz1Nq2YUlQqBSg0F2PB5jqXMoNmu)

All german talks will get an english translation.

Have fun!
My Machine Learning Journey (Pt. 1)
Tags: machinelearning, newbie, beginners
Published: 2018-12-27 14:46:49

---
title: My Machine Learning Journey (Pt. 1)
published: true
description: A series of posts of my journey studying machine learning.
tags: machine learning, newbie, beginners
series: My Machine Learning Journey
---

#### Hi! How do I even begin?

That’s like the first thing we always seem to ask and it ain’t easy to answer that question. Every new adventure always comes unplanned. You never really know where to begin.

Maybe, a little introduction.
Hey! My Name is Ben Prax, and I’m homeschooled.

I’m __no machine learning expert__ *(yet)*.
I’m __not a graduate__. 
I’m __not good at math__ 
*(probably something almost everyone can relate too, am I right?).*
I __barely understand the math__ under the hood of the machine learning models.
I’m __not always focused__. I let little things distract me, which is a __TERRIBLE habit__ by the way. 

*Which is also why I decided to do this post to really push myself to study.*

*More on that later.*

I don’t know many experts in my area who I can find tutor or training specific to machine learning.

I do however have the following: 
1. A laptop 
2. The internet 
3. A brain
4. Google
5. Willingness to learn
6. Determination
7. Curiosity

I’m also aware of some communities who are into machine learning.
Communities are there to help you, but majority of the time, __you’re on your own googling questions__.

Curiosity and determination and the willingness to learn are probably the most crucial in the 7 items above. Without these you probably won't even bother reading this post, right? So let your curiosity flow and feed it with knowledge. Be determined and be willing to learn fully aware that you'll make mistakes along the way. Accept it and move on with the new learning.

The purpose of this post (article, diary, blog, whatever) is to encourage all those who want to start their machine learning journey. 

Hopefully, you’ll learn a thing or two of the struggles I will be facing, trying to understand this mysterious black box called Machine Learning (ML). 🤔?

Maybe we can also celebrate together when we’ve finally uncovered these mysteries and riddles and puzzle our knowledge together. 🎉🎉

I hope you enjoy as you follow along my journey in studying machine learning. 

If you can suggest something that you think might help me and other readers, don’t hesitate to comment. 

Thanks for reading. Let’s begin! 😄
Ignore `v` on `.node-version` with ndenv
Tags: ndenv, nodenv
Published: 2018-12-27 13:34:46

---
title: Ignore `v` on `.node-version` with ndenv
published: true
description: 
tags: ndenv, nodenv
---

# 前提

複数言語のバージョン管理ツールとして[anyenv](https://github.com/riywo/anyenv)を使っています。そのためanyenvが対応している[ndenv](https://github.com/riywo/ndenv)をnodeのバージョン管理ツールとして使っています。

# 起こったこと

指定されたバージョンをインストールしているのに、インストールされていないと言われてしまいました。

```javascript
    🌸 npm run storybook (*任意のnpmコマンド)
    ndenv: version `10.14.0' is not installed
    
    🌸 ndenv install -l 
    Available versions:
      v0.1.14
      v0.1.15
      v0.1.16
    ~省略~
      v10.14.0
    ~省略~
    
    🌸 ndenv install v10.14.0
    🌸 ndenv global v10.14.0
    🌸 npm run storybook
    ndenv: version `10.14.0' is not installed
```

# 結論

レポジトリに`.node-version`を追加した人が[nodenv](https://github.com/nodenv/nodenv)を使っていて、その記述がndenvと違っていました。

## 具体的に
プロジェクトでつかうNodeのバージョンを指定する `.node-version` には、`10.14.0` とあるのに、 `v10.14.0`をインストールしていました。


```javascript
    🌸 cat .node-version
    10.14.0
```

- ndenvとnodenvでは、 `.node-version` の書き方が異なります。
- ndenvは `v10.14.0`
- nodenvは `10.14.0`
- .node-versionに指定されているものと全く同じじゃないと `not installed`と出てしまいます

# 解決方法

- 実はndenvでは、 `v` 表記なしのバージョンもインストールできる...ので数字のみでバージョンを指定&インストールして対応しました。(同じ中身なのに名前指定を変えてインストールし直すのは違和感があるけど...)

```javascript
    🌸 ndenv install 10.14.0
    🌸 ndenv global 10.14.0
    🌸 ndenv version 
    10.14.0
```
Poll: Do You Know What "Idempotent" Means?
Tags: webdev, security
Published: 2018-12-27 13:23:51

---
title: Poll: Do You Know What "Idempotent" Means?
published: true
description: Let's talk about idempotence in web applications and 35c3.
cover_image: https://c1.staticflickr.com/5/4633/38733070914_8a906e45a9_c_d.jpg
tags: webdev, security
---
In a very good [talk about TLS 1.3](https://fahrplan.events.ccc.de/congress/2018/Fahrplan/events/9607.html) at [35c3](https://events.ccc.de/congress/2018/wiki/index.php/Main_Page) Hanno Böck wondered if web developers know what "idempotent" means. Now before you fall into a rage, Hanno was not mean, but rather funny, so let's take his talk as an opportunity to talk about idempotence in web applications. I'm really curious, so let's (mis-) use dev.to's like system as a poll:

**Do you know what "idempotent" means or** - after checking out [wikipedia](https://en.wikipedia.org/wiki/Idempotence) - **used the concept in your projects?**

Sometimes idempotent requests to the server are required and obvious, but other times it might be tricky ...or not required at all:

  * **dev.to**'s like buttons don't seem to be idempotent at first, because clicking once activates the like, clicking twice deactivates the like. You might think that the request is just a toggle. But it's not. Each request contains an action ("create" or "destroy"). So the 1st click produces: ```{"result": "create", "category": "like"}```. And this request **is idempotent**, because if something goes wrong on the network layer and the server receives this request twice it will still do the right thing, it will activate the like on the 1st request and do nothing on the 2nd request.
  * **Medium**'s clapping system is **not idempotent**. A request looks like this: ```{"userId":"my123id456","clapIncrement":1}```. And you can also see that it's not idempotent, because clapping once turns the counter from $old-value to $old-value + 1, while clapping twice turns it to $old-value + 2. But in this case it's not a bug, you are explicitly allowed to clap multiple times.

**Please vote**:

  * **heart/like = yes**, I already knew what "idempotent" means or used the concept in past projects.
  * **unicorn = no**, this is new to me or I've seen no need to implement this concept in my projects.

I for myself must admit, that I've learned the term only 2 or 3 years ago. However I knew its concept and have used it for more than 10 years in past projects. I guess the poll is pretty anonymous (maybe with the exception of the dev.to admins), so please vote with honesty. 

By the way: 35c3 is one of the largest hacker events in the world and the talks are streamed [live](https://media.ccc.de). You will also find recordings of the talks later behind this link.

// cover photo  by Yves Sorge / CC BY
SirixDB - a temporal, versioned storage sytem -- http://sirix.io
Tags: versioning, diffing, xml
Published: 2018-12-27 11:56:55

---
title: SirixDB - a temporal, versioned storage sytem -- http://sirix.io
published: true
description: A temporal storage system implementing a novel versioning algorithm called sliding snapshot, diffing algorithms as well as temporal XPath axis to navigate not only within one revision, but also in time.
tags: versioning, diffing, xml
---
The package manager for React components
Tags: javascript, node, react, webcomponents
Published: 2018-12-27 11:33:27

---
title: The package manager for React components
published: true
description: Announcing new package manager in alpha release
tags: #javascript, #node, #react, #webcomponents,
---

**Update: Webpack was deprecated in favor of Stencil compiler (v. 0.5.0)**

We released an alpha version of the zero-configuration package manager for React components.

It helps developers to publish and to reuse any component directly from an existing app, no metadata or configuration files required. Basically, Domy will reuse the configuration data of your main app to transpile the component (ex. webpack.config.js).

{% github teamdomy/domy %}

The current release supports only React components, no Angular or Web components for the moment. It's coming after alpha test stage.

In order to start your journey into the magical world of the Domy's package manager, install it first:

**_npm install -g domy-cli_**

... and create your personal account by executing:

**_domy signup_**

_it will ask for your username, password, and email._

Then, navigate up to the root directory of your best React app and publish the desired component to the registry. Domy will detect the configuration of your main app and will apply it to the process of packing the component:

**_domy publish `<`name`>` `<`file`>`_**

_In the above example, we use angle brackets as an example of parameters that are expected. In our case, it is the name of a component and the path to the file where it is stored. The path is relative to the root of the app._

Finally, navigate to the root directory of another project with initiated npm package.json and execute the command install:

**_domy install `<`name`>`_**

_It will create new components directory in the root of your project and will drop component right there. Installed component can be required as a simple local file/module._

What else? I supposed that's it for now. Come as you are, try our awesome library aka package manager and don't forget to give us a star on Github. Thanks
How To Make An iOS Game App From Scratch  
Tags: iosapp, gamedev
Published: 2018-12-27 09:56:21

---
title: How To Make An iOS Game App From Scratch  
published: True
description: 
tags: iOS app, game development
---

<img src="https://thepracticaldev.s3.amazonaws.com/i/xmp1tzqt2r4p3lfo9rwi.jpg" alt="iOS Game App From Scratch "></a>

If you are attempting to develop the iOS game independently, you will have to be all these people at once. If you want your game to be truly magnificent and well-accepted, then you need to come up with an out-of-the-box idea. When you blend an original idea with a beautiful vision, you will see the magic.

You must have all the required knowledge about XCode, Swift, Objective-C, UIKit, Git, Unit Testing, Push Notifications, and In-App Purchases. A lot of developers make use of Cocos2D for developing iPhone games. Swift is a lower-level language which is both light and flexible. There are a lot of different kinds of challenges involved in the journey of iOS app development. To know more, <a href="https://insights.nimblechapps.com/app-development/ios-app-development/ios-game-app-from-scratch">read the article here</a>
Proxy and play with other people's site
Tags: ngrok, nginx, openresy
Published: 2018-12-27 09:00:41

---
title: Proxy and play with other people's site
published: true
description: 
tags: ngrok,nginx,openresy
---

 - [ngrok-openresty](https://github.com/zabio3/ngrok-openresty)

ngrok-openresty is a tool that makes it easy to set proxy settings and publish them on the Internet.

There are cases where you want to make simple tuning and publish it on the Internet and check the behavior.

For example, checking with [PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights/).

![demo](https://thepracticaldev.s3.amazonaws.com/i/umv0znqiteg6ol4igc3h.gif)
Awesome Golang Security 🕶🔐
Tags: showdev, go, security, githunt
Published: 2018-12-27 08:37:09

---
title: Awesome Golang Security 🕶🔐
published: true
description: An awesome list of security-related resources for Golang
tags: #showdev, #go, #security, #githunt
cover_image: https://thepracticaldev.s3.amazonaws.com/i/66jkybn5l5acqkj8xwax.png
---

Golang is getting a lot of traction lately. 

Leveraging awesome security tools to code securely with Go is becoming increasingly important.

For this reason, I've compiled a curated list of **awesome-golang-security** resources here:

{% github https://github.com/guardrailsio/awesome-golang-security %}

Did I miss anything? Let me know in the comments.

And, please leave a like (or ⭐ the repo) if you find it useful.