Таков webdev – Telegram
Таков webdev
57 subscribers
33 photos
2 videos
63 links
Пишу про свои проекты, делюсь полезными ссылками про webdev и мыслями о разработке

Автор: @sqlzzyy
Download Telegram
Поддержка синтаксиса диапазона медиазапросов

Синтаксис диапазона медиазапросов с использованием обычных математических операторами сравнения: >, <, >= или <=, теперь поддерживается всеми популярными браузерами.

Пример: @media (360px <= width <= 720px) эквивалентен @media (min-width: 360px) and (max-width: 720px).

Ссылка: https://caniuse.com/css-media-range-syntax

#aboutwebdev_css
👍1
Подключение npm-пакета без установки

Для своего небольшого проекта не хотел устанавливать npm-пакеты. Подключил их через import в js-файле с указанием ссылки на cdn пакета.

Пример:
import axios from "https://cdn.jsdelivr.net/npm/axios@1.4.0/dist/axios.min.js"

Ссылка на сайт: https://www.jsdelivr.com

#aboutwebdev_js #aboutwebdev_рекомендация
👍1
Сервер ExpressJS + Socket.io

В голове постоянно появлялась мысль написать мультиплеерную мини-игру.
Какая же мультиплеерная игра без сервера?! Поэтому предыдущий месяц-полтора провел за изучением ExpressJS, Socket.io.

С радостью представляю свой сервер на ExpressJS + Socket.io.

Что сервер умеет:
- создавать комнаты;
- добавлять пользователей в комнату по ID-комнаты;
- обрабатывать передачу права хоста следующему игроку при выходе текущего из комнаты;
- обрабатывать передачу права хоста следующему игроку при нажатии кнопки "End" (конец раунда);
- обновлять список игроков в комнате в live-режиме;
- удаление комнаты после выхода последнего игрока;
- перенаправлять на главную страницу дубль вкладки страницы игрока.

Socket.io создает для каждой страницы свой уникальный id. С учетом этого условия, сервер сохраняет id игрока при переходе с главной страницы на страницу игрока.

Сервер станет фундаментом для создания ваших мультиплеерных мини-игр!

Ссылка на репозиторий: https://github.com/sqlzzy/socket-express-server

#aboutwebdev_личныйпроект #aboutwebdev_конфиги #aboutwebdev_опенсорс
👍1
Запуск сервера ExpressJS + Socket.io

Ссылка на репозиторий сервера: https://github.com/sqlzzy/socket-express-server

Ссылка на мой твиттер: https://twitter.com/sqlzzy

#aboutwebdev_личныйпроект #aboutwebdev_конфиги #aboutwebdev_опенсорс
Написать пост про деплой сервера на сайте?
Anonymous Poll
100%
Интересно
0%
Не интересно
Сервер ExpressJS + Socket.io. v2.0

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

После выхода обновления приступлю к статье про деплой сервера на сайте.

Всем кода без легаси и багов!

#aboutwebdev_личныйпроект #aboutwebdev_конфиги #aboutwebdev_опенсорс #aboutwebdev_анонс
👍2
Сервер ExpressJS + Socket.io. v2.0

С радостью представляю сервер v2.0 с нововведениями!

Вот некоторые из них:
- добавлена 404 страница;
- обновление в реальном времени списка игроков в комнате;
- отображение различных ошибок;
- новая файловая структура проекта.

Остальные нововведения можно прочитать в CHANGELOG.md

Ссылка на гитхаб проекта: https://github.com/sqlzzy/socket-express-server

Мой твиттер: https://twitter.com/sqlzzy

Всем кода без легаси и багов!

#aboutwebdev_личныйпроект #aboutwebdev_конфиги #aboutwebdev_опенсорс
👍1
Моя первая мультиплеерная игра. "Самый быстрый расшифровщик"

На основе своей платформы написал мультиплеерную игру "Самый быстрый расшифровщик".

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

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

Ссылка на игру: https://encryption-game.sqlzzy.dev

Всем кода без легаси и багов!

#aboutwebdev_личныйпроект
80👍3
Анонсы

Несколько анонсов:
1) Скоро выложу в открытый доступ (на гитхаб) код своей игры "Самый быстрый расшифровщик".
Ссылка на игру: https://encryption-game.sqlzzy.dev

2) Добавлю некоторые нововведения в платформу.
Ссылка на платформу: https://github.com/sqlzzy/socket-express-server

3) Позже выложу на гитхаб код для создания своего телеграмм бота с возможностью создавать список желаний, управлением списком (добавление, удаление) и другими функциями.

Всем кода без легаси и багов!

#aboutwebdev_личныйпроект #aboutwebdev_опенсорс #aboutwebdev_анонс
👍4
Открытый код игры "Самый быстрый расшифровщик"

Выложил код игры "Самый быстрый расшифровщик" в гитхаб: https://github.com/sqlzzy/encryption-game

Игра на писана на платформе: https://github.com/sqlzzy/socket-express-server

Ссылка на игру: https://encryption-game.sqlzzy.dev

Приятной игры!

Всем кода без легаси и багов!

#aboutwebdev_личныйпроект #aboutwebdev_опенсорс
👍4
Новый домен

Переехал на новый домен: https://sqlzzy.dev/

Игра "Самый быстрый расшифровщик" теперь размещается по адресу: https://encryption-game.sqlzzy.dev/

Всем кода без легаси и багов!

#aboutwebdev_блог
👍3
Нововведения в сервере ExpressJS + Socket.io. v2.1.0

Второй пункт из списка анонсов готов.

Нововведения в платформе:
1) создание списка игроков, находящихся в раунде;
2) отображение списка игроков в раунде;
3) отображение сообщений о статусе игры для игроков;
4) функция ожидания для новых игроков в комнате после начала раунда;
5) стили для всех страниц.

Ссылка на платформу: https://github.com/sqlzzy/socket-express-server

Всем кода без легаси и багов!

#aboutwebdev_личныйпроект #aboutwebdev_конфиги #aboutwebdev_опенсорс
👍2
Telegram бот

Третий пункт из списка анонсов готов.

Написал Telegram бота для создания списка желаний.

Возможности бота:
1) Сортировка желаний по категориям:
- исполненные,
- неисполненные;
2) Просмотр списков желаний;
3) Управление навигацией списка желаний;
4) Добавление, удаление или отмечание желания, как исполненное.

Более подробная информация по боту и его запуску находится по ссылке.

Код бота: https://github.com/sqlzzy/wishlist-telegram-bot

Всем кода без легаси и багов!

#aboutwebdev_личныйпроект #aboutwebdev_боты #aboutwebdev_опенсорс
👍4
Пост с советами по созданию телеграм-ботов

Разрабатывая телеграм-бота, я изучал и искал информацию о том, как его сделать лучше.

Мне попался пост с описанием распространненых ошибок при его реализации.

Каждый сможет для себя выделить интересные моменты при написании своего телеграм-бота.

Ссылки:
Часть 1: https://vc.ru/dev/353847-pora-delat-normalnyh-telegram-botov

Часть 2: https://vc.ru/dev/383602-pora-delat-normalnyh-telegram-botov-2

Часть 3: https://vc.ru/dev/776308-pora-delat-normalnyh-telegram-botov-3

Всем кода без легаси и багов!

#aboutwebdev_моярекомендация
👍3
Скрипт для обновления устаревших пакетов в package.json

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

Для того, чтобы не упустить из виду каждый устаревший пакет из package.json, написал скрипт для его обновления:


import { exec } from "child_process";
import { promisify } from "util";

const execPromise = promisify(exec);

function execAsync(command) {
  return new Promise(function (resolve, reject) {
    exec(command, (error, stdout, stderr) => {
      if (stderr !== "") {
        reject(stderr);
      } else {
        resolve(stdout);
      }
    });
  });
}

async function updatePackages() {
  try {
    const packages = await execAsync("npm outdated --depth=0 --json");

    const outdatedPackages = JSON.parse(packages);
    const packagesToUpdate = Object.keys(outdatedPackages);

    if (packagesToUpdate.length === 0) {
      console.log("Все пакеты уже обновлены!");
      return;
    }

    const updateCommands = packagesToUpdate.map(
      (pkg) => `npm install ${pkg}@latest`
    );
    const updateResults = await execPromise(updateCommands.join(" && "));

    if (updateResults.stderr) {
      throw new Error(updateResults.stderr);
    }

    console.log("Все устаревшие пакеты были обновлены до последней версии");
  } catch (error) {
    console.error("Произошла ошибка:", error);
  }
}

updatePackages();


Всем кода без легаси и багов!

#aboutwebdev_личныйпроект #aboutwebdev_конфиги
👍5