Все потоки
Поиск
Написать публикацию
Обновить
208.73

JavaScript *

Прототипно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Дополнение к Litchi

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров752

Почитав эту статью: https://habr.com/ru/articles/684858 (особенно заинтересовали Waypoints) и обзаведясь коптером DJI, пришел к выводу - да, классно, здорово, но не удобно. Если стоит задача облететь и снять видео поля площадью пару десятков гектаров, то ставить ручками точки маршрута не очень удобно. Занимает много времени.
///

Читать далее

Разворачиваем приложение Next.js с базой данных PostgreSQL и задачей Cron на облачном сервере Ubuntu Linux

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров6.2K


Привет, друзья!


Предположим, что у нас есть приложение Next.js, данные которого хранятся в Postgres, и мы хотим запустить его в продакшн, но не хотим использовать готовую инфраструктуру Vercel. Что делать? Создать собственную инфраструктуру. К счастью, сделать это не так уж и сложно.


Основные элементы нашей системы:


  • приложение, демонстрирующее несколько мощных возможностей Next.js 15
  • база данных Postgres для хранения списка задач, создаваемых/удаляемых в приложении
  • задача Cron для удаления из БД всех задач каждые 10 мин
  • приложение, БД и задача Cron функционируют в контейнерах Docker
  • контейнеры запускаются с помощью Docker Compose на облачном сервере Ubuntu
  • сервер Nginx для перенаправления запросов HTTP (обратного проксирования)
  • домен, привязанный к серверу
  • Certbot для получения сертификата SSL из Let's Encrypt и его установки для домена

Демо приложения.


Интересно? Тогда прошу под кат.

Читать дальше →

Распознавание капчи токеном или кликами, что быстрее? Сравнение методов на практике

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.6K

Оченьчасто по работе сталкиваюсь с различными сервисами для упрощения работы в различных сферах. Речь сейчас не про сервисы, типа Кей Коллектор или Ахрефс, а про Zennoposter или BAS — я не являюсь профессором в области автоматизации, объясню просто, как я понимаю — указанные сервисы это своего рода сложная многоуровневая оболочка, на базе которой можно создавать любые боты и скрипты, которые могут решать практически любые задачи без человеческого вмешательства. То есть нейросеть на минималках. И кстати, появились подобные сервисы еще задолго до того, как использование нейросети для повседневных задач стало мэйнстримом.

Теперь к теме: Копаясь в недрах BAS я столкнулся с такой ситуацией, что многие разработчики, которые занимаются разработкой скриптов по BAS (смешно получилось — разработчики занимаются разработкой) идеализируют распознавание капчи кликами.

