Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Модное кулинарное Шоу! Игра в ресторан, приготовление блюд, декорирование домов и преображение внешности героев.

Кулинарные истории

Казуальные, Новеллы, Симуляторы

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Javascript

С этим тегом используют

Программирование IT HTML IT юмор Программист Frontend CSS Все
964 поста сначала свежее
5
FrankyBob
FrankyBob
4 дня назад

Как я с помощью ИИ за час собрал Помодоро-таймер, который заюзали коллеги⁠⁠

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

Как я с помощью ИИ за час собрал Помодоро-таймер, который заюзали коллеги Искусственный интеллект, Нейронные сети, Gemini, Таймер, Веб-разработка, Программирование, Javascript, HTML, Продуктивность, IT, Разработка, Прототипирование, Эксперимент, Технологии, Автоматизация, Работа, Образ жизни, Длиннопост

Начальный экран приложения (прелоадер)

Завал задач и поиски спасения

Итак, дело было так. Очередной завал на работе, куча задач, мозг кипит. Вспомнил про технику Помодоро — это когда работаешь 25 минут, потом 5 минут отдыхаешь. Простая штука, но реально помогает не выгорать.

Полез искать нормальный таймер в интернете и... знакомая история:

  • Либо убого простые

  • Либо перегруженные фигнёй

  • Либо на английском

  • Либо платные

  • Либо ещё регистрацию просят

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

Как я с помощью ИИ за час собрал Помодоро-таймер, который заюзали коллеги Искусственный интеллект, Нейронные сети, Gemini, Таймер, Веб-разработка, Программирование, Javascript, HTML, Продуктивность, IT, Разработка, Прототипирование, Эксперимент, Технологии, Автоматизация, Работа, Образ жизни, Длиннопост

Вспомнил про хайповую штуку

Тут я вспомнил про так называемый "вайб-кодинг" с нейросетями. Да, знаю, что многие к этому относятся скептически, но решил попробовать. Открыл Claude и написал примерно так:

"Старина, сделай мне HTML-страничку с таймером Помодоро. Нужно: таймер на 25 минут, задачи можно добавлять, статистика какая-нибудь и чтоб пикал когда время вышло."

И тут началось волшебство! Claude выдал мне полноценный рабочий прототип. Причём не просто "Hello World", а реально функциональную штуку😉:

  • Нормальным таймером

  • Возможностью добавлять задачи

  • Статистикой

  • Звуками

Меня понесло

Ну и дальше меня, конечно, понесло:

  • А можешь добавить сохранение в Local Storage?

  • А сделай звуки покруче

  • А перекрась вот это в зелёный

  • А добавь настройки времени

  • А мобильную адаптивность

Claude всё это выполнял как послушный джуниор! За час у меня был готов довольно приличный таймер.

Как я с помощью ИИ за час собрал Помодоро-таймер, который заюзали коллеги Искусственный интеллект, Нейронные сети, Gemini, Таймер, Веб-разработка, Программирование, Javascript, HTML, Продуктивность, IT, Разработка, Прототипирование, Эксперимент, Технологии, Автоматизация, Работа, Образ жизни, Длиннопост

Внешний вид приложения (начальной версии не осталось, к сожалению, показываю конечный результат)

Реакция коллег

Показал результат фронтенд-разрабам на работе со словами: "Смотрите, что я за час накатал, вообще без знаний!"

Их реакция:

  • 😳 (удивление)

  • 🤔 (изучают интерфейс)

  • 😯 (ещё больше удивления)

  • Нефига себе, ништяк получилося! Реально работает!

Решил довести до ума

После такой реакции подумал: "А почему бы не довести это до продакшена?" И понеслось...

Сейчас можете посмотреть результат: pomo25.ru

Что в итоге получилось:

Для тех, кто хочет настроить под себя:

  • Настраиваемые интервалы (любое время, какое хочешь!)

  • 10 типов звуков + можно загрузить свой

  • Ручное сохранение настроек

  • Push-уведомления в браузере

Для обычных людей:

  • Добавляешь задачи и следишь за прогрессом

  • Видишь статистику: сколько помидорок сделал

  • Не забываешь делать перерывы

  • Задачи сохраняются автоматически

