teleren/devto huggingface dataset:
The DEV (Design) Team is Growing
Tags: meta, design, ux
Published: 2019-12-09 22:34:42

The most polarizing thing about DEV is its design. As the person most responsible for our design as it stands today, I'm pretty much in agreement with all the different perspectives. We have made some good choices in creating a fairly usable interface with character, but by and large we have been a pretty amateur effort; Forever holding out for help.

We have had visual design help through the open source community as well as with @arakodesigner and her project-mates Rachel and David, who stayed on for a stint with us after we volunteered as their guinea pigs (through a UX course at General Assembly two years ago). However, by and large, we have not been able to muster up the resources for dedicated design leadership within our organization, until now.

Today marks the first full day for @lisasy as part of the DEV team. She has worked with us for the past month or so to help us map out our future plans in this arena, which will likely include at least one additional product design hire. Additionally, and in a fun coincidence, @peter and I worked with Lisa many years ago — before she went on to work with thoughtbot, Facebook and Dropbox.

{% link https://dev.to/lisasy/dev-product-design-6pf %}

Nobody embodies the term "generalist" more than myself. On any given day you'll find me collaborating on our low-level site reliability concerns, working with our frontend team, our marketing, support, or anything in-between. I am, however, a total amateur at most of these tasks. I also find myself lacking the time to provide deep guidance on any of it. So, just as our community can breath a huge sigh or relief that we now lean on @molly_struve to lead up our site reliability, our users will soon see the benefits of experienced leadership in our product/design.

Lisa has expressed a deep appreciation for collaboration with users in order to make the right design choices. As an open source and community-driven company, we'll be giving her the reins to do just that.

Just as we hope that our engineering choices will provide the basis for an ecosystem bigger than DEV, we look forward to the propagation of our design choices. We are not an organization that can truly be described as "engineering-driven", or "marketing-driven", or "design-driven", etc. We strive to give appropriate weight and credit to each discipline required to serve our community. Today, we add some much-needed balance to the structure of our product team.

We hope you all give Lisa a warm welcome!

Happy coding (and designing) ❤️
MQTT Use Cases
Tags: iot, aws, mqtt, backend
Published: 2019-12-09 22:07:35

Each of these example projects use an mBed microcontroller and SIM5230 3G modem.


#### 1. Remote Device, Single Sensor
This project requires a remote device send data from a single sensor over GPRS/3G. Data should be uploaded each minute to a remote server that does light processing on the data and displays it to the user.

#### 2. Remote Device, Multiple Sensors, Bi-Directional Communications
This project is similar to Project A except it requires bi-directional communication. The settings on the device are periodically updated by administrators. Remote control of a relay is also required. 

MQTT plays nicely in to this scenario because of its publish/subscribe architecture. Remote devices can initiate a persistent connection with a long keep-alive delay and periodically monitor a topic for messages from the server. 

This method uses a smaller amount of bandwidth compared to traditional polling mechanisms as the keep-alive messages are a couple of bytes, and the device is not constantly checking for updates where none exist.

Having a persistent connection means that, unlike HTTPS, the TLS handshake does not happen each time a request is made as the connection is not being rebuilt each time.


#### 3. Remote Device, Single Sensor, HD Images
Unlike the previous projects this project triggers a camera when a sensor’s threshold exceeds a given value. The image is then sent back to the remote server. This project is not suited to a pure MQTT implementation due to the requirement of HD images.
MQTT Security
Tags: iot, aws, security, backend
Published: 2019-12-09 22:07:12

As IoT continues to permeate the corporate technological zeitgeist good security is, and should be, paramount at application level. Even data breaches in projects that deal with fairly innocuous data can affect customers trust in your ability which can arguably have a greater affect on the bottom line.

As with HTTP there are a number of security mechanisms that can be used to allow for authentication and authorisation.

**Note**: The difference between authentication and authorisation. A swipe card magnetic strip can authorise access to a building but without a name and picture on the card security staff would not be able to authenticate the user. For a technical example: HTTP API keys can authorise access to an API but not authenticate the requesting user.

You may be aware of the various security options geared towards IoT for implementing authentication and authorisation when using HTTP such as: Basic Authentication, API keys, and OAuth. 

#### Client ID and Password
MQTT, like HTTP, requires being aware of the client as well as the server when considering security. For instance, with HTTP, TLS can be expensive in both bandwidth and compute power when working with smaller devices due to the handshaking required.

Servers (brokers) can require a username and password combination, similar to HTTP basic authorisation, before being able to connect. The self same username can then be used to restrict access to topics. 

The username/password combination alone is **insecure** as it is transmitted in plaintext and **must** be used in conjunction with TLS.

#### Transport Layer Security (TLS)
TLS and Secure Sockets Layer (SSL) provide an encrypted communication channel between the server and client. Each connection is started with a handshake in which, typically, the server’s x.509 certificate is exchanged and validated to verify the identity.

Whilst TLS may sound like a done deal there is a drawback in terms of CPU usage and communication overhead in the handshake; however, MQTT does offer methods of reducing this such as persistent sessions which reduces the TLS handshake overhead to negligible levels.

If the device memory is too constrained with insufficient resources to perform the necessary encryption for TLS it is recommended to encrypt just the payload if it includes sensitive data, and, at the very least, hash or encrypt the password in the CONNECT message. 

#### X.509 Certificates
As an added layer of security a client X.509 certificate can be deployed to devices to allow for authentication during the initial TLS handshake. Typically public/private certificates are deployed on the server to validate the HTTPS connection
MQTT Background
Tags: iot, aws, architecture, backend
Published: 2019-12-09 22:06:25

This series is a short amalgamation of research that outlines the advantages of using MQTT as the communication protocol for low-bandwidth, low-power, IoT projects.

### Background

MQTT (Message Queueing Telemetry Transport) is a binary based, asynchronous, protocol designed for low bandwidth M2M communication. Widely implemented and promoted by leading IoT platforms, such as AWS IoT and IBM Cloud, it aims to provide a light-weight means of sending data, particularly in areas with an unreliable internet connection, due to its compact packet size.

### Architectural Features

#### Servers (Brokers)
Servers (originally brokers) are available as FOSS on either Windows or Linux; or, a cloud based service can be used such as Azure or IBM Cloud. They act as a proxy delivering messages to connected clients.

#### Topics
Each client connected to the server can subscribe or publish to a topic. A topic is a string that the server uses to filter messages for each client. Topics are hierarchical, with each level split by a forward slash, e.g:

	`device/measurements/temperature/`

A key point to note is topics do not require initialisation before a client publishes or subscribes to it.

Topics support wildcard subscription using either + or # for single-level and multi-level respectively.

Client’s access to publish to a topic can be restricted by including the client ID within the topic descriptor, e.g given an ID of `1ef291b4-a739-48e8-a69b-54818b955e1d`:

	`1ef291b4-a739-48e8-a69b-54818b955e1d/measurements/temperature`

#### Quality of Service (QoS)
MQTT offers a varying level of message delivery assurance in its QoS. The QoS level is set on a per message basis and determines how the client and server communicate to deliver the message.

- 0 (At most once) — Message loss is acceptable at this level
- 1 (At least once) — Messages will arrive but duplication may occur
- 2 (Exactly once) — Messages will arrive once and once only


#### Last Will and Testament (LWT)
On the death of a connection the server can send a predetermined message to a given topic as defined by the client. The server maintains a keep alive timer for each client and can detect when a PINGREQ keep alive has not been received within the defined interval. Once this timer expires the LWT is immediately published.

This feature can be useful to detect when IoT devices go offline and can feed in to a monitoring API to automatically send notifications.
Parallax intro, Binary navbar, Ecomm banner | Module Monday 66
Tags: showdev, githunt, webdev, javascript
Published: 2019-12-09 21:57:43

---
title: Parallax intro, Binary navbar, Ecomm banner | Module Monday 66
published: true
description: Module Monday 66
tags: showdev, githunt, webdev, javascript
cover_image: https://res.cloudinary.com/component/image/upload/b_rgb:ffffff,c_lpad,h_350,w_800/v1575858695/parallax_rd3wvn.gif
canonical_url: https://guide.anymod.com/module-monday/66.html
---

## Open source modules

Mods can be used on any website, web app, or anywhere else. There are hundreds more like these built & shared on [AnyMod](https://anymod.com).

Click a mod to see it along with its source code.

## Parallax intro
Easy-to-add parallax section you can customize.
<a class="btn btn-sm" href="https://anymod.com/mod/parallax-hero-section-ordbko?preview=true&lorem=true">View mod</a>
<a href="https://anymod.com/mod/parallax-hero-section-ordbko?preview=true&lorem=true">
  <img src="https://res.cloudinary.com/component/image/upload/v1575858695/parallax_rd3wvn.gif"/>
</a>

## Binary navbar
Responsive navigation based on the Binary theme by Templated.
<a class="btn btn-sm" href="https://anymod.com/mod/binary-navbar-barldl?preview=true&w=375">View mod</a>

<a href="https://anymod.com/mod/binary-navbar-barldl?preview=true&w=375">
  <img src="https://res.cloudinary.com/component/image/upload/v1575858687/sidenav_yiakgm.gif"/>
</a>

## Ecommerce banner
Banner with links for showcasing your products.
<a class="btn btn-sm" href="https://anymod.com/mod/ecommerce-banner-bamrln?preview=true">View mod</a>
<a href="https://anymod.com/mod/ecommerce-banner-bamrln?preview=true">
  <img src="https://res.cloudinary.com/component/image/upload/v1575858687/ecommerce_gguul1.png"/>
</a>

## Themed cards
Pre-styled cards that work at any width.
<a class="btn btn-sm" href="https://anymod.com/mod/cards-section-on-light-background-mladrl?preview=true">View mod</a>
<a href="https://anymod.com/mod/cards-section-on-light-background-mladrl?preview=true">
  <img src="https://res.cloudinary.com/component/image/upload/v1575858687/cards_j4ymqo.gif"/>
</a>

## Social footer
Reusable footer for any page.
<a class="btn btn-sm" href="https://anymod.com/mod/footer-with-social-network-links-kdnrbn?preview=true">View mod</a>
<a href="https://anymod.com/mod/footer-with-social-network-links-kdnrbn?preview=true">
  <img src="https://res.cloudinary.com/component/image/upload/v1575858686/footer_lqhec9.png"/>
</a>


<hr>

I post new mods from the community [here](https://dev.to/tyrw) every (Module) Monday -- I hope you find them useful!

Happy coding ✌️
Azure File Storage Overview
Tags: azure, azurefilestorage, blob
Published: 2019-12-09 21:48:11

In this [tutorial](https://github.com/patricksameerajayalath/AzureTutorials/blob/master/Azure%20File%20Storage%20Overview.pdf) I’m going to show how to:

•	Create a Resource Group
•	Create a Storage Account
•	Create a Container inside Blob Storage
•	Upload Blobs to the Container
•	Generate SAS from Azure Portal
•	Use of Windows Azure Storage Explorer
•	Generate SAS from Widows Azure Storage Explorer


![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/xyctteg2cpio27pko8lx.jpg)


You can find the PDF version of this tutorial [here](https://github.com/patricksameerajayalath/AzureTutorials/blob/master/Azure%20File%20Storage%20Overview.pdf).

You can find all my Azure/.Net tutorials [here](https://dev.to/patricksameerajayalath) and [here](http://sameerajayalath.blogspot.com/).

Enjoy !!
Bees? Viagra? Whaa?
Tags: wordpress, php, webdev, security
Published: 2019-12-09 21:26:35

Peanut butter and jam, WordPress and hacks, some things just go together.

The Google entry was legit. The domain was correct, SEO matched, nothing suggested that it had been manipulated from that end. Problem was when you clicked the result expecting to see a friendly neighbourhood beekeeping website you were instead sent to a website that sold viagra.

So the investigation began.

First things first: check to see if the WordPress installation is up to date. As is the case with most WordPress installations… Was it?

Nope.

One of the things about WordPress being so popular is that hacks are actively sought after. Mix this with the platform being accessible to a wide range of technical ability levels, and plugins often causing issues when updating, you can understand why so many websites are left vulnerable.

In this case it was clear once looking at the directory listing the attacker had used an old vulnerability in the xmlrpc to upload/modify arbitrary files to the server.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/rutdpnwjbta5tklinrtf.png)

The way this hack worked was by adding additional rules to the .htaccess, in the WordPress directory, capturing any traffic that came from a search engine. This traffic was filtered and redirected to a custom php file– rather than the typical index.php– the attacker had uploaded that then sent them off to the malicious site.

The modified .htaccess rules:

```
RewriteCond %{HTTP_USER_AGENT} (google|yahoo|msn|aol|bing) [OR]
RewriteCond %{HTTP_REFERER} (google|yahoo|msn|aol|bing)
RewriteRule ^(.*)$ fours-booby.php?$1 [L]
```

Removing these, cleaning out the dodgy php files, and updating WordPress has for the time being solved this issue.

It’s an interesting attack because the site owner is unlikely to follow the Google search result for their own website, meaning it may be around for a while before being detected. In this case a couple of months.

There are a number of variations on this particular attack that use more specific rules in the .htaccess to further reduce the possibility of detection, such as limiting the redirection to only happening when either an html or xml file is requested. Some versions of the attack even go as far as adding rules to skip the redirection based on the user’s IP address.

As this has shown, it is **so** important to keep WordPress up to date to make sure you’ve the latest security patches. Attackers will, and actively do, use bots to scan websites indiscriminately to look for common vulnerabilities.
📬 Mailing Lists
Tags: discuss, watercooler, marketing, email
Published: 2019-12-09 21:25:04

I recently embarked on a side-project called [DevMe](https://getdevme.com), and I was told to start collecting emails even though I hadn't launched yet. (DevMe will be a website where developers can show off their interests, projects, job history and more). I tried many free bulk email services, such as Mailchimp, Tinyletter, EmailOctopus, and MailerLite. I used MailerLite for my latest email, but I'm not sure which service I'll use going forward.

Does your project have a mailing list? What (free) bulk email service do you enjoy using?
Crystal Meetup - So how does Crystal do its Magic? by Ary Borenszweig
Tags: crystal, crystallang, techtalks, meetup
Published: 2019-12-09 20:40:09

What's the single most used thing in Ruby and Crystal? What makes Ruby and Crystal so powerful and fun to use? In this talk we'll explore this and how Crystal manages to compile your high-level description of your program into a ready-to-execute binary.

https://youtu.be/5rpZOtcCHtk
GIT Cache Helpers
Tags: git, security, webdev
Published: 2019-12-09 20:35:13

---
title: GIT Cache Helpers
published: true
description: 
tags: git, security, webdev
series: Git Authentication
cover_image: https://thepracticaldev.s3.amazonaws.com/i/div5irmfz2fa4jdwukjw.jpg
---
This is a second article in a series called "*Git Authentication*. In the previous article, I shared how I troubleshooted an authentication error, while working on lab assignments for Flatiron School. If you are interested in the previous article, click below. 

{% link https://dev.to/eclecticcoding/git-authentication-errors-109a %}

**DISCLAIMER**: *This solution works for my system. I have a single user system not connected to a work network, just a home office. Please investigate the best solution for you and your own security.*

## Options
There are several options Git provides for credentials with the HTTPS protocol. In am escalating order of options: 
1. Cache credentials helper - [GIT Authentication Errors](https://dev.to/eclecticcoding/git-authentication-errors-109a)
2. Store credentials helper 
3. Local OS keyring helpers - this articles purpose

### Caching credentials
This is an option I dismissed very quickly, as I was looking for a viable option for my single user computer. To be fair, I do need to introduce this feature as another options

**Details**
The good news is that caching is quite secure because it keeps data only in memory. Just remember, every time you open new session, you need to type your credentials again. Memory is purged after 900 seconds (15 min) by default, but it can be changed with optional timeout parameter.
```shell
git config --global credential.helper 'cache --timeout=300'
```

Read more from the [Official Documentation](https://git-scm.com/docs/git-credential-cache)

 ### More Secure Steps
After setting up a Credential Store, I became increasingly more uncomfortable with this method. Even though I use a single use computer, it is basically a plain text method. Therefore, it does not matter if you have a 32 character password with uppercase and special characters, it is still plain text.  

**Details**
The directions here are based on a Ubuntu 19.10 system. There are other options for Mac and [Windows](https://github.com/Microsoft/Git-Credential-Manager-for-Mac-and-Linux). The basic idea is to use your Operating System's secure keyring. 

Five years ago, the best way to store Git credentials on Linux was to use the GNOME Keyring (libgnome-keyring), but as it is specific to GNOME, it is deprecated since [January 2014](https://mail.gnome.org/archives/commits-list/2014-January/msg01585.html). For Git versions 2.11+ you should use credential helper based on [libsecret](https://wiki.gnome.org/Projects/Libsecret). Installation and configuration takes only four bash commands:

```shell
sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
```
All done! ✅ 
The next time you use git you’ll be asked for your username and password will be the last time on your device
reInvent 2019 workshop list
Tags: aws, reinvent2019, workshops, labs
Published: 2019-12-09 19:47:25

So here is a list scraped from Twitter and following various other folk, of just a small taster of the workshops that ran during reInvent. As I find more I will update, and feel free to add yours in the comments (oh, and let me know if any of these are dead links)


**Serverless** - https://github.com/aws-samples/aws-serverless-workshop-innovator-island/
**Serverless image process workshop** - https://image-processing.serverlessworkshops.io/
**Amplify preductions workshop** - https://github.com/mlabieniec/IonicPredictions
**Full stack serverless Amplify lab** - https://github.com/aws-samples/aws-reinvent-2019-mobile-workshops/tree/master/MOB303
**Building secure APIs in the Cloud** - https://workshop.reinvent.awsdemo.me/
**Auth and Authorization flows in IOS apps** - https://amplify-ios-workshop.go-aws.com/
**Building a modern application with CDK** - https://github.com/aws-samples/aws-modern-application-workshop/tree/python-cdk
**Using SAM CLI workshop** - https://github.com/aws-samples/reinvent2019-svs217
**Event driven workshop** - https://event-driven-architecture.workshop.aws/

**ECS workshop for Fargate** - https://ecsworkshop.com/
**Amazon EKS workshop** - https://eksworkshop.com/
**Amazon Lightsail workshop** - https://lightsailworkshop.com/
**EC2 Spot Instance workshop** - https://ec2spotworkshops.com/
**AWS Service Catalog workshop** - https://service-catalog-tools-workshop.com/10-servicecatalog.html
**NET403: Amazon EKS and Kubernetes on EC2 Container Networking Workshop ** - https://awsk8snetworkshops.com/

**Realtime analytics for ride sharing workshop** - https://streaming-analytics.labgui.de/
**Open Distro for Elasticsearch** - https://reinvent.aesworkshops.com/opn302/
**AWS Alien Attack workshop** - https://alienattack.workshop.aws/

**Build, train, debug, deploy and monitor with Sagemaker** - http://bit.ly/aim362-workshop
**DeepComposer labs** - https://github.com/aws-samples/aws-deepcomposer-samples
**Sagemaker Autopilot workshop** - https://gitlab.com/juliensimon/aim361

**IoT/Greengrass/Analytics/Edge** - https://github.com/aws-samples/aws-iot-greengrass-edge-analytics-workshop
**Voice Robotics workshop** - http://voiceroboticsworkshop.com/
**AWS RoboMaker workshop** - https://robomakerworkshops.com/
**Sumarian workshop** - http://workshop-sumerian-ar-webapp.s3-website-eu-west-1.amazonaws.com/en/

*updated 15th December, thanks for the update Paavan M*
What non-CMS tools would you use to make a small but growing website?
Tags: discuss, webdev, help
Published: 2019-12-09 19:34:11

I'm making a website for my husband's construction company and the initial features will be:
* A static home page
* Blog posts that he can create and edit

But over time I'd like to add:
* More pages 
* A dashboard for clients and employees, ideally available offline
* Complex forms 

My first thought is to start with the Hugo static site generator and add a React app later for the dashboard and forms. 

But what tools would you choose? 

I'd rather not lock myself into a CMS and I think that would more headache than help anyway. Thanks!