Pull to refresh
0
0
Cartman @Cartman

User

Send message

Пишем свой dependency free WebSocket сервер на Node.js

Reading time11 min
Views12K


Node.js — это популярный инструмент для построения клиент-серверных приложений. При правильном использовании, Node.js способен обрабатывать большое количество сетевых запросов, используя всего один поток. Несомненно, сетевой ввод — вывод является одной из сильнейших сторон этой платформы. Казалось бы, что используя Node.js для написания серверного кода приложения, активно использующего различные сетевые протоколы, разработчики должны знать, как эти протоколы работают, но зачастую это не так. Виной тому еще одна сильная сторона Node.js, это его пакетный менеджер NPM, в котором можно найти готовое решение практически под любую задачу. Используя готовые пакеты, мы упрощаем себе жизнь, переиспользуем код (и это правильно), но в то же время скрываем от себя, за ширмой библиотек, суть происходящих процессов. В этой статье мы постараемся разобраться в протоколе WebSocket, реализуя часть спецификации, не используя внешних зависимостей. Добро пожаловать под кат.

Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments4

Настройка DKIM/SPF/DMARC записей или защищаемся от спуфинга

Reading time5 min
Views242K
Приветствую, Хабр! В этой статье будет инструкция по настройке DKIM/SPF/DMARC записей. А побудило меня написать эту статью полное отсутствие документации на русском языке. Все статьи на эту тему, которые были мной найдены, были крайне не информативны.
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments8

Создание небольшого API на Deno

Reading time8 min
Views4.7K
В этом посте я хотел бы рассказать и показать процесс создания небольшого API с помощью Deno. Deno — новейшая среда для запуска Javascript и Typescript, разработанная создателем Node.js — Райаном Далем.


Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments8

Использование Typescript с React – руководство для новичков

Reading time6 min
Views186K
Друзья, в преддверии выходных хотим поделиться с вами еще одной интересной публикацией, которую хотим приурочить к запуску новой группы по курсу «Разработчик JavaScript».



Потратив последние несколько месяцев на разработку приложений на React и библиотек с использованием Typescript, я решил поделиться некоторыми вещами, которые узнал за это время. В этом руководстве я расскажу вам про шаблоны, которые я использую для Typescript и React в 80% случаев.

Стоит ли изучать Typescript для разработки приложений на React? Стоит, еще как стоит! Для себя я осознал на практике, что строгая типизация приводит к написанию гораздо более надежного кода, быстрой разработке, особенно в крупных проектах. Сначала вы, вероятно, будете разочарованы, но по мере работы вы обнаружите, что хотя бы минимальный шаблон действительно будет очень кстати.

И если вы застряли на чем-то, помните, что вы всегда можете типизировать что- нибудь как any. Any – ваш новый друг. А теперь перейдем непосредственно к примерам.
Читать дальше →
Total votes 33: ↑29 and ↓4+25
Comments7

'Hello World' вам в облако

Reading time69 min
Views25K

Мир сходит с ума, заталкивая калькулятор для 2+2 в облака. Чем мы хуже? Давайте Hello World затолкаем в три микросервиса, напишем пару-тройку тестов, обеспечим пользователей документацией, нарисуем красивый пайплайн сборки и обеспечим деплой в условный облачный прод при успешном прохождении тестов. Итак, в данной статье будет показан пример того, как может быть построен процесс разработки продукта от спецификации до деплоя в прод. Инетересно? тогда прошу под кат

Total votes 66: ↑65 and ↓1+64
Comments47

Debian + Postfix + Dovecot + Multidomain + SSL + IPv6 + OpenVPN + Multi-interfaces + SpamAssassin-learn + Bind

Reading time28 min
Views29K
Данная статья о том как настроить современный почтовый сервер.
Postfix + Dovecot. SPF + DKIM + rDNS. С IPv6.
С шифрованием TLS. С поддержкой нескольких доменов — часть с настоящим SSL сертификатом.
С антиспам-защитой и высоким антиспам-рейтингом у других почтовых серверов.
С поддержкой нескольких физических интерфейсов.
С OpenVPN, подключение к которому через IPv4, и которое даёт IPv6.

Если вы не хотите изучать эти все технологии, но хотите настроить такой сервер — тогда эта статья для вас.

