teleren/devto huggingface dataset:
Introducing our April 2018 sponsors
Tags: meta
Published: 2018-04-04 15:57:42

---
title: Introducing our April 2018 sponsors
published: true
description: Our wonderful sponsors are vital to the health of dev.to and it is great to work with companies contributing so much to the ecosystem.
tags: meta
cover_image: https://thepracticaldev.s3.amazonaws.com/i/j3042jigt4jco27po9aj.png
---

We are proud to announce our sustaining community sponsors for April. Our wonderful sponsors are vital to the health of [dev.to](https://dev.to) and it is great to work with companies contributing so much to the ecosystem.

## Digital Ocean

[Digital Ocean](https://try.digitalocean.com/performance/?utm_source=devto&utm_medium=display&utm_campaign=Devto_2018_Brand) is a much-loved cloud computing platform. I'm always impressed by how well-built _and well-documented_ the Digital Ocean core products are. It's easier said than done, and they've been able to stay ahead of the curve.

## Flatiron School

[Flatiron School](https://flatironschool.com/?utm_campaign=Sponsored_Content&utm_source=Devto&utm_medium=recognition_article) is a code school/bootcamp with in-person and online courses and programs. I personally know several incredible developers who have come out of the Flatiron School, and I've been impressed by how they approach software development education with care and pragmatism.

## Bugsnag

[Bugsnag](https://www.bugsnag.com/?utm_source=dev.to&utm_medium=cpc&utm_content=recognition_post&utm_campaign=dev.to-2018-april) provides error monitoring for web, mobile, and server apps. It is lightweight on the frontend and very sophisticated on the backend. It integrates with pretty much everything and has a free tier. All around great people on the team as well. 

***

These three organizations are helping us build the best community we can. I urge you to check out their offerings if you are in the market for their services.
What kind of peripherals do you use?
Tags: discuss
Published: 2018-04-04 15:32:42

---
title: What kind of peripherals do you use?
published: true
description: 
tags: discuss
cover_image: https://thepracticaldev.s3.amazonaws.com/i/5im7t5b5dofwdtepv0it.jpg
---

How much attention do you pay for your input devices, normally keyboard and a mouse?

I always loved mechanical keyboards and that clack sound they make and that keystrokes are now lighter, but I never really cared about mouse, however I noticed that my wrist starts hurting a bit and I started looking into more ergonomic ones.

Logitech MX Master 2S seemed like a good candidate but there are some complaints about its' build quality.

Logitech MX ERGO is praised but I'm not really sure about trackball.

Vertical mouses?

What do you use in your day-to-day job and if you're an fan of ergonomic mice that are built for productivity, what would you recommend?
Saved ssh configuration to quickly connect to servers
Tags: devtips, productivity
Published: 2018-04-04 14:00:00

---
title: Saved ssh configuration to quickly connect to servers
published: true
description: Save ssh connection for quick connections
tags: devtips, productivity
---

Originally posted on [catalinxyz.com](https://catalinxyz.com/saved-ssh-config)

When working with servers and you have to connect through `ssh` multiple times it can be cumbersome to write `ssh user@255.255.255.255` every time. We can save the connection details in the ssh config and simply run `ssh serverName`

### Edit or create the config file if it doesn't exist

```
~/.ssh/config
```

### Add a connection and save

```
Host {name}
    HostName {server_ip}
    User {username}
    IdentitiesOnly yes
    IdentityFile ~/.ssh/id_name
```

### To connect run

```
ssh {name}
```
Best Practices to Follow in SaaS Product Development
Tags: blog, saasproductdevelop
Published: 2018-04-07 11:11:02

---
title: Best Practices to Follow in SaaS Product Development
published: true
tags: Blog,SaaS Product Develop
canonical_url: 
---
![](https://www.itfirms.co/wp-content/uploads/2018/04/Best-Practices-to-Follow-In-SaaS-Product-Development.jpg)
If you are looking for developing SAAS product and not getting proper guide, how to build it in proper manner. So don’t worry, here are some of the expert-suggested practices to follow as you attempt to build your SaaS product. More: [https://www.itfirms.co/best-practices-to-follow-in-saas-product-development/](https://www.itfirms.co/best-practices-to-follow-in-saas-product-development/)
Video course: building a complete Rock Paper Scissors game with React
Tags: react
Published: 2018-04-04 09:26:53

---
title: Video course: building a complete Rock Paper Scissors game with React

published: true

description: The purpose of this tutorial is to see how the basic concepts of React work together to build a simple React JS application from scratch. At what could be more fun that making a simple game, like the one below
tags: react
---

The purpose of this 3 part video tutorial is to see how the concepts of React work together to build a simple React JS application from scratch. At what could be more fun that making a simple game, like the one from the image. 

![React Game](https://thepracticaldev.s3.amazonaws.com/i/okqj3agjop766mhvnahp.png)

[Build a game with React - Part 1: project setup, basic components, inline styles](http://www.js-craft.io/screencast/18-02-14-Build-a-game-with-React-xd-Part-1-xsc-project-setup-xc-basic-components-xc-inline-styles/) 

[Build a game with React - Part 2: using setState, event handling and random symbols in React](http://www.js-craft.io/screencast/18-02-25-Build-a-game-with-React-xd-Part-2-xsc-using-setState-xc-event-handling-and-random-symbols-in-React/)

[Build a game with React - Part 3: simple animations by using setInterval and clearInterval in React JS](http://www.js-craft.io/screencast/18-03-02-Build-a-game-with-React-xd-Part-3-xsc-simple-animations-by-using-setInterval-and-clearInterval-in-React-JS/)

Please note that this tutorial is not intended to be a complete beginners React Js tutorial. However it contains very basics React concepts. You are required to create a free account after watching one lesson.
Is there an article about the creation of dev.to?
Tags: discuss
Published: 2018-04-04 05:43:09

---
title: Is there an article about the creation of dev.to?
published: true
tags: discuss
---

I was scrolling through [Ben Halpern](https://dev.to/ben)'s "infinite" list of articles, comments, reactions, etc, in the hope of finding some article about the **creation of dev.to**.

Couldn't find one... If one is existing, can someone point me to the link?

Thanks!!
Daniel
Hi, I'm ItsASine 👋
Tags: intro, reallife
Published: 2018-04-04 02:39:46

---
title: Hi, I'm ItsASine 👋
published: true
description: Figured if I'm sticking around, might as well introduce myself!
tags: intro, real life
---

This isn't technically a First Post since I participated in [#shecoded](https://dev.to/tag/shecoded), but it'll do.

{% link https://dev.to/itsasine/nevertheless-itsasine-coded--5amh %}

**If you want to skip the life fluff, post your favorite song to code to in the comments!** I'm trying to get a solid Spotify playlist going. Right now, it's just [JoCo's Code Monkey](https://open.spotify.com/track/1rIFZk9tTUtHP3vULR5wXe?si=bhIfimL0SBupvbOICMUYdw) on repeat.

# Now

I'm a test engineer going to grad school for applied math (with kinda a data science focus). 

I work in the Protractor + Jasmine test stack and have for the past 3 years now. I pretty much have been doing a mix of: 
* Spinning up environments for new projects
* Building up E2E test suites with new feature coverage
* Migrating an in-house C# framework to Protractor
* Complaining about the sporadic manual tests I do

This is my cat: 
![Pretty Kitty](https://thepracticaldev.s3.amazonaws.com/uploads/user/profile_image/2754/ea35b041-1885-464a-adfa-0ac811aa39f5.jpg)

He's my Gravatar for my dev stuff email.

# Future

I'll likely end up trying to pivot to development or data engineering someday, but for now, I just like to keep learning what all is out there. My current role could easily lead to being an Expert Software Engineer knowing only Protractor + Jasmine, so all my exploring is off the books at home. Anything substantial would need a job change.

Dream job would be something that bridges math and software engineering ~~or be that person that makes infographics for PornHub's Insights blog~~.

But, yeah, I want **your favorite song to code to in the comments!**
Introduction to Java: modifiers cheatsheet
Tags: beginners, java
Published: 2018-04-04 01:59:39

---
title: Introduction to Java: modifiers cheatsheet
published: true
description: 
tags: beginners, java
---
Modifiers in Java still seem tricky to me, so I'll try to put it as short as possible.

Modifiers are words that alter the class / method / variable behavior. The two main types are access and non-access modifiers.

1. **Access modifiers** alter visibility:
    * _no modifier_ - the class is visible to its package
    * _private_ - only to the class
    * _public_ - to every class everywhere
    * _protected_ - to the package and its subclasses

2. **Non-access modifiers** alter other functionalities:
    * _static_ - makes the declaration class specific, not instance specific. It allows to use the method without an actual instance
    * _final_ - doesn't allow the reference to change
    * _abstract_ - for a method, declares that the method should be overriden in subclasses, for a class, that it cannot be instantiated, only subclassed
A new code editor for the web
Tags: javascript, webdev, showdev, css
Published: 2018-04-04 01:18:27

---
title: A new code editor for the web
published: true
description: The new Anymod code editor lets you build components in the cloud and deliver them anywhere
tags: javascript, webdev, showdev, css
cover_image: https://thepracticaldev.s3.amazonaws.com/i/a10hcinbeaw5w8qb5qiw.png
---

We were working with some cantankerous tooling on our last project and thought "There has to be a better way!™".

So we built a cloud-based editor with live-reloading, where anything you build __can be delivered to any website__.

We're proud to announce [our new cloud-based editor today](https://anymod.com/mod/edboo?v=42&h1=53&h2=72):

![Editor](https://thepracticaldev.s3.amazonaws.com/i/a10hcinbeaw5w8qb5qiw.png)

You can edit & fork code, manage content, and take your work anywhere. And when you're ready, you just paste a snippet of code onto __ANY__ website you want, and your component will be delivered there.

We've got lots of ideas in store for this, and ultimately our goal is to make life easier for web developers and their teams.  So feel free to check out the editor, build some cool stuff, and let us know what you think!

[Check out the editor](https://anymod.com/mod/edboo?v=42&h1=53&h2=72)

✌️&❤️
Tyler
Bad Permissions writeable by group — Laravel
Tags: laravel, permission, ftp
Published: 2018-04-13 07:06:01

---
title: Bad Permissions writeable by group — Laravel
published: true
tags: laravel,permission,ftp
canonical_url: 
---

![](https://cdn-images-1.medium.com/max/844/1*gUG4hDtn-Qvi5nMDcnJmMQ.jpeg)<figcaption>Internal Server Error</figcaption>

If you have ever come across this error while deploying applications especially Laravel applications to shared hosting, then you just got for yourself the right post.

So you just deployed your application to the server and instead of the contents being rendered, you were greeted with internal server error .

A (500) Internal Server Error can be caused by many instances, including but not limited to invalid permissions, invalid ownership, errors in php.ini or .htaccess file, invalid requests in the script and others.

Generally, this is not a problem with the server itself and can often be rectified by modifying something in your site’s configuration. The best approach is to check the Error logs in cPanel for the particular information.

So if the error log says Directory is writeable by group:

This is an indication that the folder had permissions for a folder set too high. To correct this, the permissions need to be changed from 777 to 755.

Directories and folders should be 755. Executable scripts within the cgi-bin folder must be 755. Images, media, and text files like HTML should be 644.

- Files — 644
- CGI Scripts — 755
- Directories — 755

You can modify permissions with the File Manager, located in the “Files” category of the cPanel, an FTP client, or using the **chmod** command in SSH/Bash.

### **Final Note**

This error is not in anyway specific to Laravel Applications, I only used that as my title because I encounter this while uploading an application built with Laravel.

I hope you found this post useful and if you have a different or other approach to resolving an issue like this, kindly share your thoughts and comments below.
Do you use Docker or Virtualenv for Python?  
Tags: discuss, python, docker, beginners
Published: 2018-04-03 22:59:30

---
title: Do you use Docker or Virtualenv for Python?  
published: true
tags: discuss, python, docker, beginner
cover_image: https://proxy.duckduckgo.com/iu/?u=http%3A%2F%2Fcrosbymichael.com%2Fstatic%2Fimages%2Fdocker-1920-1080.png&f=1
---

Recently I wrote a post on using Docker for [Jupyter and Python](https://dev.to/rosejcday/python-and-jupyter-notebooks-23h5) with the Intel Python2 distribition for data science. With this, I got some feedback to use virtualenv instead of Docker. 

I started using Docker for the desire to learn how to make portable environments that can be moved from one machine to another with ease. With this, Docker comes with the benefit of adding other services into an application through the use of multiple containers. I am currently learning to use `docker-compose` to create an application with multiple containers. This allows for adding services such as PostgreSQL, MongoDB, Jupyter notebooks, or Apache Hadoop. 

What do you typically use and why?   

### References 
Cover image sourced from [Docker Wallpapers](http://crosbymichael.com/docker-wallpapers.html)
What is the most fun coding problem you resolved?
Tags: discuss, career, coding
Published: 2018-04-03 22:03:01

---
title: What is the most fun coding problem you resolved?
published: true
description: I had a lot of fun coding throughout my career. There are a few problems, however, that I still remember fondly as particularly fun to resolve. 
tags: discuss, career, coding
cover_image: https://thepracticaldev.s3.amazonaws.com/i/qiw36dmbplfibt3d64bi.jpg
---

I had a lot of fun coding throughout my career. There are a few problems, however, that I still remember fondly as particularly fun to resolve. They weren't the hardest ones I worked on or the most important ones. However, at the time, they gave me a great satisfaction that I can still remember today.

Here are two examples:

## Ads Probability

I was working on an online advertisement system for a hosting company, back in 2000. I had a list of banners that needed to be displayed randomly anytime a web page was rendered. For each banner, I had a percentage associated with it. The percentage represented the probability of that particular banner to be shown on a website in the system. 

I had to write the code to show the ads with the correct frequency. The system was getting millions of requests per day (a huge number at the time), and it had to be highly performant. I had a blast working on that problem. The solution I implemented was simple and fast (at worst O(log n)). I used variations of it over the years for different problems.

## Fast Memory Allocation

The second one is from 2003 when I was trying to optimize a virtual machine designed to run on a mobile device. Mobile devices were slow at the time. Very slow. The virtual machine was not performing well on a particular device, and I spent some time profiling it. The code was written in C++, and I realized that what was slowing things down was the memory allocation system on the device (not shocking).

Any time an object was created with "new," the allocator took too long to do its job. I decided to create my own memory allocator, highly optimized for the particular application I was running, which happened to create many very small objects. The result was an immediate 95% performance boost across the board. 

## What about you?
There are many others, but I'll stop here. What about you? Are there problems that you remember as particularly fun to resolve? What were they?

---

### If you enjoyed this post, keep in touch!

- [Find all my posts on CoderHood. Don't forget to Subscribe to receive notifications of new posts by Email.](http://www.coderhood.com) 
- [Join my professional network on LinkedIn.](https://www.linkedin.com/in/lpasqualis/)
- [Follow me on Twitter.](https://twitter.com/lpasqualis)
- [Join my Facebook page.](https://www.facebook.com/coderhood/)
- And finally, follow me here on dev.to!
A new (to me) Enumerable method
Tags: ruby, rails, juniordev
Published: 2018-04-03 19:44:53

---
title: "A new (to me) Enumerable method"
published: true
description: 
tags: [ruby, rails, junior dev]
---

So I was helping one of our front-end devs on a view the other day and he needed a collection of objects to be in a very specific order. The problem was that it required a very ugly and somewhat confusing query:
```ruby
@in_progress = migration_request_group.current_migration_requests.sort_by { |x|
 x.in_progress_in_group? ? 0 : 1 }.sort_by { |x| x.pending? ? 0 : 1 }
```
It first sorts the `current_migration_requests` so that if the request currently being looped over is `in_progress_in_group?`, it gets moved to the first position in the array, otherwise it's moved to the second position. And _then_ it checks if that request is pending. If so, it get's moved into the first position. If you're just looking at the code for the first time, it's not easy to understand at all. 

I knew there had to be a better way. I just didn't know what that better way was... 

Fortunately, I'm on a team of seasoned Ruby developers who helped me out. It turns out there's this method called `partition` that's actually been around a while. 

```ruby
pending, rest = migration_request_group.current_migration_requests.partition(&:pending?)
in_progress, rest = rest.partition(&:in_progress_in_group?)
@in_progress = pending + in_progress + rest
```

Here's how it works:
There are two arrays: `pending` and `rest`. The first one, `pending`, will store any objects that the block finds true, while `rest` will store the rest of the objects. Then I do another partition block where I take that existing `rest` array and split it into two more arrays: `in_progress` and, again, `rest`.
Then I combine the arrays in the required order. It may take up three lines of code instead of one, but I believe it's much clearer.
Trees & Binary Search Trees — BaseCS Video Series
Tags: computerscience, basecs
Published: 2018-04-03 19:14:40

---
title: Trees & Binary Search Trees — BaseCS Video Series
published: true
description: This video describes the what and why of trees and binary search trees. We break down what makes each concept fascinating and important for a software development career.
tags: computerscience, basecs
series: BaseCS Video
---

### "As soon as the data structure lightbulb goes off in your head, it’s really hard to not see data structures every which way that you look!"

This video describes the what and the why of trees and binary search trees. We break down why these concepts are fascinating, and why they're important to understand for your software development career.

The topics are based on concepts introduced in these previous posts:

{% link https://dev.to/vaidehijoshi/how-to-not-be-stumped-by-trees %}

{% link https://dev.to/vaidehijoshi/leaf-it-up-to-binary-trees %}

I hope you enjoy! Feel free to continue the discussion in the comments.

[![SparkPost Logo](https://thepracticaldev.s3.amazonaws.com/i/v5svhunrn8s5jpjiumlk.png)](https://sparkpost.com/)

### _This video series is sponsored by [SparkPost](https://www.sparkpost.com/). There's never been a better way for developers to send email._
Who do you work with?
Tags: development, jobs, teams
Published: 2018-04-03 11:33:32

---
title: Who do you work with?
published: true
tags: development,jobs,teams
canonical_url: https://craignicol.wordpress.com/2018/04/03/who-do-you-work-with/
---

In every company, and in larger companies, every department and location, there are key players who make the company work. They might be the boss who sets a clear vision, they might be the admin who goes above and beyond, they might be social butterfly who knows everyone. Whoever they are, they are the ones that keep the team working. And when any of them leaves, the dynamic of the team changes. Not always for the worst, but [there is always a period of adjustment](https://craignicol.wordpress.com/2015/05/19/i-dont-trust-change/).

Sometimes however, several of them leave in quick succession, like canaries at the coalface. Or maybe they just stop doing what makes them effective, new directives from above, too busy on chargeable time, or something else. Suddenly the team starts jarring, and you don’t necessarily know why, because you haven’t seen what they’ve been doing behind the scenes. But if you feel that tide, you’ll know everyones getting their CVs ready, either to jump up or to jump out.

If you don’t know who your canaries are, keep a lookout, because apart from the leadership team, there’s likely a few you haven’t noticed. Who is really pulling the strings? Who goes above and beyond? Who seems to turn up in unexpected places? Who is the person people turn to when things go wrong or they need advice? Don’t go looking for the people who surround themselves in lights, who have a Heart of Gold and want you to know it. Look for those who are looking out for people who are invisible. Who is kind to the cats?

But equally, be wary of the teams where the canaries don’t get a chance to be found because something else gets in the way. The teams heavily populated by graduates, or men, beyond the industry norms. If toxicity is bred into the culture, the fatal warnings are much harder to spot. Toxic culture shields egos and protects the status quo, weeding out dissent even when that dissent is essential for the survival of the team.

Know who you are working with.

***

{% twitter 980917961836978176 %}
The Basics of Hummingbird Pages
Tags: web, marketing, content, webdev
Published: 2018-04-03 18:31:35

---
title: The Basics of Hummingbird Pages
published: true
description: Learn how to structure hummingbird pages for success.
tags: web, marketing, content, web development
---

A common meme amongst digital marketers is that content is king. Long-form, meaningful content drives attention, links and in turn priority within search engines. Web developers and marketing teams should keep in mind that while building product or services interior pages within their website, content is key, but structuring that content in a meaningful way is becoming ever more important. Enter the hummingbird page. 

Hummingbird pages allow developers to better structure long-form content on a given page by utilizing a table-of-content-type overview at the top of the page. This gives structure and meaning to product or services pages that utilize keyword-rich content focused on providing users with deep insights into any given subject. 

Let's breakdown an example. This page focuses on <a href="https://www.enolalabs.com/solutions/aws-consulting-and-services">AWS Consulting Services</a>. If you do a quick scroll to the bottom, you'll notice that the page is jam-packed with useful information related to Amazon Web Services. Without the table of contents, a user might feel overwhelmed with information and might bounce from the page quickly, creating the conditions for the page to become deprioritized within search engines. 

By adding a clickable table of contents that leads users to specific sections they might find most useful, you are providing quick access to just the right information at a moments notice. As long-form content continues to be a focus area of many businesses selling products or services, a key differentiator may not reside in the content, but rather how well it is structured for the end user. To that end, Hummingbird pages are a great solution.