Вынесение констант в переменные
Одна из вещей, которых нас не учили на программировании в универе — делать именованные константы. Просто один пример на JavaScript:
function convertTimeToTicks(unixTimestampMs) {
return (unixTimestampMs - (3600 * 3 * 1000)) * 10000 + 621355968000000000;
}
Ну как? Хорошо ещё название функции хоть как-то подсказывает, что происходит. А вот так было бы с именованными константами:
function convertTimeToTicks(unixTimestampMs) {
let millisecondsInHour = 3600000;
let timezoneCorrectionMs = millisecondsInHour * 3;
let ticksInMs = 10000;
let ticksBeforeUnixTimestamp = 621355968000000000;
return (unixTimestampMs - timezoneCorrectionMs) * ticksInMs + ticksBeforeUnixTimestamp;
}
Да, много строк, да кажется что печатаешь лишнее. Но зато постороннему (и вам через пару лет) сразу ясно, что берётся время в миллисекундах от начала эпохи UnixTimestamp, делается коррекция часового пояса, конвертируется в тики.
Ну а тики нужны для работы с системой электронного документооборота, это уже другая история.
Он-лайн чат на азбуке Морзе
Всем привет! Я сделал чат на азбуке Морзе 🙂
Краткая инструкция:
1) После входа вы видите сообщение .-- .- ---- / .--. --- --.. -.-- .-- -. --- .---
, это значит что нужно ввести ваши позывные. Введите туда что-нибудь (чтобы вас отличать в чате)
2) После ввода позывных нажмите кнопку .-- .... --- -..
3) Вы увидите чат с сообщениями на азбуке Морзе. Показываются последние 10 сообщений. Чтобы прослушать конкретное сообщение, нажимайте на позывной оставившего сообщение.
4) Новые сообщения будут автоматически проигрываться при получении. Ваши сообщения тоже.
Ввод ключом
В верхней части страницы есть кнопка с надписью -.- .-.. ..-- ---.
, это ключ. Краткое нажатие на кнопку — точка, длинное — тире. Длительность тире можно установить в блоке настроек под чатом.
Под кнопкой есть два индикатора (прогресс-бара), один обозначает границу буквы, второй — границу слова. Чтобы начать вводить следующую букву дождитесь когда заполнится индикатор буквы. Чтобы начать вводить следующее слово, дождитесь, когда заполнится нижний индикатор.
Ввод с клавиатуры
Можно просто писать точки и тире с клавиатуры. При этом можно использовать тире (-), тильду «~», подчёркивание «_» как тире; точку «.», звёздочку «*», одиночную кавычку «‘» как точку. Между буквами один пробел. Между словами нужно ставить пробел, наклонную черту, ещё пробел.
Если вы ввели недопустимые символы, появится сообщение об ошибке --- ---- .. -… -.- .- / -. . -.. --- .--. ..- … - .. -- -.-- . / … .. -- .-- --- .-.. -.--
Телефоны иногда пытаются два дефиса переделать в тире. Чтобы этого не происходило, используйте, например, тильду «~» вместо тире.
Настройки
В нижней части, под чатом, можно настроить частоту звука, длительность точки в звуке; длительность тире, буквы и слова при вводе.
Я плохо воспринимаю на слух пока, поэтому длительность точки по умолчанию — 200 мс. Кто хорошо воспринимает может поставить стандартные 75 мс.
Если у кого-то не работает — сообщайте, я попробую исправить.
Надеюсь вам понравится.
Преобразование русского текста в звуки азбуки Морзе
Сделал небольшую страничку, куда можно ввести текст на русском и прослушать его в виде морзянки.
Ссылка: https://arikado.ru/morse/
Сейчас азбука Морзе, конечно, не так востребована и популярна, но парочку применений для себя я вижу:
- Можно поставить имя звонящего на виброзвонок, и слышать по вибрации кто звонит
- Отладка программ для микроконтроллеров — вывод произвольного сообщения через один светодиод
- Ну и может пригодится в случае апокалипсиса 🙂
Поисковик по фанфиков с fanfics.me
Скачал все фанфики с fanfics.me, проиндексировал тексты, составил частотные словари, и вот, представляю вашему вниманию поисковик — https://fanfics.arikado.ru/
Сегодня обнаружил что запретили скачивать фанфики неавторизованным пользователям. Упс. Надеюсь не из-за меня.