В статье отсутствуют попытки пояснить каждую деталь. Пояснение идёт к тому, что настроено не стандартно или важно с точки зрения потребителя.
Читать дальше →
Total votes 34: ↑30 and ↓4+26
Comments31

Как я переписывал поисковик авиабилетов с PHP на NodeJS

Reading time12 min
Views18K

Привет. Меня зовут Андрей, я студент-магистрант в одном из технических ВУЗов Москвы и по совместительству очень скромный начинающий предприниматель и разработчик. В этой статье я решил поделиться своим опытом перехода от PHP (который когда-то мне нравился из-за своей простоты, но со временем стал ненавидим мною — под катом объясняю почему) к NodeJS. Здесь могут приводиться очень банальные и кажущиеся элементарными задачи, которые, тем не менее, лично мне было любопытно решать в ходе моего знакомства с NodeJS и особенностями серверной разработки на JavaScript. Я попытаюсь объяснить и наглядно доказать, что PHP уже окончательно ушёл в закат и уступил своё место NodeJS. Возможно, кому-то даже будет полезно узнать некоторые особенности рендеринга HTML-страниц в Node, который изначально не приспособлен к этому от слова совсем.

Читать дальше →
Total votes 67: ↑18 and ↓49-31
Comments89

Авторизация клиентов в nginx посредством SSL сертификатов

Reading time4 min
Views135K

Введение:


Потребовалось мне тут как-то написать небольшой API, в котором необходимо было помимо обычных запросов принимать запросы с «высокой степенью секретности».
Не я первый с этим столкнулся и мир давно уже использует для таких вещей SSL.

Поскольку на моём сервере используется nginx, то был установлен модуль SSL
Гугл не выдал ни одного работоспособного howto, но информация в сети есть по частям.

Итак, пошаговое руководство по настройке nginx на авторизацию клиентов через SSL-сертификаты.
Читать дальше →
Total votes 41: ↑34 and ↓7+27
Comments32

Настройка reverse proxy для Nextcloud и ONLYOFFICE

Reading time4 min
Views23K

Привет, Хабр!


Я занимаюсь тестированием редакторов документов ONLYOFFICE, а также тестированием интеграции редакторов в сторонние сервисы. К нам часто обращаются пользователи с различными проблемами при настройке, решения которых просто так не найти.


Одна из самых популярных интеграций — с open-source системой Nextcloud, которая позволяет создать свое облачное хранилище. К примеру, у вас есть документы, таблицы и презентации, которыми вы хотите поделиться с другими пользователями, и сервер (как вариант — тачка в DigitalOcean). Вы устанавливаете туда Nextcloud (или ownCloud, от которого он, собственно, форкнулся), подключаете редакторы документов и получаете возможность работать с этими документами совместно.


Большинство вариантов интеграции описаны у нас в документации. Но иногда всплывают интересные пользовательские кейсы. Например такой: как сконфигурировать прокси-сервер для Nextcloud и ONLYOFFICE в случае, если все три сервиса установлены на разных серверах (Nextcloud, редакторы, прокси). Такое может произойти, если существует сложная система, где и редакторы документов, и система управления документами являются частью бОльшей системы с множеством сервисов.

Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments9

Как работать с async/await в циклах JavaScript

Reading time3 min
Views149K

Как запустить асинхронные циклы по порядку или параллельно в JavaScript?


Перед тем, как делать асинхронную магию, я хочу напомнить как выглядят классические синхронные циклы.

Читать дальше →
Total votes 31: ↑24 and ↓7+17
Comments33

Мы хотим заменить девопсов скриптом (на самом деле нет): разработчики, нужно ваше мнение

Reading time6 min
Views14K

Мы делаем проект облака для разработки — платформу, способную максимально упростить жизнь девопсам, разработчикам, тестировщикам, тимлидам и другим вовлеченным в процесс разработки специалистам. Это продукт не для сейчас и не для завтра, и потребность в нём только-только формируется.

Основная идея — вы можете разворачивать конвейер с уже преднастроенными инструментами, но при этом с возможностью внесения целого ряда настроек, и вам останется только деплоить код.
Читать дальше →
Total votes 48: ↑43 and ↓5+38
Comments32

Реализация программной платформы защищённого NAS

