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

Автор: @sqlzzyy
Download Telegram
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
deps-updater

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

Установка: npm install --save-dev deps-updater

Запуск скрипта: npm run deps-updater

Предложения или найденные баги пишите сюда: https://github.com/sqlzzy/deps-updater/issues

Гитхаб: https://github.com/sqlzzy/deps-updater

npm: https://www.npmjs.com/package/deps-updater

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

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

Бывает ситуация, когда в процессе работы используются одни и те же знания и забывается другая немаловажная информация по разработке.

Чтобы периодически освежать в памяти знания по разработке, я сделал себе плейлист.

Постепенно он будет пополняться.

Ссылка: https://www.youtube.com/playlist?list=PLxupoDnGjaRzRzv0QkOh7nBmzOHdB-J7x

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

#aboutwebdev_личныйпроект #aboutwebdev_моярекомендация #aboutwebdev_веб
👍3
Забавный фейл с моим npm-пакетом

Вчера сел за пет-проект и решил обновить в нем зависимости с помощью своего npm-пакета deps-updater.
Оказалось, что пакет нельзя запустить в проекте.

Чтобы запускать из командной строки надо было создать файл index.js (к примеру) в папке bin с таким содержанием:

#!/usr/bin/env node

//инициализация скрипта


и если хотите глобально вызывать скрипт, то в package.json пакета нужно указать:

"bin": {
"deps-updater": "./bin/deps-updater.js"
}

После установки пакета нужно создать в package.json проекта в "noscripts" свою команду и указать путь до исполняемого скрипта:

"your_command": "./node_modules/deps-updater/bin/deps-updater.js"

Теперь можно запускать в консоли "npm run your_command" и deps-updater обновит устаревшие зависимости.

#aboutwebdev_личныйпроект #aboutwebdev_опенсорс #aboutwebdev_веб
👍2
Нововведения в игре

Пришла идея добавить qr-код ссылки в свою игру "Самый быстрый расшифровщик".
Сначала думал самому генерацию qr-кода написать, но потом, изучив информацию по структуре qr-кода, решил использовать готовую библиотеку для NodeJs — node-qrcode.

О нововведениях:
- табы для переключения способов поделиться игрой: ссылкой или qr-кодом (страницы лобби и игрока);
- менее насыщенный цвет контента, жирнее шрифт, больше межбуквенное расстояние;
- ссылка на код игры;
- open-graph метатеги.

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

Гитхаб игры: https://github.com/sqlzzy/encryption-game

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

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

#aboutwebdev_личныйпроект
👍2
Первая посещëнная конференция 😄

#aboutwebdev_митап
👍3
Олдскул шрифты

Недавно наткнулся на сайт с олдскульными шрифтами от IBM PC до разных производителей техники.

На сайте можно конфигурировать размер выбранного шрифта и видеть демо.

Представленные на сайте шрифты можно скачать по лицензии CC BY-SA 4.0 и использовать в своих пет-проектах.

Ссылка на сайт с олдскульными шрифтами: https://int10h.org/oldschool-pc-fonts/

#aboutwebdev_моярекомендация
👍1
Игра "Самый быстрый расшифровщик" v.2.0

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

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

Впереди интересные обновления!

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

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

Гитхаб игры: https://github.com/sqlzzy/encryption-game

P.S. Найденные баги пишите в https://github.com/sqlzzy/encryption-game/issues

#aboutwebdev_личныйпроект
👍2
Тень блока с градиентом

На досуге написал карточки с градиентыми бордерами и появлением градиентой тени при наведении на них.

Демо: https://codepen.io/sqlzzy/full/LYoPJeL

Мой кодпен с другими поделками: https://codepen.io/sqlzzy

Делитесь своими профилями кодпена в комментариях поста 👇

#aboutwebdev_кодпен
👍2
Блог

Первое упоминание о блоге датировано 28 августа 2022 года.

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

Блог: https://sqlzzy.dev/

Велком!

#aboutwebdev_блог
👍4
Полезности

Теперь документации, различные инструменты и ресурсы, которыми пользуюсь, находятся в одном месте!

Сделал разделы:
- документации;
- всяко-разно;
- ютуб;
- для вдохновения.

По мере встречи с новыми интересными ресурсами будут добавляться новые разделы (возможно 😁).

Ссылка: https://sqlzzy.dev/library/

Велком!

#aboutwebdev_блог
👍2
Интерактивное отображение Event Loop

В процессе изучения event loop нашел сайт, который помог мне закрепить теорию в интерактивной форме.

Можно вставить разные сценарии и посмотреть как будет работать цикл событий.

Ссылка: https://www.jsv9000.app/

_____________

Мой блог: https://sqlzzy.dev/
Полезности: https://sqlzzy.dev/library/

#aboutwebdev_js #aboutwebdev_моярекомендация
👍4
Второй митап 🤝

#aboutwebdev_митап
👍4
Третий митап 🤝

#aboutwebdev_митап
👍2
Русскоязычный Product Hunt

В последнее время стала интересна тема инди-проектов. В процессе исследования встретил сайт со стартапами и пет-проектами на русском языке.

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

Ссылка: https://productradar.ru/

#aboutwebdev_моярекомендация
👍3
Солидбук

Когда освежал знания о принципах ООП, встретил книгу от Саши Беспоясова и Артёма Самофалова про SOLID.

В каждом разделе описывается один принцип SOLID. В конце есть проверочные вопросы и материалы к разделу.

Ссылка: https://solidbook.vercel.app/

#aboutwebdev_моярекомендация
👍2
Новые новости

Скоро будет серия постов про мой новый проект и статьи.

Статьи:
- Как подключить проект на VPS на поддомене сайта;
- Как запустить телеграм-бота на VPS;

Проект:
Менеджер-бот для управления полезными ссылками.
С помощью бота добавляются новые ссылки и полезные ресурсы по категориям. Через каждый определенный интервал времени они будут появляться на странице сайта.

На данный момент страница с полезными ресурсами располагается по адресу: https://sqlzzy.dev/library/.
Вскоре полезные ресурсы будут располагаться по новому адресу: https://library.sqlzzy.dev/.

#aboutwebdev_анонс #aboutwebdev_личныйпроект #aboutwebdev_авторскаястатья
👍1
Менеджер-бот для управления полезными ссылками

Предыстория

Летом я создал страницу с полезными ресурсами.

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

Задался вопросом: как можно этот процесс сделать более удобным и быстрым?

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

Что же умеет бот?

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

Как происходит добавление ссылки на страницу?

Новые ссылки бот записывает в JSON-файл в список, соответствующий выбранному разделу.
Скрипт приложения через определенный интервал времени отправляет запрос на получение данных из JSON-файла.
Далее скрипт запускает перерисовку списка ресурсов с добавлением новой информации на страницу.
Done!

Технические моменты

Бот написан с помощью библиотеки node-telegram-bot-api на NodeJs.
Скрипт приложения написан на JS и работает на ExpressJs.
Бот и приложение расположены на VPS и запущены с помощью менеджера процессов pm2.

Подробнее о запуске проекта расскажу в своей статье.

Теперь полезные ресурсы расположены по новому адресу: https://library.sqlzzy.dev/

Прилагаю гифку с демонстрацией работы бота 👨‍💻

#aboutwebdev_личныйпроект #aboutwebdev_блог #aboutwebdev_боты
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1