Nikolay
слишком объёмно что не умещается в одну конфу
Anonymous
Хочу js выучить и быть профи научите
Semyon
Anonymous
Какой фриланс сайт посоветуете ?
Nikolay
а в СНГ?
sane
А в СНГ нет фриланс сайтов
Nikolay
ну про fl.ru я знаю
Nikolay
может другое что то есть толковое
Michael
В СНГ такой-же интернет
Michael
Апворк
Michael
Одеск
sane
Одеск
Тонко
sane
ну про fl.ru я знаю
Лучше забудь
Ilya
Свежее про Upwork http://shadandjulia.com/never-use-upwork-ever/
sane
Свежее про Upwork http://shadandjulia.com/never-use-upwork-ever/
как бы да, но какие еще есть варианты кроме топтала?
Arthur 🙏
кто-нибудь может объяснить, чем плохо итерировать массив с помощью for x in array ?
Konstantin
тем что он тебе переберёт все методы помимо полей
hlomzik
for (i in [1, 2]) // 0, 1, length
Sergey
А есть канал с Эмбером?
Anonymous
есть
Sergey
Скинь как найти плз
Vladislav
Есть видео, где на нем программируют?
Anonymous
да
Anonymous
все есть
Sergey
:D
Sergey
Это чат-бот?
hlomzik
Это проверка стадного инстинкта)
Dreamerinnoise
https://javascript-game.firebaseapp.com/
igo
есть здесь любители Ramda?
Дима
Ага
igo
точка задаётся массивом в виде [x, y], нужно найти самую левую нижнюю точку в массиве. Например, [[0, 0], [1, 1]] это [0, 0].
igo
вы на Ramda, я на vanila js 😏
Дима
Ну давай, раз такой дерзкий 😄
Sergey
@igorz а в чем соль но?
Sergey
points = [[0, 0], [1, 0], [0, 1]]; points.reduce((min, point) => (point[0] <= min[0] && point[1] <= min[1]) ? point : min, points.pop());
Sergey
или я тупой?
Sergey
ну разве что лучше slice юзать что бы побочные эффекты убрать
Дима
const sortPoints = R.sortBy(R.both(R.head,R.last)) sortPoints(points)[0]
Igor
@igorz а в чем соль но?
Вероятно, не мне?
Дима
Давайте ваш js
Sergey
не тот игорь, извиняй
Sergey
@xamgore
Sergey
может тут есть ребята, которые пишут на ноде под докером? Как с миграциями делаете? У меня на проектах обычно миграции накатываются при старте конейтейнера. А у вас?
igo
points = [[0, 0], [1, 0], [0, 1]]; points.reduce((min, point) => (point[0] <= min[0] && point[1] <= min[1]) ? point : min, points.pop());
ну, я бы разве что сделал const min = (a, b) => a < b ? a : b; points.reduce(min);
igo
тут работает то, что сравнение в js лексикографическое для массивов.
Oleg
Нафлудили то за 2 дня...
igo
поэтому [0, 0] < [0, 1], например.
Sergey
> что сравнение в js лексикографическое для массивов. да да, слава weak typing
Sergey
пусть все к строке приводится
igo
ну или R.min 😏
Sergey
к черту LSP, к черту то, что сравнение интов работает значительно быстрее значения строк
Sergey
> ну или R.min это еще что?
Sergey
вместо того что бы извращать системы типов, давайте лучше порассуждаем про цикл жизни контейнера с node приложением
igo
> ну или R.min это еще что?
Returns the smaller of its two arguments. http://ramdajs.com/docs/#min
Sergey
ну то есть
igo
наверное, то же самое. меня это не сильно волнует 😏
Sergey
min = (a, b) => a < b ? a : b;
Sergey
то же что и Math.min но во славу сатане (weak typing) принимает все как дешевая... функция
Sergey
ох а какие веселые с этим могут быть баги)
Дима
Я хотел уже делать тест на производительность сего решения, но к счастью этого не потребовалось
Дима
Интуитивно я догадался, когда приведение к строке даст некорректный результат))
igo
так, расскажите
Sergey
вообще если важна производительность, все эти волшебные библиотеки, лямбды и т.д. идут лесом
igo
и js?
Дима
А, хотя не, ща перепроверю 🤔
Sergey
потому что оптимизирующий комплятор лучше работает со страрыми добрыми цикликами
Sergey
и если все грамотно написано генерит вполне себе неплохой нэйтив код
Oleg
А не миф ли это?
Sergey
ну до gcc -o3 далеко
Sergey
(нет векторизации)
Sergey
но с -o2 тягаться на тупых вычислениях может
Sergey
только памяти жрет в сотни раз больше
Sergey
помню как баловался с разворачиванием циклов... развертка на 8 итераций дала мне 70%+ к преформансу пересчета цветов на канве
Sergey
простое
igo
А в ramda все функции не каррированные по умолчанию, да?
Dreamerinnoise
каррированные же
Konstantin
http://fr.umio.us/why-ramda/