Reading time36 min
Views48K


В предыдущей статье было описано проектирование программной платформы NAS.
Настало время её реализовать.

Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments2

Создание пользовательских компонент для Bootstrap 4

Reading time10 min
Views14K


Общественное мнение перевело Bootstrap в категорию легендарных фреймворков прошлого, но следить за ним все ещё стоит. Bootstrap 4 — отличный навигатор по безопасной верстке, и главное, образец HTML over JS подхода к созданию веб-приложений, в полной мере раскрывает существующие возможности HTML для декларативного описания интерфейса пользователя.


И о том как развивается JavaScript код фреймворка тоже полезно иметь представление. Архитектура jQuery плагинов все еще используется но с 4ой версии это завернутые Rollup'ом в пакет классы ES6 транспиленные при помощи Babel6. jQuery вероятно скоро и не будет вовсе — об этом позже — а пока, на примере создания собственного плагина BsMultiSelect, на том же стёке что и Boostrap 4, будут раскрыты особенности развития фреймворка.

Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments0

SEO оптимизация статьи: актуальный план

Reading time12 min
Views105K

Осторожно! Лонгрид.


Речь пойдет об оптимизации страницы статьи для поисковых систем. Данный материал больше подходит для продвижения в Яндексе.


Специально для Хабровцев, в заключении есть список всех разделов применимых к Хабрастатьям.


27.04.2018 UPD// Эта страница уже в ТОПе Яндекса "оптимизация статьи". И в топе Google.


SEO оптимизация статьи
Читать дальше →
Total votes 29: ↑21 and ↓8+13
Comments24

Дайджест свежих материалов из мира фронтенда за последнюю неделю №305 (5 — 11 марта 2018)

Reading time4 min
Views16K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.


Читать дальше →
Total votes 42: ↑40 and ↓2+38
Comments1

Дайджест свежих материалов из мира фронтенда за последнюю неделю №302 (12 — 18 февраля 2018)

Reading time3 min
Views14K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.

Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments2

Telegram боты. Загружаем файлы больше 50мб

Reading time3 min
Views85K

Telegram боты позволяют автоматизировать многие процессы. Их использование не ограничивается одним чатом, по сути — бот это всего лишь интерфейс ввода-вывода, который помимо текста также может принимать и передавать файлы: изображения, видео, аудио, документы…

  • Для пользователей максимальный размер файла — 1.5Гб
  • Боты ограничены размером всего лишь в 50мб

Как обойти данное ограничение — под катом.
Читать дальше →
Total votes 27: ↑21 and ↓6+15
Comments7

Server side rendering на Vue.js

Reading time9 min
Views41K

Сравнительно недавно Vue.js обзавёлся полноценной поддержкой серверного рендеринга. В интернете довольно мало информации о том, как его правильно готовить, так что я решил подробно описать процесс создания необходимой среды для разработки приложения с SSR на Vue.js.


Всё, о чём пойдёт речь, реализовано в репозитории на github. Я буду часто ссылаться на его исходники и, собственно, попытаюсь объяснить, что происходит и зачем это нужно :)


В статье будут описаны достаточно общие для SSR подходы (если вам просто нужно что-то готовое для использования, то вы можете посмотреть в сторону Nuxt.js), так что вполне вероятно, что сказанное ниже можно будет частично или полностью применить и к другим фреймворкам/библиотекам типа Angular и React.

Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments37

Динамическая загрузка шаблона Vue компонента

Reading time4 min
Views20K
Доброго времени суток, уважаемые Хабровчане! С недавнего времени, мы, в нашей команде начали использовать фреймворк Vue.js включая серверный рендеринг, после чего столкнулись с рядом проблем, в частности для меня как программиста.

Любое изменение в верстке сайта, происходило через меня. Мне скидывали часть html кода, будь то изменение заголовка, или смена мест блоков, далее было необходимо вставить эту часть в требуемый компонент, подставить необходимые переменные и методы, запустить webpack, залить код на сервер.

Можно было бы использовать на сервере webpack в режиме наблюдения, или дать перечень необходимых команд своим коллегам, что для них оказывается несколько сложным.
Поэтому приняли решение сделать динамическую загрузку шаблона с помощью получения данных с сервера.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments11
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity