Как стать автором
Обновить
313.3

Веб-разработка *

Делаем веб лучше

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

Заводить ли личный блог или сайт? Часть II. Конифгурация сервера с помощью Ansible

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

Пришло время продолжить цикл статей о запуске личного блога. На очереди конфигурация сервера с помощью Ansible.

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

Читать далее

Запилил 100 проектов на Go и вот что скажу

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

Когда начинаешь новый проект, то надо какое то время потратить чтобы подобрать подходящие библиотеки, подготовить структуру проекта, связать все воедино. Это занимает прилично времени. Целый день вполне может уйти. А экономить на этом шаге не стоит. Это ведь как фундамент. И вот, 5 лет назад я опубликовал каркас, который собрал для себя, чтобы делать с ним проекты на Go.

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

DI

По теме DI ко мне в чаще всего обращались с критикой, в том числе и коллеги. Поэтому с этого и начнем. В основном предлагали 2 идеи

Читать далее

Управление bluetooth из js или как я реверсинжинирил умный чайник

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

В статье описаны способы получения информации о подключении устройств по bluetooth. Проведен анализ обмена данными между чайником и официальным приложением, создано собственное веб приложение для управления умным чайником из браузера.

Читать далее

Локаторы. Стратегии поиска веб-элементов

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

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

Читать далее

Обсуждаем изменения в Go 1.24, мьютексы и пакет unsafe — открытие сезона митапов для гоферов в Москве

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

С приходом весны из-под сугробов снова начинают прорастать полезные митапы. На первой в сезоне Go-сходке от YADRO предлагаем присоединиться к обсуждению изменений Go 1.24. Эксперты из AvitoTech, Yandex и YADRO подискутируют, как обновления повлияют на код разработчиков. Также вы узнаете, как обеспечить высокопроизводительную конкурентность в Go и с умом применять пакет unsafe. 

Офлайн-участников ждет демозона с оборудованием для ЦОД и телеком-операторов, технические интерактивы и подарки. Регистрация открыта!

Читать далее

Полезные ресурсы по Python, которые я собрал

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

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

Мои изыскания показали, что меня и большинство других людей (чьи статьи я нашел) во-первых интересует обучение. Таких ссылок получилось больше всего. На втором месте - сообщества и мероприятия. На третьем -  поиск работы. Еще меня интересовала тема наставничества и менторства, нашел несколько ссылок и на эту тему.

Читать далее

Serverless-трекер поездов метро

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

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

График поездов метро Нью-Йорка можно посмотреть на mta-trmnl.pages.dev. Исходный код моего проекта выложен на GitHub: фронтенд, бэкенд.

▍ Я безголовый


Просыпаясь утром, я каждый раз смотрю погоду и график метро, а затем иду в душ и сразу забываю эту информацию. Выхожу из душа, проверяю её снова, но пока одеваюсь, снова всё забываю. Ищу телефон, разблокирую его, обновляю виджет погоды и виджет метро так часто, что телефон отключает Face ID и заставляет меня ввести пароль. Ко времени, когда я надеваю обувь, я уже опаздываю, а когда спускаюсь по лестнице, до следующего поезда остаётся десять минут. Это очень раздражает.

Мне показалось, что идеально было бы, чтобы эта информация была видна всегда, находилась в одном и том же месте (посередине квартиры), чтобы на разблокировку и забывание тратилось меньше времени и внимания.
Читать дальше →

tabs-broadcast — библиотека для синхронизации вкладок

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

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

