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

Автор: @sqlzzyy
Download Telegram
Олдскул шрифты

Недавно наткнулся на сайт с олдскульными шрифтами от 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
Статья-инструкция "Запуск проекта на VPS" и анонс нового проекта

Ранее делал анонс статьи-инструкции по запуску приложения и бота на VPS.

Это моя первая статья-инструкция! 🍸

Немного истории

Последний раз запускал проект на VPS осенью прошлого года. Когда нужно было запускать менеджер-бота по управлению полезными ресурсами и приложение для него, то тяжело было вспомнить шаги как это сделать. 😄
В будущем написанная статья и для меня становится полезной!

P.S.

Так как использую VPS с установленной ОС Ubuntu и панель управления хостингом ISPmanager, то инструкция написана с учетом этих данных.

Статья-инструкция размещается по адресу: https://sqlzzy.dev/articles/setup-project-on-vps/

Новый проект

У меня скопилось много различных фото природы, пейзажей, архитектуры и, в целом, жизни. Хочу ими поделиться.

Поэтому в планах написать бота по управлению фотографиями по различным категориям на своём сайте.

Coming soon! 😎

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

#aboutwebdev_авторскаястатья #aboutwebdev_анонс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
IT Meetups Bot

В нашей реальности боты упрощают ознакомление с информацией в пару-тройку кликов.

Так пришла идея написать бота, помогающего ознакомиться с предстоящими мероприятиями и другими событиями мира IT.

Возможности бота

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

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

Сам бот: @it_meetups_bot

По вопросам предложений мероприятий и развитию функционала бота: @it_meetups_bot_group

#aboutwebdev_личныйпроект #aboutwebdev_боты #aboutwebdev_itmeetupsbot
Please open Telegram to view this post
VIEW IN TELEGRAM
73
Обновления IT Meetups Bot

Прилетели обновления для бота-агрегатора IT Meetups Bot!

Появились страница бота с его описанием и преимуществами и форма предложения мероприятия.

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

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

Увеличено максимальное количество отображаемых анонсов до 20 (раньше было 10).

Добавлены новые эмодзи для анонсов.

Появилась кнопка о предложении мероприятия с кратким описанием процесса появляения анонса.

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

🍸

#aboutwebdev_личныйпроект #aboutwebdev_боты #aboutwebdev_itmeetupsbot
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Переход на SQLite

С самого начала данные для бота-агрегатора IT Meetups Bot записывались "по-простому" в JSON-файлах.
Решил перейти на БД SQLite. Впервые работал с SQL командами, именно в практическом плане.

По итогу:
- данные хранятся в структруированном виде;
- код сократился (удалились уже ненужные методы по поиску данных, методы парсинга и записи данных в JSON-файлы);
- проще стало смотреть различные данные через командную строку.

Прикладываю ссылку на туториал SQLite: https://www.sqlitetutorial.net/.
В туториале даются сразу методы-хелперы для работы с SQL командами: создание таблицы, вставка, удаление и обновление данных таблицы.

Будьте в курсе IT-мероприятий с IT Meetups Bot!

#aboutwebdev_личныйпроект #aboutwebdev_боты #aboutwebdev_itmeetupsbot
Сырники

Я люблю сырники.

Недавно в конкурсе проектов участвовал бот с поиском мест, где можно отведать сырники.

У проекта есть бот: @syrnikindex_bot
И сайт: http://syrnikindex.com

Сырникиииии! ☕️

#aboutwebdev_моярекомендация
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯1
Обновления бота-агрегатора IT-мероприятий IT Meetups Bot

Вчера вышло новое обновление бота-агрегатора.

Что нового:
- возвращение на ту страницу, где находилось мероприятие;
- вернул показ мероприятий по 10 штук на одной странице;
- добавил кнопку "Поделиться" в клавиатуру взаимодействия с мероприятием;
- сообщения о том, что события больше не существует и мероприятий в выбранном городе нет;

Совсем скоро будут еще больше обновлений и новостей!