Как я с помощью ИИ за час собрал Помодоро-таймер, который заюзали коллеги Искусственный интеллект, Нейронные сети, Gemini, Таймер, Веб-разработка, Программирование, Javascript, HTML, Продуктивность, IT, Разработка, Прототипирование, Эксперимент, Технологии, Автоматизация, Работа, Образ жизни, Длиннопост

Запуск таймера для добавленной задачи, длительностью 1 час

Как я с помощью ИИ за час собрал Помодоро-таймер, который заюзали коллеги Искусственный интеллект, Нейронные сети, Gemini, Таймер, Веб-разработка, Программирование, Javascript, HTML, Продуктивность, IT, Разработка, Прототипирование, Эксперимент, Технологии, Автоматизация, Работа, Образ жизни, Длиннопост

Настройки приложения

Про дизайн (не кидайтесь тапками)

Отдельно про дизайн. Да, я знаю, что он специфический. Это не потому что у меня нет вкуса (хотя может и нет 😅), а потому что я специально попросил Claude сделать что-то в стиле киберпанка 90-х.

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

Телеграм-версия

Потом решил пойти дальше и сделал версию для Телеграма: @pomo25_bot

Плюсы:

  • Данные синхронизируются через облако Телеграма

  • Уведомления приходят от самого Телеграма

  • Работает на телефоне как нативное приложение

Минусы:

  • Не работает в фоне (об этом ниже)

Как я с помощью ИИ за час собрал Помодоро-таймер, который заюзали коллеги Искусственный интеллект, Нейронные сети, Gemini, Таймер, Веб-разработка, Программирование, Javascript, HTML, Продуктивность, IT, Разработка, Прототипирование, Эксперимент, Технологии, Автоматизация, Работа, Образ жизни, Длиннопост

Приложение в Telegram

Проблема с фоновой работой

Единственное, что не смог победить — работу в фоне на мобилках.

Проблема в том, что:

  1. Телеграм Web Apps работают в WebView

  2. При сворачивании приложения WebView приостанавливается

  3. JavaScript перестаёт выполняться

  4. Service Workers в WebView работают криво

  5. iOS вообще жёстко блокирует фоновые скрипты

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

Опыт работы с нейросетями

Claude: король прототипирования

В начале Claude был просто космос:

  • Быстро понимает что нужно

  • Генерирует рабочий код

  • Хорошо итерируется

  • Не задаёт лишних вопросов

Но потом начались проблемы

Когда проект разросся, Claude начал путаться:

  • Исправляет одно, ломает другое

  • Забывает контекст больших файлов

  • Приходилось делать бэкапы в гите постоянно

Попробовал ChatGPT — ещё хуже! То ли ленился и отвечал "попробуйте перезагрузить страницу", то ли чинил совсем не там, где надо, вообще не понимая что происходит в коде.

Gemini спас ситуацию

Тогда попробовал новый Gemini (у него миллион токенов контекста). И охренел!

Gemini смог:

  • Прочитать ВЕСЬ проект целиком

  • Найти реальные причины багов

  • Переписать проблемные части

  • Почистить код от мусора


Реальная польза

Сейчас пользуюсь своим таймером каждый день:

  • Реально стал делать перерывы (раньше мог 3 часа сидеть не вставая)

  • Лучше планирую время на задачи

  • Меньше выгораю от сложных задач

  • Коллеги тоже подсели, просят фичи добавить, но я пока просто собираю обратную связь и анализируюю насколько это будет сложно реализовать и внедрить

Мораль истории

Современные нейросети действительно могут сильно понизить порог входа в разработку. Даже если ты не знаешь React/Vue/Angular, можно создать полезную штуку.

Но есть нюансы:

  • Для прототипов ИИ идеален

  • Для больших проектов нужно понимать что делаешь

  • Разные ИИ лучше для разных задач

  • Git обязателен при работе с ИИ

Итог

За час собрал рабочий прототип, потом пару недель в свободное время фиксил баги и боролся с нейросетями. В итоге получился реальный продукт, которым пользуются люди. Нейросети — не панацея, но инструмент мощный.

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

Кто-то ещё экспериментировал с ИИ-разработкой? Поделитесь в комментах!


P.S. Если найдёте баги или будут идеи, пишите. Обратная связь очень ценна!

UPD: Забыл добавить — если кто захочет посмотреть, что получилось: pomo25.ru и @pomo25_bot в Телеграме!

Показать полностью 5
[моё] Искусственный интеллект Нейронные сети Gemini Таймер Веб-разработка Программирование Javascript HTML Продуктивность IT Разработка Прототипирование Эксперимент Технологии Автоматизация Работа Образ жизни Длиннопост
5
3
lineage2js
lineage2js
6 дней назад
ИТ-проекты пикабушников

Баг или фича?⁠⁠

Привет. Я продолжаю разрабатывать сервер для Lineage 2 C1 на JavaScript Проект


При добавлении SoulShot функционала не добавил проверку не только на наличие оружия, но и кто атакует — игрок или NPC. Как итог теперь все атакуют с помощью SoulShot.

Блог про разработку сервера для Lineage 2 в телеге https://t.me/lineage2js

Показать полностью
[моё] Разработка Программирование MMORPG Lineage 2 Javascript Nodejs Видео Короткие видео
8
4835
contentfactory
contentfactory
7 дней назад

Посоветуйте фильм⁠⁠

Посоветуйте фильм
Юмор IT юмор Повтор Скриншот Переписка Javascript Изучение языка
173
Партнёрский материал Реклама
specials
specials

А сколько у вас?⁠⁠

Вы когда-нибудь считали, сколько экономите с вашим кешбэком и скидками? Предлагаем провести небольшие вычисления (потому что считать выгоду всегда приятно).

Реклама Реклама. ПАО «Банк ВТБ», ИНН: 7702070139

Калькулятор Выгода
2147
contentfactory
contentfactory
7 дней назад

Работа после курсов или во время⁠⁠1

Работа после курсов или во время
Юмор IT юмор Курсы Трудоустройство Скриншот Зашакалено Жена Javascript
123
3
user10424664
user10424664
13 дней назад

Как переносить «висячие» слова на новую строку с помощью JavaScript⁠⁠

Как переносить «висячие» слова на новую строку с помощью JavaScript Разработка, Программирование, Javascript, Типографика, Uxui, Ui, Ux, Frontend, Верстка, IT, Программист, Telegram (ссылка), Длиннопост

изображение сгенерировано в ChatGPT

В типографике существует понятие “висячих слов” — это короткие слова (предлоги, союзы, местоимения), которые остаются в конце строки при переносе текста. Такие переносы нарушают удобочитаемость и эстетику текста. В русской типографике принято избегать переносов после коротких слов длиной 1-2 символа.

Решение проблемы с помощью JavaScript

Для автоматического предотвращения переносов после коротких слов можно использовать JavaScript, который заменяет обычные пробелы на неразрывные пробелы ( ) после определённых слов.

// Перенос висячих слов

document.addEventListener('DOMContentLoaded', function () {

// 1. Находим все текстовые элементы, которые нужно обработать

const textElements = document.querySelectorAll('p, span, h1, h2, h3, h4, h5, h6, li, dt, dd');

// 2. Список предлогов и союзов, которые нельзя переносить

const prepositions = ['в', 'без', 'до', 'из', 'к', 'на', 'по', 'о', 'от', 'перед', 'при', 'через', 'для', 'с', 'у', 'и', 'а', 'но', 'да', 'или', 'либо', 'что', 'чтобы', 'как', 'когда', 'если', 'вы'];

// 3. Функция для обработки каждого элемента

textElements.forEach(element => {

// Получаем все текстовые узлы внутри элемента

const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT);

const textNodes = [];

while (walker.nextNode()) {

textNodes.push(walker.currentNode);

}

// Обрабатываем каждый текстовый узел

textNodes.forEach(textNode => {

let text = textNode.nodeValue;

// Заменяем пробелы после коротких слов на неразрывные пробелы

text = text.replace(/(^|\s)([а-яё]{1,2})\s/gi, (match, prefix, word) => {

// Проверяем, есть ли слово в списке предлогов

if (prepositions.includes(word.toLowerCase())) {

return prefix + word + '\u00A0'; // \u00A0 - это неразрывный пробел

}

return match;

});

// Обновляем содержимое текстового узла

textNode.nodeValue = text;

});

});

});