Какие задачи помогает решить tabs‑broadcast? В современных веб-приложениях пользователь нередко открывает одну и ту же страницу в нескольких вкладках. Без координации эти вкладки работают изолированно: могут дублировать дорогостоящие операции (например, загрузку одних и тех же данных), создавать конфликты состояний (например, разные вкладки по-разному отображают авторизацию или настройки) и увеличивать нагрузку на сервер (несколько соединений от одного пользователя). Библиотека tabs-broadcast предоставляет механизм единого центра управления для таких случаев. Она позволяет одной «главной» вкладке выполнять критичные задачи (синхронизация с сервером, получение обновлений, запись в хранилище и т.п.), а другим вкладкам — получать результаты и уведомления от неё. Для разработчиков это означает более простой код для синхронизации вкладок и избавление от ручного использования низкоуровневых API.

Почему это полезно? Во-первых, улучшение UX: пользователь всегда видит актуальное состояние во всех открытых окнах приложения. Во-вторых, оптимизация ресурсов: за счет того, что тяжелые операции выполняются только в одном экземпляре, снижается нагрузка на браузер (меньше потоков, соединений, таймеров) и на сервер (меньше дублирующих запросов). В-третьих, упрощается разработка функционала, требующего взаимодействия между вкладками (не нужно изобретать собственный велосипед на базе localStorage или postMessage). Библиотека предоставляет готовые инструменты для регистрации обработчиков событий и широковещательной рассылки сообщений, позволяя фокусироваться на логике приложения, а не на тонкостях межвкладочного взаимодействия.

Читать далее

«Идти в программисты сегодня — большая ошибка»: откровения техноблогера Михаила Ларченко

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

Что общего между космонавтом и программистом? Скоро эти профессии станут в равной степени бессмысленным выбором для карьеры. В интервью Youtube-каналу Ai4dev автор одного из самых интеллектуальных IT-каналов на YouTube, Fullstack-разработчик Михаил Ларченко рассказал, как искусственный интеллект уже переворачивает индустрию с ног на голову, почему европейские модели могут оказаться лучше американских, и что делать разработчику, чтобы не оказаться выброшенным на обочину технологического прогресса. 

Читать далее

Ramda.js — библиотека, которая избавит вас от reduce и map-каши

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

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

Если вас когда-либо раздражало, что Array.prototype.map нельзя использовать для объектов или reduce постоянно требует передавать начальное значение, Ramda.js решает эти проблемы, делая код чище, декларативнее и удобнее.

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

Читать далее

Web 3 как замена Web 2 в стандартных задачах и есть ли в этом смысл

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

В этой статье я не буду говорить про NFT, про Ethereum и т.п. Я сосредоточусь на возможности и смысле перенести все доступное нам сейчас с Web 2 на Web 3.

Читать далее

GPT-4.5 для разработчиков: что нового, как интегрировать и использовать в бизнесе

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

GPT-4.5 – новейшая модель OpenAI GPT-серии, являющаяся самой крупной и «знающей» на сегодняшний день. Это трансформер-архитектура, масштабированная за счёт увеличения числа параметров и объёма обучающих данных по сравнению с предыдущими версиями. Модель обучена на суперкомпьютерах Azure с применением новых методов оптимизации архитектуры​. В результате GPT-4.5 получила более широкий world model – обширную базу знаний и глубокое понимание мира, что уменьшает случаи галлюцинаций и повышает надежность ответов по разным тематикам​. OpenAI отмечает, что GPT-4.5 не является принципиально новой «фронтирной» моделью, а скорее развитием идей GPT-4: она не добавляет совершенно новых возможностей, но значительно усиливает общую производительность и качество взаимодействия​.

Ключевые особенности GPT-4.5 включают:

Читать далее

Общий обзор Telegram Mini App: особенности, преимущества, ограничения и примеры

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

Telegram Mini App — встроенное в мессенджер веб-приложение, которое дает возможность пользоваться сервисом без установки отдельных программ. Это позволяет иметь удобный сервис, интегрированный с экосистемой мессенджера, будь то интернет-магазин, система бронирования и др.

Мы написали общий обзор данного приложения, его возможности, первые шаги к созданию и существующие примеры.

Читать далее

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

Virtual generated columns в PostgreSQL 18

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

В PostgreSQL 18 добавят виртуальные сгенерированные столбцы (комит).


Ранее PostgreSQL уже поддерживал сгенерированные столбцы (начиная с версии 12), но только в варианте STORED, когда результат вычислений сохраняется в таблице. Теперь появилась возможность вычислять значения "на лету" при чтении, что экономит место и даёт больше гибкости в проектировании схем данных.


Как создать виртуальный столбец?

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

WebSocket для начинающих системных аналитиков: просто о сложном. Часть 1

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

Меня зовут Юля, я системный аналитик в компании EvApps. Эта статья для начинающих системных аналитиков, которые хотят понять основы WebSocket.

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

В этой статье, я простыми словами расскажу, что такое WebSocket, и почему вам, как начинающему системному аналитику, важно знать о них.

Читать далее

Учимся Flask: как написать своё веб-приложение

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

Привет, будущий разработчик! Сегодня создадим первое полноценное веб-приложение на Flask с нуля.

Ты, наверное, слышал, что сайты и веб-приложения — это сложно. Что нужно знать кучу языков, писать километры кода и сидеть ночами над багами. Но на самом деле, всё гораздо проще, если у тебя есть правильный инструментарий.

Сегодня мы разберём Flask — лёгкий, но мощный фреймворк для Python, который позволит буквально за пару часов написать веб-приложение с формами, обработкой данных и HTML-шаблонами.

Читать далее

Смотрим на GigaIDE Cloud для Jupyter

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

В GitVerse неделю назад выкатили новую версию GigaIDE Cloud - рабочую станцию разработчика по запросу, сделанную на базе Visual Studio Code. В мире (например, Microsoft) уже давно пробуют подходы к этой истории, например, чтобы что-то сделать быстро сделать или протестировать, либо вообще дать временный доступ, скажем, разработчику в подрядчике.

GigaIDE Cloud — разработка СберТеха на основе Visual Studio Code. Есть еще GigaIDE Desktop, она на основе JetBrains Idea, но не является темой для изучения в этой заметке. Когда-то мне нужно было пороазбираться быстро с ноутбуком, попробовать его, и сделать все это быстро. GigaIDE Cloud выложили пример как раз с Jupyter, работу которого мне показалось интересным попробовать и, что важно, посмотреть, насколько оперативно получится это сделать.

Читать далее

Popover = hint

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

Chrome 133 развивает существующую функцию всплывающих подсказок, представляя новый режим: popover="hint". Этот режим, управляемый браузером, позволяет использовать новый контекст наложения, упрощающий создание всплывающих подсказок и подобных эфемерных плавающих элементов. Он снижает трудозатраты разработчиков, сохраняя гибкость дизайна.

Читать далее

Centrifugo v6 + FastAPI + Python: разрабатываем веб-опросник с обновлениями в реальном времени

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

В прошлой статье я показал, как создать мини-чат с комнатами на FastAPI и WebSockets. Но что, если есть более мощное и удобное решение для Real-time? В этот раз разберем Centrifugo – технологию, которая берет на себя всю работу с WebSockets и масштабированием!

В статье мы разберем теорию, а затем на практике разработаем веб-приложение-опросник, где результаты обновляются в реальном времени без перезагрузки страницы. А в финале – деплой на Amvera Cloud.

Готовы прокачать свои навыки? Тогда вперед!

Читать далее

Next.js 15 в Hikasami: Глубокая оптимизация рендеринга, загрузки данных и производительности

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

В эпоху цифрового контента каждая миллисекунда загрузки страницы может существенно повлиять на пользовательский опыт. В Hikasami, платформе, предоставляющей потоковое аниме и азиатские медиа для пользователей СНГ, наша цель — обеспечить мгновенную загрузку страниц, минимизировать задержки, а также гарантировать актуальность данных. Для этого мы внедрили Next.js 15, который открыл перед нами возможности глубокой оптимизации:

Читать далее