TLDR: Use for...of
instead of forEach()
in asynchronous code.
For legacy browsers, use for...i
or [].reduce()
To execute the promises in parallel, use Promise.all([].map(...))
Example of deployment process which I use in my Nuxt.js projects. I usually have 3 components running per project: admin-panel SPA, nuxt.js renderer and JSON API.
This manual is relevant for VPS such as DigitalOcean.com or Vultr.com. It's easier to use things like Now for deployment but for most cases VPS gives more flexebillity needed for projects bigger than a landing page.
UPD: This manual now compatible with [email protected]. For older versions deployment, see revision history.
Let's assume that you have entered fresh installation of Ubuntu instance via SSH. Let's rock:
This article is about building asynchronous microservices. I'll compare how this can be achieved in Javascript and Erlang natively, and in Python using RabbitMQ and Celery.
My first encounter with asynchronous programming in python was when building a web backend. Upon completing a purchase, the user should eventually receive a PDF invoice by email. This didn't have to happen immediately during the request; in fact, it was better if it didn't, so as not to slow down the purchase needlessly. At the time I wasn't sure how to implement an asynchronous workflow in python, but a quick google search quickly lead me to Celery and RabbitMQ. Celery is very easy to use; the only pain is setting up a message broker -- RabbitMQ, in my case. Once you're set up, running a task in the background is as easy as writing, in myapp.py
,
// get transaction | |
const transaction = await sequelize.transaction(); | |
try { | |
// step 1 | |
await Model.destroy({where: {id}}, {transaction}); | |
// step 2 | |
await Model.create({}, {transaction}); | |
// commit |
Learning How To Learn | |
Module 1 - What is Learning | |
Focused/Diffuse Modes Thinking | |
- Obviously ‘focused’ is when you’re concentrating. Direct approach to solving familiar problems. | |
- Focused: thoughts move through nicely-paved road of familiar notions (neural pattern looks very tight and directed). | |
- encompasses rational, sequential, analytical approaches to thinking | |
- Diffuse: More of a search function neural pattern. Thoughts move widely. More of a broad/big-picture perspective trying to connect ideas from different places. | |
- We’re always either in focused or diffuse mode of thinking. |
import { Injectable } from '@angular/core'; | |
import { HttpClient, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http'; | |
import { Observable } from 'rxjs/Observable'; | |
/** This class implements some features that should be tested. */ | |
@Injectable() | |
export class HttpClientFeatureService { | |
constructor( | |
private http: HttpClient |
FWIW: I (@rondy) am not the creator of the content shared here, which is an excerpt from Edmond Lau's book. I simply copied and pasted it from another location and saved it as a personal note, before it gained popularity on news.ycombinator.com. Unfortunately, I cannot recall the exact origin of the original source, nor was I able to find the author's name, so I am can't provide the appropriate credits.
files: | |
"/etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf": | |
mode: "000755" | |
owner: root | |
group: root | |
content: | | |
server { | |
listen 80; | |
gzip on; |
# For more information on configuration, see: | |
# * Official English Documentation: http://nginx.org/en/docs/ | |
# * Official Russian Documentation: http://nginx.org/ru/docs/ | |
user nginx; | |
worker_processes auto; | |
error_log /var/log/nginx/error.log; | |
pid /var/run/nginx.pid; | |
events { |