Denis
да, в toString как минимум нет миллисекунд
А в gettime нет таймзоны. Но она вроде не нужна?
Denis
toUTCString()
Maksim
А в gettime нет таймзоны. Но она вроде не нужна?
Тяжело с датами конечно, можно toJSON там и зона и миллисекунды есть
Denis
JSON.stringify(data.toJSON())
Anonymous
Ребят, тут кто то работает с cheerio и request?
Anonymous
Юзаю nodejs и две либы выше. Пытаюсь пропарсить название страницы с помощью либ выше, страница - https://soundcloud.com/nymano/solitude Код: https://hastebin.com/hejuvomuba.js Но получаю SoundCloud - Hear the world’s sounds что не является тайтлом страницы. В чем может быть проблема?
Denis
Чирио отстой. Я ушел на папеттер
Nikita
Чёкак, CSS уже кто-то использует?
Nikita
Кроме CSS.supports
Denis
@ChALkeR Есть тупая функция https://github.com/Piterden/vue-crossword/blob/master/src/components/BuilderPage.vue#L341-L361 Надо уменьшить количество 2х и 3х буквенных слов В идеале - сделать его регулируемым Виды симметрии будут переключаться, надо не забывать об этом. Поможешь?
Denis
Anonymous
Вот так тоже не рекомендую делать: if (Math.floor(Math.random() * 1.5)) {} Проще и правильнее: if (Math.random() > 2 / 3) {}
Anonymous
А, что, почему я?
Ты меньше его код разносить и и критиковать будешь 😁
Nikita
Уточни, чем тебя не устроил Math.round(width / 2)
Anonymous
Уточни, чем тебя не устроил Math.round(width / 2)
Меня бы устроил, но Math.round округляет по банковской схеме насколько я знаю, а Денису видимо по-другому немного нужно
Nikita
Там другие значения будут получаться на нецелых значениях ширины, но я не уверен, что он это специально учитывал.
Anonymous
можешь чекнуть: Math.round(width / 2) !== ((width + 1.5) >>> 1). например для width == 2.5
Nikita
Ну я и сказал про нецелые значения ширины выше.
Anonymous
а для целых да, вообще можно Math.round
Nikita
@maxgraey Мне по контексту кажется, что width не в пикселях, а в клетках поля. А они целые.
Anonymous
@maxgraey Мне по контексту кажется, что width не в пикселях, а в клетках поля. А они целые.
Может быть. Просто если бы был в пикселях, то это бы имело значение на ретина экранах, хотя глаз бы все равно не уловил
Nikita
> Просто если бы был в пикселях, то это бы имело значение на ретина экранах Да, очевидно. > хотя глаз бы все равно не уловил А вот это брехня.
Nikita
Полпикселя на ретина экранах вполне видны на глаз.
Nikita
Зависит от того, с чем сравнивать, конечно.
Nikita
Но в общем-то случае — неправда =).
Anonymous
А вообще даже не знаю, похоже ты тоже будешь его код злостно ревьюрить 😂
Anonymous
@Piterden ты точно этого хочешь? =)
Anonymous
А при чем здесь отношения? Там тупо ранодмный bool
Nikita
Там bool с вероятностью 1/3
Nikita
А у тебя 1/2
Anonymous
Math.random() - диапазон [0, 1) [0, 1)* 1.5 = [0, 1.5) = floor([0, 1.5)) => 0 или 1
Anonymous
вообще да)
Nikita
Хах, ты удалил сообщение, на которое я отвечал, пока я отвечал.
Nikita
У меня вот что вышло: generateGrid () { this.blanks = [] const blankProbability = 1 / 3; const halfWidth = Math.round(this.width / 2); const halfHeight = Math.round(this.height / 2); for (let x = 1; x <= halfWidth; x++) { for (let y = 1; y <= halfHeight; y++) { if (Math.random() > blankProbability) continue; this.blanks.push(` ${x}:${y}, ${this.width - x + 1}:${y}, ${x}:${this.height - y + 1}, ${this.width - x + 1}:${this.height - y + 1} `); } } }
Nikita
Но мне кажется, что этот код какой-то странный.
Anonymous
А у тебя 1/2
тогда if (Math.random() > 2/3)
Nikita
тогда if (Math.random() > 2/3)
Это 2/3. А у него 1/3. Ну или инвертируй, как у меня.
Nikita
Но мне кажется, что этот код какой-то странный.
Если там Math.round() от половины ширины, то он вылезает за границы четверти поля, не?
Nikita
И будет отмечать бланками повторно.
Nikita
И почему вообще бланки хранятся в таком странном формате, а не в Set, например?
Nikita
Я у него и спрашиваю.
Nikita
А, и 1/3, возможно, имеет смысл вынести в константу и назвать её каким-то осмысленным именем. Upd: вынес.
Nikita
А ещё Math.random предсказуемый, но это уже отдельный вопрос.
Nikita
Лучше ответьте мне на вопрос, кто CSS пользовался уже.
Anonymous
А ещё Math.random предсказуемый, но это уже отдельный вопрос.
Здесь это не важно, это ведь просто квадраты генерятся, а не соль для пароля. Тут стоит подумать скорее о том, не заменить ли на нормальное (гауссово) распределение вместо линейного (монотонного).
Denis
Может есть идеи как это лучше сделать?
Nikita
Здесь это не важно, это ведь просто квадраты генерятся, а не соль для пароля. Тут стоит подумать скорее о том, не заменить ли на нормальное (гауссово) распределение вместо линейного (монотонного).
Ну вот неправда, что непредсказуемый рандом нужен только для соли. Например, если ты онлайн-игру с шапками пишешь, то ты тоже хочешь непредсказуемости.
Nikita
Тут два исхода — да или нет. И между собой вызовы независимы.
Nikita
Тут только один параметр — вероятность исхода «да», нет тут никаких распределений.
Denis
github.com:Piterden/vue-crossword.git
Nikita
Какие ещё нормальные распределения на двух исходах, ну.
Anonymous
Ну вот неправда, что непредсказуемый рандом нужен только для соли. Например, если ты онлайн-игру с шапками пишешь, то ты тоже хочешь непредсказуемости.
В смысле? Math.random просто генератор псевдослучайных чисел, при чем его начальный период (seed number) привязан ко времени запуска, так что каждый раз новый. Другое дело, что это не трушный генератор в отличии от RandomSource.getRandomValues() энтопия которого берется из /dev/random или /dev/urandom (но это лишь один из вариантов)
Nikita
В смысле? Math.random просто генератор псевдослучайных чисел, при чем его начальный период (seed number) привязан ко времени запуска, так что каждый раз новый. Другое дело, что это не трушный генератор в отличии от RandomSource.getRandomValues() энтопия которого берется из /dev/random или /dev/urandom (но это лишь один из вариантов)
Ты можешь пронаблюдать за тем, что выплёвывает Math.random() и за несколько шагов полностью восстановить внутреннее состояние генератора, получив возможность заранее предсказать последовательность чисел сколь угодно далеко вперёд. Если это у тебя на бэкенде игры какой-нибудь, то это тоже дыра и ой — хитрые игроки могут получить преимущество неигровыми методами.
Denis
00011000 11000011 00011000
Denis
https://codesandbox.io/s/github/Piterden/vue-crossword/tree/master/
Denis
Надо нажать edit grid
Denis
generate
Nikita
generate
У тебя генерация делает единичные клетки. Надо либо ввести критерий непоганости сетки и генерировать несколько раз пока не ок или не таймаут, либо менять алгоритм генерации сетки вообще.
Kос
Привет, а тут можно публиковать объявление о поиске фрилансера на проект?)
Anonymous
https://medium.com/@treble.snake/avoiding-null-check-pollution-in-javascript-4ed8e2702ce3 Гайс, налетайте. Интересно ваше мнение)
Tim
Ребят привет, есть кто с линуксом дружит ?
Nikolai
https://t.me/grouplinux
Dan
@ru_ubuntu ещё есть
Alexander
Короче, @FEAR7d Иди листай траблы с железом наверняка. т.к. ОС чистая ещё не может создавать проблем, только если ты не качал ещё неизвестно откуда.