Как сделать напоминалку вконтакте
Таймеров и трекеров полно, но мы сделаем такой, какой нужен именно вам. Это легко.
В мире множество таймеров и трекеров продуктивности. И все они либо невозможно дорогие, либо делают миллион вещей, кроме той одной, которая реально нужна.
В этой статье мы запрограммируем очень простой, но зато ваш собственный таймер, который будет напоминать о нужном деле. Сделаем его таким, какой он действительно должен быть, и забудем о покупке дорогих трекеров.
Наш таймер будет спрашивать, о чём нам напомнить и через сколько времени. Когда выходит время, он напоминает. Всё, больше ничего от него пока не требуется.
Решение
Алгоритм решения будет таким:
- Спрашиваем, о чём напомнить и через сколько минут.
- Когда настанет нужное время — выводим напоминание и привлекаем внимание к этой вкладке.
Приветствие и вопрос
Начнём с приветствия:
Теперь узнаем, о чём нужно напомнить и когда:
Теперь у нас две переменные: text и time. В одной — о чём напомнить, в другой — через сколько миллисекунд. Теперь нужно научить программу выводить text через время time.
Чтобы что-то сработало через определённое время, используем функцию setTimeout — мы про неё говорили в задаче про чат-бота:
Время у нас уже есть, остались команды, которые нужно сделать: вывести напоминание и привлечь потом внимание к окну. Сначала показываем напоминание, когда сработает таймер:
А чтобы привлечь внимание к окну, применим программистскую магию и возьмём функцию titleAlert() — она уже встроена в эту страницу, поэтому её можно сразу использовать.
Функция — как мини-программа внутри основной программы. У каждой функции есть имя — если его написать в теле основной программы, то она поставится на паузу, сделает всё, что написано в функции, а потом продолжит с того места, где остановилась.
Как использовать встроенные в страницу функции — читайте в отдельной статье.
В итоге наша функция setTimeout будет выглядеть так:
Теперь собираем всё вместе:
Эту программу можно улучшить — например, сделать помидорный таймер, который будет напоминать о чём-то не однократно, а постоянно, с равными интервалами.
Работаю вет врачом (хирург). В одну из смен администратор случайно обнаружил пакет, который нам подкинули в достаточно морозную погоду на крыльцо.
Не сказать, что содержимое пакета нас сильно удивило, но тем не менее, эмоций было очень много.
Конечно же, мы и поняли и простили. В клетке нас ждал прекрасный хомячок, которого мы назвали Валентином, так как в записке, к огромному сожалению ни кличка животного, ни его возраст указаны не были.
Ясно было одно - хомячок чем то болеет, и мы приступили к диагностике. В результате общего осмотра обнаружено плотное округлое образование под кожей в области нижней челюсти. Нами принято решение о хирургическом иссечении новообразования с дальнейшей отправкой новообразования на гистологическое исследование.
Делаю вам добра и крепкого здоровья.
Этапы развития женщин
Заказал плов с двойной порцией моркови, но получил свой заказ с послание.
Вот это поворот!
22 декабря прошлого года в овраге недалеко от села Прокудино Аткарского района Саратовской области обнаружили двух детей мальчика 8 лет и девочку 5 лет.
В момент обнаружения мальчик уже погиб, девочка осталась жива.
Как в последствии выяснилось, мать детей сначала душила детей шарфом, а потом вынесла их раздетых в овраг.
Об этом уже писали на Пикабу, но всплыли неожиданные факты, которые в корне меняют все отношение к этой истории.
По информации Телеграмм-канала "Семейный фронт", год назад отец этих детей, Александр Зайцев, обратился к юристу Владимиру Герасимову со следующей проблемой. Дети уже длительное время проживали с ним, но алименты он продолжал платить.
Отец детей хотел лишить мать родительских прав и прекратить выплату алиментов.
Насчет возможности лишения юрист сомневался, а вот за отмену алиментов он взялся.
Решено было действовать в два этапа. Этап первый - определение место жительства детей с отцом, поскольку они уже длительное время проживали с ним, а мамо где то болталась, данный шаг не вызывал беспокойства. Шаг второй - после определения места жительства отмена алиментов.
Но все пошло не так уже на первом шаге. Более того, за каким то хреном в процесс вмешалась прокуратура, хотя они не обязаны участвовать в процессах по определению места жительства детей при раздельном проживании родителей.
Результат - иск отклонен, место жительства детей определено с матерью. Детей у отца изъяли в июне.
Маманя долго время моталась с детьми по разным адресам, вывозила детей то в Саратов, то в Энгельс, то куда-то к знакомым.
А 22 декабря уже душила их шарфом и выкидывала тела в овраг.
Я очень надеюсь, что у сотрудников опеки и прокуратуры, которые участвовали в процессе, не испортился аппетит, они хорошо спят и вообще прекрасно себя чувствуют. Всем им благ и здоровья! Успехов на профессиональном поприще! Надо и дальше защищать права матерей, жизнь и здоровье детей!
Нужно быстро куда-то записывать напоминания, которые будут потом вам сами присылать уведомления? Да так, чтобы можно было писать обычным человеческим языком, а вас при этом прекрасно понимали? Мне тоже, поэтому я написал бота под это дело.
Когда я в очередной раз вручную переносил напоминания нашей мамы, которые она писала в семейном телеграмм-чате, у меня возникла идея создать телеграмм-бота, который будет записывать, что мне надо сделать, и напоминать об этом, но при этом он должен был понимать естественную человеческую речь.
Забегая вперёд, скажу, что этого удалось добиться, как и также парочки других приятных особенностей:
Если вам не терпится опробовать бота прямо сейчас, то вот ссылка на него.
Бот был написан на Node.js. Почему? Просто потому что javascript в данный момент является одним из самых популярных языков программирования. Я также думал попробовать написать бота на Python или php, но я остановился на js, так как он обладает схожим синтаксисом с знакомым мне C++.
Алгоритм работы бота следующий:
Для повышения безопасности я добавил шифровку текста напоминаний при помощи встроенной в Node.js библиотеки crypto.
Выбор СУБД PostgreSQL обусловлен тем, что она бесплатна и изначально интегрирована в платформу Heroku, на которой хостится бот. В базе данных всего 3 таблицы: Пользователи, Чаты и Напоминания.
Также мною была с нуля написан ORM интерфейс для базы данных. Я знаю, что наверняка кто-то это уже сделал, но я хотел попробовать сделать это сам и, таким образом, уменьшить количество зависимостей.
Прежде чем приступать к распознаванию времени, нам сначала нужно заменить все слова в строке, записанные в виде слов, реальными числами. Для этого я написал npm библиотеку parse-word-to-number. Она берёт строку и возвращает строку, в которой все возможные слова были заменены числами.
Для соотнесения фильтруемых слов из исходной строки с подходящими словами из словаря я использовал расстояние Дамерау-Левенштайна. Это позволяет библиотеке понимать слова, написанные с ошибками.
В закладки
Одна из самых старых возможностей iPhone, которой пользуется далеко не каждый владелец гаджета, это напоминание о днях рождения и памятных датах. Уместное уведомление позволит заранее купить подарок близкому человеку или не забыть поздравить коллегу по работе либо знакомого.
К сожалению, на новых iPhone данная функция отключена по умолчанию.
Вносим данные о днях рождения вручную
Для начала смартфону нужно предоставить данные обо всех памятных датах. Если они нигде не зафиксированы, придется вбивать их вручную для каждого контакта.
1. Открываем карточку контакта в приложении Телефон или Контакты и нажимаем Изменить в правом верхнем углу.
2. Прокручиваем список до пункта добавить день рождения, вводим дату и нажимаем Готово.
Импортируем данные из учетной записи Gmail
Если вы ранее пользовались смартфоном на Android или просто вели адресную книгу в Gmail, можно импортировать данные о днях рождения из этого сервиса.
1. Переходим в Настройки – Контакты – Учетные записи и выбираем Добавить учетную запись.
2. После ввода логина и пароля следует отметить пункты Контакты и Календари. На iPhone загрузятся все телефоны, электронная почта, адреса и дни рождения из Gmail.
Если нужная учетная запись уже добавлена для использования почты в стандартном приложении Почта, нужно лишь активировать переключатели Контакты и Календари для этой записи.
Настраиваем напоминания
Теперь остается лишь включить уведомления о днях рождения. Для этого делаем следующее:
1. Открываем Настройки – Календарь и переходим в раздел Напоминания по умолчанию.
2. Нажимаем на пункт Дни рожд. и выбираем подходящий вид напоминания.
3. Проверяем, чтобы для приложения Календарь были включены системные уведомления (Настройки – Уведомления – Календарь).
iPhone может напомнить о предстоящем празднике за 1 или 2 дня, за неделю или в день мероприятия. Весь список дат будет отображаться в приложении Календарь.
Для удобного просмотра нужно нажать на кнопку Сегодня, а для скрытия других дат и праздников следует перейти в раздел Календари и отключить ненужное.
Переносим данные на все устройства
Когда все настроено на iPhone остается перенести памятные даты на другие гаджеты. В этом нам поможет учетная запись iCloud.
Достаточно в разделе настроек iCloud включить синхронизацию календаря. Сделать это необходимо на всех устройствах.
Если на компьютере, планшете или смартфоне будет использоваться другая учетная запись iCloud, а напоминания о днях рождения нужно продублировать, просто перенесите данные по способу из предыдущего раздела.
В закладки
Читайте также: