Подключение js кода к API, CORS и зачем он нужен. Работая над проектом, мы столкнулись с проблемой заголовков CORS. Для приема данных требовались входящие заголовки, которые не отправлялись с сервера. Итак, что же такое CORS? CORS - стандарт передачи данных между источником и приемником. Передавая данные, он также передает заголовки, с помощью которых и происходит чтение данных. Итак, принимающее запрос устройство получает заголовки, сверяет их со списком разрешенных источников и только после этого принимает запрос. Все современные веб-браузеры используют политику одинакового источника. То есть веб-приложения, которые используют API, могут спрашивать данные только с домена, с которого шла загрузка, если cors-заголовки не используются. CORS заголовки существует для защиты данных. При появлении таких тегов, как <img>, <script>,<audio> и многие другие безопасность пользователей оказалась под угрозой, потому что вместо картинки или аудио мы можем получить скрипт, который запустится на устройстве и принесет некоторые проблемы. Стоит сказать о том, что сервера также должны поддерживать заголовки cors, иначе ответ прочитан не будет. В нашем случае требовалась настройка nginx, так как именно он использовался в нашем проекте, в качестве обратного прокси сервера. Настроить отправку заголовков можно и другими способами, например, apache, выбор зависит от стека, который используется в проекте. #programming #programmer #it #программирование #програмист #сервер #клиент #язык #Python #NodeJS #TimeTable #React #API #CORS #безопасность
StormFox
Продолжаем тему резервного копирования данных. Сегодня рассмотрим более современные способы создания бэкапа. Бесконечно-инкрементальный бэкап — это метод создания резервной копии данных, при котором каждый последующий бэкап содержит только инкременты. Подразумевается, что после первоначального полного резервного копирования, будут создаваться только инкрементальные бэкапы. Это позволяет сократить время создания бэкапа и сэкономить дисковое пространство. Однако при восстановлении данных может потребоваться больше времени, так как нужно восстановить все изменения. Синтетический полный бэкап — это метод создания полной копии данных, используя уже существующие инкрементальные бэкапы. Он периодически воссоздаёт полный бэкап из инкрементальных. Это позволяет сократить время создания полной копии и уменьшить нагрузку на сеть и хранилище данных. Смарт-бэкап — этот метод позволяет комбинировать полный, дифференциальный и инкрементальный бэкапы. Это позволяет сократить время создания бэкапа и снизить нагрузку на сеть и хранилище данных. Кроме того, данный метод может самостоятельно управлять хранилищем. Каждый из этих методов имеет свои преимущества и недостатки, поэтому выбор метода зависит от требований к безопасности данных и от конкретных потребностей. Важно помнить, что регулярное создание резервных копий данных — это необходимое условие для обеспечения безопасности информации. #backup #бекап #programming #programmer #it #программирование #програмист
Продолжая тему резервного копирования, хочется рассмотреть виды резервного копирования и их особенности. Существуют традиционные и более современные методы бэкапа. Сегодня обсудим первый тип, к нему можно отнести такие бэкапы, как: • Полный • Инкрементальный • Дифференциальный Полный бэкап – это создание полной копии данных. Это самый простой и очевидный способ. Рассмотрим плюсы и минусы. Преимущества: • Простота • Скорость восстановления данных Недостатки: • Занимает много места • Долгий процесс создания копии данных Инкрементальный бэкап – строится на полном бэкапе, а затем сохраняются лишь изменившиеся файлы с момента последнего создания бекапа (инкременты). Таким образом, для разового бэкапа, он не отличается от полного бэкапа, но при регулярных бэкапах, он получает преимущество. Плюсы: • Занимает сравнительно мало места • Скорость создания бэкапа (так как сохраняются лишь изменившиеся фалы) • Может часто выполняться Минусы: • Долгий процесс восстановления данных (так как нужно учитывать все инкременты) • В случае утраты или повреждения одного инкремента, данные будут потеряны. Дифференциальный бэкап – строится на полном бэкапе, а затем сохраняются лишь изменившиеся файлы, изменившиеся с момента создания полного бэкапа. Преимущества: • Высокая скорость создания бэкапа • Быстрое восстановление данных • Может часто выполнятся Недостатки: • Со временем, может занимать много места Сравнительная таблица данных бэкапов представлена на рисунке. Более современные методы строятся на гибриде всех этих методов, про эти методы, их преимущества и недостатки мы планируем рассказать в следующих постах. #backup #бекап #programming #programmer #it #программирование #програмист
Резервное копирование - это процесс создания копии данных, или сокращённо - бекап. Как говорится, люди делятся на два типа, кто не делает бекапы и те кто уже делает. При кажущейся очевидности многие пренебрегают данным способом обеспечения безопасности данных. Так зачем же делать бекапы? Их делают для снижения риска потери данных. Так как различные события могут угрожать целостности данных. От банального удаления по ошибке, взлома и уничтожения злоумышленником, до выхода из строя жёсткого диска. Итак, польза бекапов понятна, но возникает новая проблема, как их создавать? Ответом могут стать десятки и сотни специализированных программ, которые лучше выбирать с учётом своей операционной системы и потребностей. Сложностей с использованием не должно быть, так как существует огромное количество руководств и советов для новичков. Важно автоматизировать процесс бекапов, так как легко забыть запускать его самостоятельно. Также стоит уделить внимание тому, куда сохраняется бекап. Дело в том, что сохранять бекап нужно на другой диск, иначе в нём мало смысла. Существуют различные варианты, от второго диска или флешки, до облачного диска. Я рекомендовал бы второй вариант, так как у компаний, которые предоставляют услуги облачного хранилища надежное хранение данных и риск потери данных в облаке близится к нулю, а значит, бекап обязательно сохранится. В следующей части планирую затронуть виды резервного копирования и их особенности. #backup #бекап #programming #programmer #it #программирование #програмист
Сегодня немного об обучении нейросети. Чтобы нейросеть могла выполнять поставленные перед ней задачи, ее нужно обучить. Это довольно долгий и сложный этап в ее разработке, однако один из самых важных. Для обучения нейросети нужен запрос с верным ответом на него. Сейчас есть много возможностей для обучения нейросетей. Это базы, где представлены запросы и ответы на эти запросы. Это базы с картинками, по которым нейросеть учится определять, что на картинке находится. База с голосовыми записями, где нейросеть учится отделять шум от голоса и определяет, что именно сказал человек. Есть даже псевдонейросеть, созданная для обучения других нейросетей. Даже хорошо обученная нейросеть не всегда правильно выполняет все задачи, она может допустить ошибку, перепутать или просто не понять. Поэтому когда нейросеть выполняет важную работу нужно следить за качеством выполнения. С обучением нейросети могут возникнуть две основные проблемы: недообучение и переобучение. Недообучение связано с использованием слишком простых примеров для обучения, в связи с чем нейросеть ошибается больше, чем должна. Переобучение напротив связано с использованием при обучении сложных, но однотипных примеров, поэтому нейросеть много ошибается на примерах, которых не было в обучении. Значит, обучение нейросети нужно проводить не слишком долго, правильно подобрав для этого обучающую выборку. #programming #programmer #it #программирование #програмист #нейросеть #нейроны #machine_learning #learning #переобучение
