Обновить
19
0

Пользователь

Отправить сообщение
А если не использовать промежуточную таблицу, будет медленнее?
Оптимизируют ли sql-движки вложенные запросы,
или просто делают выборку из декартового произведения?
подробности
зашел пользователь:
  если таймер "30 дней" не запущен
    запускаем таймер "30 дней"
  если запущен таймер "1 день без посещения"
    сбрасываем таймер "1 день без посещения"
  запускаем таймер "1 день без посещения"

сработал таймер "1 день без посещения":
  сбросываем таймер "30 дней"
  
сработал таймер "30 дней":
  alert('прошло ровно 30 дней с перерывами в посещении не больше 1 дня')
А вообще, задача актуальная: например, для подсчета прогулов.
Затем на второй день. Затем на третий (возможно несколько раз, это не имеет значения). Не зашли на четвёртый? Начинаем считать заново.
т.е. по сути алгоритм работы debounce
Зашел пользователь — запустили таймер на 30 дней :)
Несомненно, но поскольку это довольно субъективно, решил отложить идею.
А почему вы не считаете его человекочитаемым?
Вот, какими требованиями руководствовался:
  • запись данных в новом формате для большинства вариантов использования должна быть короче аналогичной в существующих
  • синтаксис должен быть интуитивно понятным
  • формат не должен поддерживать бинарные данные, достаточно обычного юникода
  • возможность экранирования
  • возможность записи в одну строку
А вот ключевые идеи:
  • убрать лишнее из xml
  • контекст как в терминале
  • пара «ключ: значение» — список
  • контекст — список
  • разделитель списка — ':'
  • разделитель списков — любая последовательность пробельных символов
  • порядок одноименных узлов в одном контексте важен
Была статья про убийцу json....
Даже решил свой запилить, но если для бинарного формата важна производительность, для текстового человекочитаемость и краткость.
некоторые примеры:
image
называется CLS(Contexted Lists and Sets)
А разве спектр не размажется, если в периоде сигнала будет укладываться нецелое число отсчетов?
Решил сравнить скорости: jsperf.com/ibp-array-vs-object-index, результат не показателен.
Ваш вариант, мне нравится даже больше :)
Обычно составные ключи разделяю подчеркиванием:
var type = typeof a + '_' + typeof b + '_' + typeof c,
    callback = {
       "object_object_string": process,
       "object_object_undefined": process,
       ...
спасибо, добавлю упоминание в конец статьи
И, вообще, должна существовать какая-нибудь алгебра для людей. Например, если freq0 — гармоника frame_rate и субгармоника sample_rate, т.е
frame_rate < freq0 < sample_rate,
где < — отношение делимости,
то разложив размер окна на простые множители, и взяв оригинальные подмножества, получим количество возможных частот без искажений:
window=2*2*2*2*3*5*5*5*11 gives (1+4)*(1+1)*(1+3)*(1+1) frequencies
window=60=2*2*3*5 gives (1+2)*(1+1)*(1+1)*(1+1)=24 frequencies
window=4096=2^12 gives (1+12)=13 frequencies
после оцифровки превращается в сигнал низкой частоты
А какой именно частоты? Правильно ли, что: T_observed = T_sample%T_signal?
10%21=10=-11
10%11=10=-1
10%9=1
график 10%x в wolframalpha
Еще интересно, возникает ли аналогичный эффект, когда сигнал имеет больший период, чем период окна?
Что-то наподобие: T_observed = T_sample%T_signal%T_frame?
заходя на этот сайт вы обязуетесь просмотреть рекламу
Можно поставить расширение, блокирующее все упоминания и ссылки на подобные сайты, как malware:
«несанкционированными» будут считаться действия программы, не одобренные явным образом пользователем этой программы
Если такой сайт и будет существовать, пользователь о нем не узнает.

Как крайний вариант — настраиваемое устройство, бьющее пользователя током, каждый раз, когда он обращает внимание на рекламу :)
Полагаю, его принятие нарушало бы принципы когнитивной свободы.
требовать ответить на вопросы по поводу просмотренной рекламы и лишь затем пускать на сайт
видео-капча :)
Врядли, подобные проверки требуют интернет трафика, много оперативной памяти. А маленькая задача, запускаемая по таймеру практически не заметна для современных, в том числе и мобильных процессоров.
Другое дело: невмеру продвинутый дизайн, непрактичная тяга к универсализации инструмента и cryptoUI: хитроумные полиморные вставки в DOM, переусложненные стили…
Хотя скорее всего к этому и идем…
Скорее, к этому идут сайты, а не пользователи:
многие интересные сайты — минималистичны: pinterest.com, agar.io, editpad.org, develop.re, craigslist.org, bash.im, arxiv.org, echojs.com, nplus1.ru, gostash.it, neurowareblog.blogspot.com
Про память — сейчас добавлю.
Взятие по индексу — точно быстрее, чем последовательный перебор 'else if'-ами. Cомнение вызывает indexOf, но можно обойтись без него и, он как минимум пропорционален числу условий, а может и быстрее. Поиск в хеш-мапе приблизительно O(1), за исключением коллизий, — тут зависит от реализации. Хотя, была ситуация: поиск по длинным строкам в качестве ключа жутко тормозил, пришлось сначала искать по числовому хешу от строки(вычисление которого, впрочем, также вписывается в этот подход). Что касается вычислений, то возведение в целую степень также может быть линейным, но такие алгоритмы врядли еще где остались. Однако, завершения вычисления 50-го число фибоначчи рекурсивным алгоритмом не дождался(отчасти поэтому не включил код в статью), а для индексного результат был без задержки. По-хорошему, конечно, надо бы сделать замеры скорости, но для простых формул — это не актуально. Итого, ответ — возможно, но только для неоптимизированных вариантов: как вы правильно заметили, расходуется дополнительная память, — мы преобразуем временную сложность в пространственную.
а что еще нету? парочку эвристик распознавания рекламы уже упомянули:
следующий виток: эвристики распознавания антиблокировщика рекламы:
  • полиморфное поведение
  • обработка события DOMNodeRemoved
  • проверка style.display
  • наличие таймера
блокировщику рекламы через суд запретили блокировать блокировку блокировщиков :)
То есть запретили Б3Р. Есть книга «Конфликтующие структуры», там вводится алгебра для подобной рекурсии.
Возможно, должен быть какой-то международный запрет на принятие подобных запретов: «право на бесконечную рекурсию».
не в том порядке, в котором их разместит CSS
А document.elementFromPoint(x, y) это обманет?
начинается эра рекламы, которая не будет блокироваться стандартными средствами
Более того, рано или поздно начнет внедряться скрытая реклама, которая приблизительно соответствует стеганографии.

Информация

В рейтинге
Не участвует
Откуда
Украина
Зарегистрирован
Активность