Вероятно надо пояснить — речь идет про картинные и визуальные капчи (те, где нужно выбирать изображения на экране или кликать по картинкам (иконкам) в нужном порядке. Примеры картинных и визуальных капч — reCAPTCHA V2, hCaptcha, GeeTest CAPTCHA, Rotate CAPTCHA.

Так вот, эти капчи можно решить двумя способами — метод токенов и метод кликов. 

Читать далее

Рецензия на книгу “Изучаем паттерны проектирования JavaScript, 2-е издание”

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров5.7K

Когда автор Адди Османи написал первую версию книги Learning JavaScript Design Patterns в 2012 году, JavaScript еще начинал завоевывать популярность как язык для создания сложных веб-приложений. С тех пор JavaScript претерпел значительные изменения и превратился в один из самых популярных языков программирования, используемый для разработки от простых скриптов до сложных веб-приложений. Если вы совершенствуетесь в JavaScript — не пропустите второе издание этой книги в переводе от издательства БХВ Петербург.

Читать далее

Безопасность во Frontend или как пройти все круги Данте

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.2K

Здравствуйте. Сегодня обсудим безопасность, безопасную разработку и как получать документы, подтверждающие, что ваш продукт безопасен. Возникает резонный вопрос: зачем это вообще нужно? Ну, так как текущие реалии диктуют свои условия. И речь даже не о сложившейся геополитической ситуации в мире. А о том, что все больше и больше желающих получить то, что им не принадлежит. Будь то персональные данные, деньги, имущество, аккаунты игр (да-да, это тоже стоит денег), и в общем всё, что не прибито гвоздями.


Многие скажут, что на фронте всё безопасно, и что я сгущаю краски. Так как весь исполняемый код, по факту, находится у клиента в браузере. Отчасти соглашусь, но напомню, что фронт является дверью в бэк, а как мы все знаем, любая дверь, так или иначе, может быть открыта.


Следует помнить, что не всем подходит просто сказать: “У нас всё безопасно. Доверяйте нам!” Может, кому-то открою тайну, но бизнес так не работает. Бизнес хочет подтверждения безопасности. А это значит, получения сертификата соответствия в надлежащих органах, что само по себе отдельный вид девиации, но об этом позже.


Тема большая, неоднозначная. Постараюсь захватить как можно меньше от других частей систем (бек, тестирования, БД и т.д.). Но напоминаю, что безопасность — это комплексное мероприятие, в чем вы убедитесь позже, а сейчас по пунктам.

Читать дальше →

Почему мы выбрали gRPC вместо tRPC?

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров11K

🛠️ Почему мы выбрали gRPC вместо tRPC

При разработке крупных приложений на основе Domain Driven Design переход от монолита к микросервисам требует сохранения принципов ООП для поддержки кода. gRPC предоставляет ряд преимуществ перед tRPC: возможность использования Golang для высоконагруженных компонентов, отказ от паттерна роутера в пользу прямых вызовов микросервисов, эффективную статическую типизацию через интерфейсы, децентрализованную архитектуру с возможностью частичного перезапуска микросервисов и автоматический мап методов классов без boilerplate кода.

Читать далее

Tech каналы Telegram

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.3K

Телеграм сейчас является основным источником контента для многих. У Хабра тоже есть канал t.me/habr_com, его читает более 100 000 подписчиков. Кроме этого, о технологиях есть тысячи других каналов. Сколько их? Какая у них аудитория? Где найти данные? Разберемся в статье.

Стало интересно сделать анализ всех телеграм каналов: подписчики, рейтинги, частота статей, процент репостов, процент рекламы и т.д., поэтому посмотрел как можно достать данные. Забегая вперёд, скажу что собрал датасет со всеми телеграм каналами, в том числе и каналы с одним подписчиком. Их около 2 млн по всем гео. Какого-то сервиса, где можно сразу быстро и просто взять все каналы и набор метрик по ним, я не нашел, поэтому посмотрел что есть из готовых данных.

Существуют агрегаторы данных телеграм типа tgstat (https://tgstat.ru/). Один из способов - парсинг данных агрегаторов. Варианты с ботами, виртуальными аккаунтами показались более затратными, поэтому парсил несколько агрегаторов.

Итак, посмотрел ряд агрегаторов, взял на пробу три датасемпла. Самым адекватным показался семпл tgstat, поэтому, остановился на нем. В сервисе надо регистрироваться по телеграм аккаунту. Контент динамический, то есть, подгружается по клику. В парсинге всех данных не было смысла - важно было посмотреть что получится на семплах. Спарсил несколько категорий RU домена.

Сегодня расскажу про tech каналы с этой страницы (https://tgstat.ru/tech). Это каналы категориии 'Технологии', Россия. Периодически читаю каналы этой категории, ну и канал Хабра там есть. Поэтому, реллевантно будет здесь расказать именно о технологических каналах.

Читать далее

Почему я не готовлюсь к алгоритмическому интервью

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров50K

Почему я не готовлюсь к алгоритмическому интервью

И не очень люблю людей, которые к нему готовы. Когда я провожу интервью, то главное - это понять как человек думает и как решает проблемы.

К собеседованию

Расширения VSCode для комфортной работы с проектами

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров46K

Для работы с проектами существует куча редакторов кода и IDE (VSCode, NeoVim, SublimeText, WebStorm и т.д.). В данный момент наиболее популярны VSCode и Webstorm и у каждого есть свои плюсы и минусы. Webstorm является примером прекрасного IDE от компании JetBrains, где многие вспомогательные модули идут “из коробки”. К сожалению, сейчас нет возможности легально получить доступ к этому продукту гражданам России, поэтому многим приходится искать альтернативу. Такой альтернативой вполне может стать Visual Studio Code от компании Microsoft, который имеет открытую кодовую базу, полностью бесплатный и гибко настраиваемый под ваши нужды. В данной статье мы рассмотрим пример настройки рабочего пространства VSCode для комфортной работы с нашими проектами. Я покажу вам, какими расширениями я пользуюсь для лучшего удобства и продуктивности. Эти расширения я использую давно и они хорошо зарекомендовали себя, но возможно некоторые из них могут не подойти под ваш стиль работы и написания кода. Итак, начнем!

Читать далее

Как организовать сериализацию в Redux и избежать ошибки: non-serializable value

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.5K

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

Читать далее

Outstatic CMS для персонального блога на Next.js: Легко и Быстро

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.6K

Решил сделать небольшой проект для статей. Для разработки я выбрал Next.js, создал структуру проекта и пошел думать над тем, как мне будет проще и удобнее публиковать и редактировать статьи.
В итоге нашел новую и легковесную CMS — Outstatic, разработанную для управления контентом с использованием Markdown. О ней и пойдет речь в этой статье.

Читать далее

7 популярных библиотек Vue 3 UI-компонентов, которые заслуживают внимания

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров17K

UI-компоненты — это один из базовых инструментов, необходимых фронтенд-разработчику для быстрого создания интерфейсов. Они помогают ускорить разработку и упростить поддержку кода. В этой статье представлен обзор нескольких популярных библиотек компонентов для Vue 3. Библиотеки перечислены в произвольном порядке.

Читать далее

Инструменты робота, торгующего на Московской бирже через API брокера

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров2.4K

Поскольку я хочу использовать для среднесрочной алгоритмической торговли на российском рынке робота, то мне необходимо получать от брокера актуальную информацию о текущих ценах и сопутствующую информацию:

📍 Время работы биржи.
📍 Основную информацию об инструменте через InstrumentsService/GetInstrumentBy.
📍 Последнюю котировку по инструменту через MarketDataService/GetLastPrices.
📍 Торговые лоты - это определенное количество акций, которые можно купить или продать в рамках одной сделки.
📍 Свечи по инструменту для разных временных интервалов через MarketDataService/GetCandles.
📍 Технические индикаторы через MarketDataService/GetTechAnalysis.
📍 Понятное имя инструмента через InstrumentsService/FindInstrument.

Для начала торговли на бирже частному инвестору необходим брокерский счёт. Но лишь у немногих российских брокеров есть собственные API (например, ФИНАМ, Алор, Тинькофф Инвестиции). По личным предпочтениям я решил использовать API от T-Банк (ранее известный как Тинькофф), работая в среде исполнения JavaScript Node.js.

В статье приведена ссылка на GitHub с кодом робота.

Вкалывают роботы, а не человек!

Ближайшие события

Зачем нам Node.js или Angular на бэкенде

Время на прочтение6 мин
Количество просмотров7.4K

Всем привет! Меня зовут Александр, я разрабатываю low-code платформу Eftech.Factory в компании Effective Technologies. В этой статье я хочу поделиться тем, как и почему в стеке нашего продукта появился Node.js. Рассмотрим одно из основных преимуществ Node.js (внезапно это JavaScript) и то, как он помогает нам сэкономить время в два раза на разработку и сопровождение.

Из-за названия статьи может возникнуть путаница: чаще всего, когда речь идет об Angular на бэкенде, подразумевается Server Side Rendering (SSR). Однако в данной статье мы не будем обсуждать SSR, а сосредоточимся на переиспользовании кода и использовании Angular на бэкенде. Давайте начнем! 

Читать далее

Разница между ранним и поздним связыванием

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров7.2K

В этой публикации я "на пальцах" попытаюсь объяснить, чем отличается раннее и позднее связывание кода для обычного программиста. Не для компилятора или статического анализатора, а для человека, который пишет JavaScript/TypeScript-код. Ну и немножко попиарюсь в конце.

Читать далее

Новый этап эволюции Vue — Vapor

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров17K

19 октября 2024 года завершился Vue Fes Japan 2024 — традиционное событие, которое собрало множество энтузиастов и экспертов в области веб-разработки, где рассказывали о будущем экосистемы вью. На этой конференции разработчик Кевин Денг подробно представил новый этап в эволюции фреймворка Vue — Vapor Vue. Ожидается, что Vapor Vue значительно повысит скорость работы фреймворка, делая его еще более эффективным и мощным инструментом для создания современных веб-приложений. Такой шаг в развитии не только обещает ускорение производительности, но и открывает новые горизонты для гибкости и адаптивности Vue в работе над сложными проектами. В данной статье мы расскажем о самом интересном в этой презентации.

Читать далее

Зачем искать палиндромы и вращать матрицы в поисках лучшей работы

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров5K

Привет, Хабр! Меня зовут Василий Беляев. Я руководитель группы разработки фронтенда в «Криптоните». В этой статье мы разберём три задачи из тех, которые можем задать на собеседованиях. Заодно обсудим, зачем вообще решать типовые задания при трудоустройстве, когда есть Google и ChatGPT.

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

Читать далее

Мой путь в мире веб-рендеринга: от статических страниц к гибридным архитектурам

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.5K

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

Читать далее

Тестирование фронтенд компонентов с jest-dom на видимость пользователю

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.1K

Решаем проблему с тестирование элемента что он виден пользователю или не виден.

Данное решение для reactjs проекта написано, но также работает и для других фреймворков, с которыми работает jest-dom

Читать далее

Знакомьтесь: input, output и model. Новые функции в Angular

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров8.5K

Привет всем! Меня зовут Егор Молчанов, я разработчик в компании Домклик.

Хочу рассказать вам о новых функциях Angular: input(), output() и model(). Они появивились сравнительно недавно и обещают в скором времени заменить привычные нам декораторы @Input и @Output. Разберëм, что они собой представляют, как использовать на практике, и как связаны с концепцией сигналов. Поехали!

Читать далее

Вклад авторов