teleren/devto huggingface dataset:
Not to be a snail, use AMP HTML email 🐌
Tags: programming, productivity, csharp, beginners
Published: 2019-11-26 14:11:00

As you may know, Google announced AMP HTML email, which can be very useful to increase email’s performance. I want to shed light on this feature in **[Aspose.Email](https://products.aspose.com/email/family?utm_source=https://dev.to/&utm_medium=email&utm_campaign=amp-html-in-emails)**.

##What is AMP HTML for email?
Imagine, if emails could provide dynamic content, with the ability to update data included in emails? 😊 
As you know, email messages are static and don’t change after they were sent. But, in the fast-pacing world of technologies, we are used to rapid progress. So, it's time for email messages to change too!
With AMP HTML email, its content can be updated after the email was sent, ensuring timeliness and relevancy.

**AMP (Accelerated Mobile Pages)** is a developer’s package from Google for developing a lightweight system with more rapid loads. AMP is a framework made up with HTML, JavaScript and CSS - a standard to create user-first web content.

##Why AMP HTML for email?
APM HTML technology is based on web technologies, so you won’t get lost in it. It provides own validator and a set of custom elements to empower basic HTML.

Using AMP HTML email allows to increase the interactivity of your messages and add more usability. Now you can do some actions within the email interface, like: fill out questionnaires or schedule appointments, add photo carousels, include last news and RSVP to an online event, such as meetings or webinars, etc.


##Speed up emails with AMP HTML
By using parts of Google’s AMP Project for email, **[Aspose.Email](https://products.aspose.com/email/family?utm_source=https://dev.to/&utm_medium=email&utm_campaign=amp-html-in-emails)** increases messages download speed, that is especially critical while working with mobile users.

AMP HTML also gives applications a way to cache and serve content with great efficiency. 
You can see the code snippet, which demonstrates creating, saving, and updating AMP Emails using Aspose.Email API **[here](https://docs.aspose.com/display/emailnet/working+with+amp+html+emails#workingwithamphtmlemails-workingwithamphtmlemailsutm_source=https://blog.aspose.com/utm_medium=emailutm_campaign=amp-html-emails-in-aspose.email-v19.10?utm_source=https://dev.to/&utm_medium=email&utm_campaign=amp-html-in-emails)**. 👈

Aspose.Email API, also allows you to manipulate email storages, and to use this functionality you don’t need to install any other dependencies.

###Questions time.
👇👇👇Please share your thoughts in the comments below.👇👇👇
Do you already use AMP HTML emails?
Augmented and Virtual Reality (AR VR) Market in Aviation
Tags: arvr, augmentedreality, virtualreality
Published: 2019-11-26 13:26:57

Augmented and Virtual Reality (AR VR) Market in Aviation by Technology (AR, VR), Function (Training, Operations), Component (Hardware, Software), Application (On-Board, Off-Board), Product, Vertical, and Region - Global Forecast to 2025
How NOT to launch your new product
Tags: webdev, startup
Published: 2019-11-26 13:13:30

---
title: How NOT to launch your new product
published: true
description: 
tags: webdev, discuss, startup
---

As an indie maker at some point you face the last phase of your product development - the launch. Here's how not to launch your product… learned the hard way 😐

[I Need Brains](https://www.producthunt.com/posts/i-need-brains) it was my first product... which I've screwed so much 🤦‍♂️

I wanted to create something. Literally SOMETHING. It didn't need to earn money. It could just bring some followers on my Twitter. That's all.

When the idea came, I just grabbed the laptop and I started coding backend in Node.js and after that frontend in React.

The app solved my problem. I don't know who should I follow on Twitter to get the meat. I don't want to read about politics. Only engineering and indie stuff.

##Do not launch when your competitor launched his/her product a couple of days ago 🤦‍♂️ ##
Couple of days before my launch [Follow Friday](https://www.producthunt.com/posts/followfriday) appeared on PH. Almost the same idea. Better design. Quicker launch. He gained hundreds of upvotes and I got 4 😐

##Do not forget about marketing stuff 💩##
I was so angry that I wanted to launch quickly and I did. I'd just made two screenshots, written some short description and that's all. Did the same thing for Hackernews and for Wykop (Polish Reddit).

##Do not overegineer your product 🤖##
I wanted to do simple app that will list Twitter profiles. I'm full stack developer, so I thought that I should use my technologies to do it quickly. Nope. That's not how you do the MVP as an indie maker. Use the **No Code tools**. Seriously. For example, do you need an API that will serve some data? Use Google Sheets with [Sheety](https://sheety.co/) or [Sheet2Site](https://www.sheet2site.com/) to make even a full app. Do you want to do simple one page app? Use [Carrd](https://carrd.co/).

[Here](https://www.hownottolaunch.com/) are other things you can check before launch.

Cheers. Hope your launch will be successful 🚀
Easy way to connect to Amazon ElastiCache (redis) with password from Django app
Tags: djangoredissessions, elasticache, aws, django
Published: 2019-11-26 13:10:25

## Requirements

- ElastiCache (redis) instance

- your Django app

- git

- pip package manager

## install redis
install redis by below command

```
pip install redis
```

## Copy the part of django-redis-sessions in your project directory

- Clone to any directory 

Clone git repository wherever you want to put.
```
git clone https://github.com/martinrusev/django-redis-sessions#django-redis-sessions
```

- Copy redis_sessions to your project directory

Copy redis_sessions directory in django-redis-sessions to your project directory.

```
cp -r redis_sessions your_directory
```

- Edit session.py and your settings.py

Open below files with editor, and add the codes.

```
# session.py

    def get(self):
        ...
        elif self.connection_type == 'redis_host':
        ...
            db=settings.SESSION_REDIS_DB,
            # add below code
            SSL=True,


# settings.py

# add below code
SESSION_ENGINE = 'your_directory.redis_sessions.session'

SESSION_REDIS = {
    'host': 'your_aws_elasticache_endpoint_name',
    'port': your_port,
    'db': 0,
    'password': your_password,
    'prefix': 'session',
    'socket_timeout': 3,
    'retry_on_timeout': False
}
```

※ In your password setting, using encryption middleware such as django-environ, python-decouple is better.

The reason why we edit session.py is to use SSL mode. By doing that, we can connect to ElastiCache by SSL tunnel mode.

## Finish! Check Connection

Confirm by running the server, testing, or connecting to ElastiCache directly, etc.

I hope I can help you to deploy your Django app to AWS!!
The Difference between COMPUTED and WATCHERS in Vue.js
Tags: vue, javascript, webdev, opensource
Published: 2019-11-26 13:09:58

After writing my first article about [The Difference Between Computed and Methods in Vue.js](https://medium.com/notonlycss/the-difference-between-computed-and-methods-in-vue-js-9cb05c59ed98), I noticed that many people were confused about another difference, the one between **computed properties** and **watchers**.

I think the reason why this happens is that they can both run when a value changes.

I had the same doubt, so let’s see when to use **watchers** instead of **computed** and vice versa.

## Computed properties
Computed properties are very handy for **manipulating data that already exists**. They are **cached based**; this means that the function will run only **once** until the values don’t change again (also if it’s **called many times** in the same template).
You can think to use them anytime you need to sort through a large group of data, and you don’t want to rerun those calculations every time if you don’t need it.

## Watchers
Watchers allow you to **listen** to the data object and run whenever a **specific property changes**.

Continue to read on Medium to know more 👇🏻


{% medium https://medium.com/notonlycss/the-difference-between-computed-and-watchers-in-vue-js-3579bf91063a %}
Lessons from developers who went serverless
Tags: todayilearned, serverless, architecture
Published: 2019-11-26 13:00:17

*TL;DR style notes from articles I read today.*

### [Lessons learned — a year of going “fully serverless” in production](http://bit.ly/34dvEQz)

- API server on serverless leads to automatic scalability, high availability and reduces costs dramatically.
- Deploying a Lambda function has a 52Mb limitation. Mitigate this by including only the required dependencies and trimming their size by excluding unused files.
- For background jobs such as file processing, keep a set of dedicated Lambda functions that are not part of the API server. 
- A good approach to logging is to stream the Lambda logs into a dedicated Lambda that is responsible for sending it to the 3rd party logging service. 
- When it comes to environment variables, don’t commit your secrets to source control.

*[Full post here](http://bit.ly/34dvEQz), 6 mins read*

---

### [6 things I’ve learned in my first 6 months using serverless](http://bit.ly/2pJnT5X)

- Ditch Python, switch over to Node. It makes everything much more maintainable and logical.
- The middle layer has to go. It acts as a web server on Lambda, which is both wrong and terrible.
- Try Vue when dealing with messy code. Vue compiles all your goodness into an index.html and bundle.js files, primed for uploading to S3.
- Learn to love DynamoDB. When you get it right, the NoSQL database provides blistering performance, massive scale, and practically no administrative overheads.
- Serverless Frameworks are awesome. A simple sls deploy wields enormous power, bundling up your code and shipping it directly to AWS Lambda.
- Authorization is king and JWT makes all other types of auth look overcomplicated.

*[Full post here](http://bit.ly/2pJnT5X), 10 mins read*

---

### [5 tips for building apps with the Serverless framework and AWS Lambda](http://bit.ly/33a8k4H)

- Serverless works well with a microservice-style architecture. You should limit the scope of services and functions you use. 
- Lambda functions shouldn’t persist any data or session information in the environment beyond the lifetime of a single request.
- However, Lambda might reuse your function instances to make performance optimizations. So, you should optimise for your functions for reuse. 
- Cold starts are a problem with AWS Lambda. Reduce latency by keeping containers warm. 
- Use dependency injection to make your functions easily testable. Write integration tests, both locally and on deployments.

*[Full post here](http://bit.ly/33a8k4H), 6 mins read*

---

*[Get these TL;DR style notes directly to your inbox every weekday by signing up for my newsletter, in.snippets(), here.](https://mailchi.mp/appsmith/insnippets?utm_source=devto&utm_medium=post08&utm_campaign=is)*
error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
Tags: git, devops, webdev
Published: 2019-11-26 12:55:53

So I was having an error trying to push my project to GITLAB 
(Error reproduced below)

$ git push -u origin master
Enumerating objects: 113, done.
Counting objects: 100% (113/113), done.
Delta compression using up to 8 threads
Compressing objects: 100% (95/95), done.
Writing objects: 100% (113/113), 58.19 KiB | 1.02 MiB/s, done.
Total 113 (delta 11), reused 0 (delta 0)
error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
fatal: the remote end hung up unexpectedly
fatal: the remote end hung up unexpectedly
Everything up-to-date

HOW I FIXED IT - copy paste the below command
git config --global http.postBuffer 157286400

I made use of the above git command
What It does is that it Increase the Git buffer size to the largest individual file size of your repo

source: https://confluence.atlassian.com/bitbucketserverkb/git-push-fails-fatal-the-remote-end-hung-up-unexpectedly-779171796.html
Cloud Solutions for Web App Development: How and Which One to Choose?
Tags: cloud, webdev, javascript, docker
Published: 2019-11-26 12:49:26

**Jump to link for more insights:** 
https://yalantis.com/blog/cloud-services-for-web-development/
(full version)

Imagine that you’re an established offline consumer electronics retailer and you’re launching your own app for users to buy online. You’re surely planning to scale it up later. But how do you know how many servers you’ll need for the launch? It’s hard to tell, so you start with the servers you already have, simply because you don’t expect many users to hit your service immediately. 

After you launch the app, it gets popular with the first 10,000 users, and all of them are totally pleased. So pleased that the app goes viral, and information about your project appears on TechCrunch. In just a day, you get 5,000,000 users instead of the 10,000 you expected. Most likely, 4,990,000 users, including possible investors and influencers, will see an error message or anything but your website. Of course, you could update your site's architecture and add multiple servers at once (if there’s money for that), say 100 or 200 of them, paying for the server downtime and waiting for 5000,000 users to come back one day (hopefully). But is there anything else you could do in this case? 

The answer could be using cloud platforms, which benefit most projects. So many companies have already switched from on-premise app development to cloud-based development. Among these companies are Instagram, Quora, Reddit, Pinterest, Facebook, Netflix, Spotify, LinkedIn, Airbnb, and Adobe. Why do they use cloud management platforms? Because this way they can scale their apps quickly and, what’s more important, cost-efficiently. 

**Why is cloud computing getting so popular?**

Enterprises that have already adopted cloud-based computing technology claim that they’re seeing 2.3 times more revenue growth. How is that possible? According to a survey on app development costs, companies spend from $100,000 to $500,000 on on-premise app development, and half of this money is actually spent on hardware and software. You can significantly cut about 50% of expenses after successfully switching to cloud-based app development.
The PHP 7.4 series (Deprecations)
Tags: php74, deprecations, concatenationoperator, ternaryoperators
Published: 2019-11-26 12:28:49

---
title: The PHP 7.4 series (Deprecations)
published: true
description: This article describes all the features that have been deprecated in PHP 7.4 and the alternative you must use when upgrading your web applications.
tags: Php7.4, Deprecations, ConcatenationOperator, TernaryOperators
cover_image: https://anastasionico.uk/img/blog/php-7-4-deprecations.jpg
---

Tell me if one of these situations has ever happened to you

- The head coach of your favourite team substituted a player and the fresh one’s performance was a disaster;

- You moved into your dream house to later find out it wasn’t what you expected to be;

- You updated the programming language’s version or a package in your application and needed to spend the next night fixing issues you didn’t account for.

**Here is a secret:**

It happens to all of us!

We want to prevent these issues and this is why we use several environments for an application and we should write tests.

A way to avoid these problems is to learn why they came in the first place.
I can tell you,
one of the most strenuous task for PHP developers in the next months will be to resolve issues related to the upgrading to PHP 7.4.

**And what’s are those issues?**

The biggest issue when upgrading to a new version of features is retro compatibility!

It is even more important if we upgrade the programming language of an application.

like adding a new player on the field that does not perform well against the opponent’s tactic, or moving to a brand new house that has no space for all your clothes, retro compatibility has to be kept in mind.

You can solve it, and save a lot of hours by looking for deprecation beforehand.

**PHP 7.4 is not a big jump**

Not if you are up-to-date and you are coming from recent versions.
but, it was thought as the version that prepares us for PHP 8.
for this reason, it has several deprecations.
and all of them are deeply described in this article.

**What can you do now?**

This is a very actionable article.
You can use this article and read it paragraph after paragraph while having your IDE open and update all your files that need to be updated.

Sounds good?

I hope so.

Nico

[Read the full article here](https://anastasionico.uk/blog/php-7-4-deprecations)
How to Ensure Optimum Code Quality for Software Development?
Tags: codequality, productivity, beginners
Published: 2019-11-26 12:24:53

Code quality can significantly impact any app as far as the performance is considered. This is why these days enterprises gave a lot of importance to the code quality for successful software implementation. If smooth and frictionless software functioning is something that you need to ensure, following the best coding standard is a very important aspect of this.

Great code quality is ensured by following an industry-acclaimed coding standard. This requires understanding the quality standards of code and the way it can impact the software applications and business processes.

**What Precisely We Understand By Coding Standards?**

In the coding process of a software application, there can be a variety of procedures. But while developing a program, a software development company needs to stick to certain guidelines that became standardized overtime for a positive impact. This coding standard ensures an easy understanding of the code besides maintaining consistency.

Consistency of the coding guidelines and standardization of the procedures actually reduces the anomalies and scope of contradictions in the programming process. Thanks to ​the coding standards, the developed program looks seems to be built by a single developer from start to finish.

**Why Coding Standards Are Important?**

Coding standards are important for maintaining the coding procedures as consistent and devoid of inconsistencies. When you [hire dedicated developer](https://www.cmarix.com/hire-dedicated-developers.html), you should make sure that he is fully informed about these constraints and challenges corresponding to code quality.

**Let us explain here briefly the key reasons for giving importance to coding standards.**

**Addressing Security Concerns**

Most software applications become most prone to security threats and malware attacks if their code remains inconsistent. [Readmore..](https://www.cmarix.com/how-to-ensure-optimum-code-quality-for-software-development/)

Originally published at [https://www.cmarix.com](https://www.cmarix.com/) on Nov 20, 2019.
Your next secure password
Tags: imadethis, blockstack
Published: 2019-11-26 12:23:31


Let me introduce you my new Blockstack project, [nextPass](https://nextpass.co).

![](https://i.imgur.com/W89bAXe.png)

nextPass allows users to create extra secure passwords easily and manage them in ease at a super secure place.

My purpose with nextPass is providing a top level password manager for free.

On next main iteration i am planning to release desktop application of nextPass.

Check it out and let me what do you think.

Needles to say i host it on Runkod :)
Publisher Denied My Game Because of Custom C++ Engine
Tags: gamedev, cpp, todayilearned, career
Published: 2019-11-26 12:22:33

If you intend to sell and make money by making games, you know that writing your own engine will take a lot of time. However you may not be aware that writing your own technologies can also cost opportunities and partnerships. You will need to keep that in mind as well. This is my story on how I learned that lesson the hard way:

***Note:*** *I went into the publisher search just checking out what opportunities may exist as my* [*game development stream*](https://www.twitch.tv/timbeaudet) *viewers were pushing me to try.*

## The Pitch

In September 2019 I prepared Turbo Boom! to be pitched to several publishers. After spending many days polishing and tweaking that content, I sent 25-30 emails. The publishers that received this email were chosen based on their interest in racing games, or action based games that are similar enough to Turbo Boom! Throughout October the responses came back, most of which included, “unfortunately not a fit at this time” along with enough information to show they took my pitch seriously.

One publisher even asked more questions about targeting mobile platforms after initial desktop launch. I knew discussing how my custom C++ engine did not support mobile at this moment would be a ding. So I let the publisher know that mobile wasn’t supported and included a realistic estimation of how long it would take to add that support. I was very confident in this estimate as my engine has been partially working on iOS for some time.

They took that answer well enough, and went to review it with the rest of their team for a week or two. Unfortunately the next response was them letting off the hook with a not so subtle hint to the reason being my custom engine and the risk it added.

## It makes sense.

A custom engine has a lot more unknowns, especially to publishers who are not typically developers. Based on the response had a major engine (Unity, Unreal) been used, “that just works” in the eyes of non-developers, my game may have had a publisher. But that is okay, I like doing things my way. It is just a lesson learned that the custom engine can also cost opportunities based on the perceived, *and actual,* additional risk that is increased with custom technologies.

As an indie developer taking a look at things from a business perspective is important and I already knew custom engine development was time consuming, costly and adding risk. It wasn’t until this response that I became aware that risk extends to opportunities and partnerships. Others pursuing similar paths should be aware of this.
The Framework > Language Mindset
Tags: javascript
Published: 2019-11-26 12:21:57

Rules, we've all got em, weather it's I must use tabs over spaces or semicolons even if JavaScript does it for you, there are no shortage of rules to abide by.

The web today is the equal and opposite reaction of what it once was. If you where around during the rise of jQuery you might remember starting to use plugins for just about everything, jQuery and vanilla became distinguished ways of working, in fact when I was junior, I actually thought that jQuery was some sort of language. Anyway the point is the work and solutions where piecemeal, you would often have to find a conversation and stick to it. There where hardly any style guides to live by.

Then we all started saying MVC MVVM MMMMMM and WOBLSNAP, at this point I was confused, what the heck is MVC! It turns out that frameworks like backbone and handlebars sort of helped answer. Despite that MVC is nothing new. Angular came along and everything changed again. The first question I have about this section of time was and still is, why does nothing stick, why must everything try to improve on everything else?

Today we are at the point of saturation if there is such a thing, React Vue and even Angular are all capable frameworks but more than this, they make you feel you must do it thier way, that they are the center of your stack universe. Why? Well brand is a major factor, they must be adopted to survive, but none fundamentally trump the other, Why is that? Are you just using them waiting for the new hotness, or perhaps SPA apps are broken in the way we architect them, reinventing what the browser can do because the browser has not solved the problem of loading.

I think the tables are turning, I was in denial about this for a while, Perhaps we could be about to see a shift towards web components again, non monolithic frameworks, portal elements and most importantly JavaScript as part of the job title over react developer, I am singling that out as it is wide spread.

It all comes back to rules, if this is going to be the future, who is going to tell you how to do it?