Будьте в курсе IT-мероприятий с IT Meetups Bot!

#aboutwebdev_личныйпроект #aboutwebdev_боты #aboutwebdev_itmeetupsbot
Скрытые возможности CSS

В мире CSS есть множество интересных и малозаметных возможностей, которые могут облегчить жизнь верстальщикам. Вот несколько фишек:

1. aspect-ratio для пропорциональных элементов

Задавать соотношение сторон для блоков стало просто с появлением свойства aspect-ratio. Раньше для этого требовались костыли с padding и дополнительными обертками.

Поддержка браузерами: 94.59%.


.element {
aspect-ratio: 16 / 9; /* Блок всегда будет иметь пропорции 16:9 */
}


2. clamp() — идеальный контроль за размерами

Свойство clamp() позволяет установить минимальное, оптимальное и максимальное значение для размера шрифта, ширины и других параметров.

Поддержка браузерами: 96.77%.


.element {
font-size: clamp(1rem, 2vw, 2rem); /* Размер будет адаптироваться от 1rem до 2rem */
}


3. Свойство scroll-snap для плавной прокрутки

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

Поддержка браузерами: 96.5%.


.container {
scroll-snap-type: x mandatory;
overflow-x: scroll;
}
.item {
scroll-snap-align: start;
}


4. Селекторы :is() и :where() для упрощения стилей

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

Поддержка браузерами:
:is() — 97.86%,
:where() — 94.91%.


:is(h1, h2, h3) {
margin-bottom: 16px; /* Применится ко всем заголовкам */
}


А вы знали об этих возможностях CSS? Какие из них уже применяли? Делитесь мнением!

#aboutwebdev_css
🔥1
Фичи и факты JavaScript

Object.is() для точного сравнения

Метод Object.is() сравнивает два значения с учётом их внутреннего представления, отличаясь от ===. Например:

   Object.is(NaN, NaN); // true
Object.is(0, -0); // false


Трюк с дескрипторами свойств

В JavaScript можно управлять доступностью, изменяемостью и перечисляемостью свойств через Object.defineProperty(). Это полезно для создания неизменяемых объектов:

   const obj = {};
Object.defineProperty(obj, 'secret', {
value: 'hidden',
writable: false,
enumerable: false,
});
console.log(obj.secret); // 'hidden'
console.log(Object.keys(obj)); // []


Параметры функций по умолчанию могут быть функциями

В ES6 параметры по умолчанию могут зависеть от других параметров:

   function greet(name, greeting = () => `Hello, ${name}!`) {
return greeting();
}
console.log(greet('John')); // 'Hello, John!'


Динамическое создание ключей в объектах

С помощью ES6 можно динамически задавать имена свойств:

   const key = 'dynamicKey';
const obj = {
[key]: 'value',
};
console.log(obj.dynamicKey); // 'value'


Ключевое слово void

В JavaScript можно использовать void для получения undefined независимо от значения выражения:

   console.log(void 0); // undefined
void function() {
console.log('No return value');
}(); // выполняет функцию


Трюк с двойным побитовым НЕ (~~)

Используется для округления числа к целому вниз быстрее, чем Math.floor:

   console.log(~~4.9); // 4
console.log(~~-4.9); // -4


Фактическое отсутствие Integer-типов

JavaScript использует Number, который покрывает все числовые операции, включая целые и дробные числа. Однако с BigInt появились возможности работы с большими целыми числами:

   const big = 123456789012345678901234567890n;
console.log(big + 1n); // 123456789012345678901234567891n


#aboutwebdev_js
Пост благодарности

Недавно завершился конкурс лучших стартапов и проектов России от ProductRadar, в котором участвовал мой бот-агрегатор.

Благодарю всех кто поддержал мой проект в конкурсе 🍸

В том числе Indie Hackers и FRTVT with 👨‍💻 в поддержке моего проекта постом в своём канале.

Всех обнимаю и крепко жму руку 🤝

#aboutwebdev_личныйпроект #aboutwebdev_боты #aboutwebdev_itmeetupsbot
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1