Address - Displayed on invoice. Determine which taxes apply to your account.
How is my tax location determined?
Your tax location is typically based on your account address, which is initially set to the payment address of your primary payment method when you sign up. In some locations, we are required by law to consider other account details, like other payment addresses or IP addresses.
How can I change my tax location?
You can update your account address and view your account’s tax location and rate at any time on the billing page. If you’ve set your account address correctly but your account’s tax location is not what you expect, contact support for help.
canvas
img
может подтормаживать, этот код заранее генерит все кадры и после рендерит в цикле их через requestAnimationFrame()
<!DOCTYPE html>
<meta charset="utf-8">
<body>
<svg width="960" height="500"></svg>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.2.3/d3.min.js"></script>
<script src="https://d3js.org/topojson.v2.min.js"></script>
<script>
var svg = d3.select("svg"),
canvas = document.createElement("canvas"),
width = canvas.width = +svg.attr("width"),
height = canvas.height = +svg.attr("height"),
context = canvas.getContext("2d");
var projection = d3.geoOrthographic()
.scale(195)
.translate([width / 2, height / 2])
.precision(0.1);
var path = d3.geoPath().projection(projection);
d3.json("/mbostock/raw/4090846/world-110m.json", function(err, world) {
var data = [],
stream = canvas.captureStream(),
recorder = new MediaRecorder(stream, { mimeType: "video/webm" });
recorder.ondataavailable = function(event) {
if (event.data && event.data.size) {
data.push(event.data);
}
};
recorder.onstop = () => {
var url = URL.createObjectURL(new Blob(data, { type: "video/webm" }));
d3.selectAll("canvas, svg").remove();
d3.select("body")
.append("video")
.attr("src", url)
.attr("controls", true)
.attr("autoplay", true);
};
var background = svg.append("rect")
.attr("width", width)
.attr("height", height)
.attr("fill", "#fff");
svg.append("path")
.datum({ type: "Sphere" })
.attr("stroke", "#222")
.attr("fill", "none");
svg.append("path")
.datum(topojson.feature(world, world.objects.land))
.attr("fill", "#222")
.attr("stroke", "none");
svg.append("path")
.datum(topojson.mesh(world, world.objects.countries, function(a, b) {
return a !== b;
}))
.attr("fill", "none")
.attr("stroke", "#fff");
var queue = d3.queue(1);
d3.range(120).forEach(function(frame){
queue.defer(drawFrame, frame / 120);
});
queue.awaitAll(function(err, frames){
recorder.start();
drawFrame();
function drawFrame() {
if (frames.length) {
context.drawImage(frames.shift(), 0, 0, width, height);
requestAnimationFrame(drawFrame);
} else {
recorder.stop();
}
}
});
function drawFrame(t, cb) {
projection.rotate([360 * t]);
svg.selectAll("path").attr("d", path);
var img = new Image(),
serialized = new XMLSerializer().serializeToString(svg.node()),
url = URL.createObjectURL(new Blob([serialized], {type: "image/svg+xml"}));
img.onload = function(){
cb(null, img);
};
img.src = url;
}
});
</script>
rocket-lazy-load
можно деактивировать для определённых картинок, data-no-lazy="1"
<img src="logo.png" data-no-lazy="1" title="Лого от Артемия за килобакс" alt="">
var divContent
у вас строка текста (пусть и HTML).appendChild()
ожидает не строку текста, а HTML узел (Node) – его можно создать как у вас выше document.createElement()
.element.innerHTML = myHTML;
appendChild()
Но у вас требуется два инпута вставить, с множеством атрибутов. На чистом JS это займет несколько строк:var input = document.createElement('input');
input.type = "text";
input.placeholder = "Наименование";
input.className = "expenses-item";
newDiv.appendChild(input);
input = document.createElement('input');
input.type = "text";
input.placeholder = "Цена";
input.className = "expenses-item";
newDiv.appendChild(input);
- /etc/letsencrypt/live/domen.ru/:/etc/letsencrypt/live/domen.ru/
services:
nginx:
# ...
volumes:
# ...
- /etc/letsencrypt:/etc/letsencrypt
live/domen.ru
лежат не сами сертификаты, а линки на файлы двумя уровнями выше. Линки вы и видите, но указывают они на недоступные файлы. New Solid
(Cmd+Y)Add
сделайте None
Paint style
вместо "On original image" – "On transparent"regionCode
или location
videoCategoryId
или topicId
const everyNth = (arr, n) => arr.filter((e, i) => i % n === 0);
// применение
everyNth([0, 11, 22, 33, 44, 55, 66, 77], 7) // [0, 77]
for()
:function everyNth(arr, n) {
const result = [];
for (let i=0; i<arr.length; i+=n) result.push(arr[n]);
return result;
}
for()
быстрее в 7 раз!.sex
или .sucks
Content-type
: вы передрали код из примера с application/x-www-form-urlencoded
, который предполагает отправку данных как в GET-параметрах: a=1&b=2&c=3
request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
php://input
$data = json_decode(file_get_contents("php://input"));
Content-type
: вы передрали код из примера с application/x-www-form-urlencoded
, который предполагает отправку данных как в GET-параметрах: a=1&b=2&c=3
request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
forEach()
вызывает функцию по очереди с каждым из элементов массива. В данном примере вызовется function(1), function(3), function(4), ... function(5)result
это объект, где свойствами будут встреченные цифры (как строки).result
нет, и, например, result[1]
будет поначалу undefined
. И в таком случае создаётся это свойство со значением 1
.undefined
, и оно будет увеличено на 1.