Разбор кода по частям


1. Инициализация скрипта

document.addEventListener('DOMContentLoaded', function () {

Код выполняется после полной загрузки DOM-дерева страницы. Это гарантирует, что все элементы будут доступны для обработки.


2. Поиск текстовых элементов

const textElements = document.querySelectorAll('p, span, h1, h2, h3, h4, h5, h6, li, dt, dd');

Скрипт находит все основные текстовые элементы на странице: параграфы, заголовки, элементы списков и другие. Вы можете расширить этот список, добавив другие селекторы.


3. Список коротких слов

const prepositions = ['в', 'без', 'до', 'из', 'к', 'на', 'по', 'о', 'от', 'перед', 'при', 'через', 'для', 'с', 'у', 'и', 'а', 'но', 'да', 'или', 'либо', 'что', 'чтобы', 'как', 'когда', 'если', 'вы'];

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


4. Обход текстовых узлов

const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT);

TreeWalker позволяет пройти по всем текстовым узлам внутри элемента, включая вложенные теги. Это важно, так как текст может содержать форматирование (, и т.д.).


5. Регулярное выражение для замены

text = text.replace(/(^|\s)([а-яё]{1,2})\s/gi, (match, prefix, word) => {

Регулярное выражение ищет:
· (^|\s) — начало строки или пробел (группа 1);
· ([а-яё]{1,2}) — слово из 1-2 русских букв (группа 2);
· \s — пробел после слова;
· Флаги gi означают глобальный поиск без учёта регистра.


6. Условная замена

if (prepositions.includes(word.toLowerCase())) {

return prefix + word + '\u00A0'; // \u00A0 - это неразрывный пробел

}

Если найденное короткое слово есть в списке предлогов, обычный пробел заменяется на неразрывный пробел (\u00A0). Это предотвращает разрыв строки между предлогом и следующим словом.


Результат работы

После выполнения скрипта текст “Я иду в магазин” не будет разорван на строки как “Я иду в” и “магазин”. Предлог “в” всегда останется на одной строке со следующим словом благодаря неразрывному пробелу.

Настройка скрипта

Вы можете легко адаптировать скрипт под свои нужды:
· Добавить новые селекторы в querySelectorAll() для обработки других элементов;
· Расширить список слов в массиве prepositions;
· Изменить длину слов в регулярном выражении с {1,2} на другое значение;
· Добавить обработку других языков, изменив диапазон символов в регулярном выражении.

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

P.S.: это JS решение иногда не во всех случаях срабатывает + бывают сложности с адаптивностью: на смартфонах может переносить совсем не так, как хотелось бы, текст может «уехать» за пределы контейнера, нужно будет «фиксить» эти моменты в CSS.


Разработчики, а как вы решаете вопрос переноса «висячих» слов?

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

Показать полностью 1
Разработка Программирование Javascript Типографика Uxui Ui Ux Frontend Верстка IT Программист Telegram (ссылка) Длиннопост
13
Вопрос из ленты «Эксперты»
OlegMay
14 дней назад

Загадка. Сайт работает, как получить такой же результат? (H3, hotpink). Полный алгоритм с объяснением⁠⁠

https://maygame.ru

Edit: ок, подсказка: https://maygame.ru/May.Js

Загадка. Сайт работает, как получить такой же результат? (H3, hotpink). Полный алгоритм с объяснением Вопрос, Спроси Пикабу, Длиннопост, Javascript
Показать полностью 1
[моё] Вопрос Спроси Пикабу Длиннопост Javascript
8
1
Neuralnetznaet
Neuralnetznaet
14 дней назад

Qwen сгенерировала мне цитаты Говарда Лавкрафта, если бы он был преподавателем JavaScript⁠⁠

1. О приведении типов и `==`

«Не смейте бросать взгляд на оператор `==`, ибо в его бездне затеряны все законы логики. То, что числа и строки кажутся равными, — лишь обман, рожденный хаосом, что правит типами. Берегитесь, ибо даже `null == undefined` — это шепот древнего ужаса, пробуждающегося в вашем коде» .

2. О переменных без `const/let`

«Когда вы опускаетесь до использования необъявленных переменных, вы призываете тень хойстинга. Она ползет из глубин памяти, искажает реальность и порождает баги, коих не в силах победить даже самые опытные рыцари отладки» .

3. О рекурсии

«Рекурсия — это дверь в бесконечность. Каждый вызов функции уводит вас глубже в лабиринт стека, где время теряет смысл, а последний кадр станет вашей могилой. Не ищите выхода — он существует лишь в теории, как и надежда на `O(1)`» .

4. О `this` в JavaScript

«Сердце `this` — это черная дыра, поглощающая контекст. Пытаясь понять его, вы рискуете обнажить разум перед лицом космической случайности. Даже `bind()` лишь временная повязка на глаза, за которой скрывается истинная бездна» .

5. Об асинхронности

«Коли вы решитесь на `callback`, знайте: ваш код разорвется на части, как тело жертвы в пасти демона. Промисы же — это змеи, что шепчут вам: "Всё будет потом", но "потом" — это эпоха, где время не имеет смысла» .

Qwen Нейронные сети Javascript Говард Филлипс Лавкрафт Фантастика Текст
2
Партнёрский материал Реклама
specials
specials

Раз проценты, два проценты⁠⁠

Звучит приятно, если речь о выгоде и начисленном кешбэке. Сделали самый приятный калькулятор, который считает исключительно выгоду!

Реклама Реклама. ПАО «Банк ВТБ», ИНН: 7702070139

Калькулятор Выгода
18
zinger111
14 дней назад

Ответ l.smirnov в «Пояснительная бригада: получаем банан»⁠⁠2

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


Но давайте, раз уж мы тут ниибать специалисты, подумаем еще 2 минуточки, над этим ниибически ахуительным тезисом "ахахха язык_название_1 полнае гавно".
Попробуем так сказать в анализ, логику, экстраполяцию даже, не побоюсь этого сложного слова.

Можно ли написать говно на ЛЮБОМ языке?
Отвечает эксперт(я): ага, ващще изи. Ну тоесть гдето сложновато, так как некоторые языки и их инструментарий будут упорно препятствовать, но бля - была бы цель!

Хммммм, а можно ли написать красиво на ЛЮБОМ языке?
Опять отвечает иксперт(я): ну, это конечто блять уметь надо, но вообще - да!
Все языки существуют для решения определённых проблем.
Некоторые узкоспециализированны, и красивые решения там требуют таки навыков, понимания области применения, и опыта.
Но - сделать красиво, и местами элегантно - можно на любом языке. Даже (прости госпади) на Руби.

Я уже устал расписывать что тот же JavaScript (над которым ржут тупорылые неумехи более десятка лет, и который конечно нонче более ускоспециализирован чем его, хммм, скажем для простоты терминов "старший брат" TypeScript) можно и "типизировать", и писать надежно, модульно, и даже красиво. БЫЛО БЫ УМЕНИЕ, ДА ЖЕЛАНИЕ. Да и php, второй по цитируемости в шуточкаж долбаебами язык - уже давно умеет и в типизацию, и вообще во все на свете. И позволяет создавать реально красивый код.
Но - поток идиотиков, сравнивающих вот эти пальцы (рдни языки) с жопами (другие языки), не разбирающихся ни в отм ни в другом - он блять неисчерпаем...

А по поводу конкретного примера из поста, на который я отвечаю - мне уже даже лень расписывать НАСКОЛЬКО чувак нихуя не понял ни в Джаве, ни в конкретно этой, простой в принципе иерархии классов, ни блять даже в самом ООП...

К чему я все это (ДА НЕ ПЕЧЕТ У МЕНЯ!11!!)?

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

Вам не стыдно?

Показать полностью
[моё] Программирование IT Программист IT юмор Разработка Javascript Java PHP Мат Ответ на пост Текст
8
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии