
Ҫѐҏӗѫӑ
09.09.2016
13:39:17
я думал там cst
тогда это отличный челленжевый повод законтрибьютить
fixed

Gordey
09.09.2016
13:41:13
хлебом не корми, дай законтрибьютить

Google

Nikita
09.09.2016
13:42:12
babel молодцы, что issue вернули) я вспомнил и законтрибьютил) правда у них тесты только функциональные, но это ничего)

Damir
09.09.2016
14:54:50
приходилось ли вам отделять декстопные браузеры от мобильников/планшетов и для каких целей?

Vadim
09.09.2016
15:12:03
Приходилось, в основом продуктовые темы, когда на десктопе нужно одно поведение, а на мобильниках кейс реализуется другим способом.
Разный ux/ui для desktop/mobile.
Который не укладывается в mobile first концепцию.

Denis
09.09.2016
15:13:07
Вадим, кстати, гоу в @uiux_ru :)

Vadim
09.09.2016
15:13:50
Ок ))

Denis
09.09.2016
15:13:56

Damir
09.09.2016
15:14:22
отделяете на стороне сервера, или на клиенте?

Denis
09.09.2016
15:14:36
на сервере
по UA

Damir
09.09.2016
15:26:23
Почему спрашиваю - ранее сделал для себя небольшой скрипт-детектор, который в сжатом виде весит порядка 3кб и умеет отделять десктопы от мобильников, а также планшеты от телефонов. Для тестов использовал базу browscap, скрипт умел определять более 1000 разных UA и работал лучше http://hgoebl.github.io/mobile-detect.js/. Вот думаю, стоит ли допиливать скрипт и давать в открытый доступ, или похоронить его в истрии.

Google

Damir
09.09.2016
15:30:03
Сам юзал для разделения логики и иногда, для отключения ховера в элементах для мобильников (чтобы был быстрый переход и не было двойных кликов)
Сейчас тема отделения мобильников от десктопов по ощущениям сходит на нет ввиду увеличения возможностей мобильных браузеров

Denis
09.09.2016
15:36:21

マイク
09.09.2016
15:42:32
Описал бы чем лучше
И зачем на клиенте это делать не очень понятно
Есть feature detection

Damir
09.09.2016
15:45:52
Ок, если доработаю, скину ссылку
И зачем на клиенте это делать не очень понятно
Раньше было часто нужно, сейчас уже реже. Если речь идёт о каком-нибудь промо, то часто дешевле повесить в head на клиенте и делать редирект до показа страницы, чем просить об этом бэкендщика, который может заюзать первопопавшийся кривой модуль

Дмитрий d
09.09.2016
15:58:24
Чат, оффтоп - может кто ссылки на смм-чаты кинуть?

hlomzik
09.09.2016
16:02:28
Сммщик в чяте! Ловите его!

Klim
09.09.2016
16:05:23
Давайте обоссым его

hlomzik
09.09.2016
16:06:22
И сожжём!

Vitaly
09.09.2016
16:15:19
#доброта

Дмитрий d
09.09.2016
16:15:45
?
У вас на работе smm нет? Нет знакомых? Крч срочно над узнать полезные книги по smm
Максимально прикладные
Я не смм, и таковых знакомых нет ?

Vitaly
09.09.2016
16:17:09
Дружище, зачем тебе этот богопротивный смм, давай поговорим о программировании!
При помощи программирования, умные люди создали специальный сайт: https://google.com и он поможет тебе )

Google

[Anonymous]
09.09.2016
16:37:50
У кого-то есть софтина которая собирает статистику по времени проведённом в окне?
И плагин для браузера который собирает статистику по времени проведённом в вкладках

Oleksandr
09.09.2016
16:47:34
rescuetime

[Anonymous]
09.09.2016
16:49:19

Владислав
09.09.2016
18:29:37
ну все, я пошел говнокодить на джаве

Ilya
09.09.2016
18:30:34
Разлом! Шок!

Дмитрий
09.09.2016
19:42:00
Не понимаю вашей реакции
Кто-то же должен поддерживать легаси))

hlomzik
09.09.2016
19:42:43
говнокодить не должен никто!
НИКТО

Gordey
09.09.2016
19:42:57
легаси надо переписывать в параллели с поддержкой

Дмитрий
09.09.2016
19:43:13
Java is new COBOL

Владислав
09.09.2016
19:43:43
Я буду мстить бекендерам, говнокодившим в мой фронтенд

Дмитрий
09.09.2016
19:44:24
Убивший дракона сам становится драконом))

Ҫѐҏӗѫӑ
09.09.2016
19:47:39
кобол норм, на нем самолеты американские летают

Дмитрий
09.09.2016
19:49:13
Это те, которые переворачивались над Мёртвым морем?)

Ҫѐҏӗѫӑ
09.09.2016
19:49:42
и те, и те, что летают до сих пор
и в штатах за кобол пиздец сколько платят, кстати

Google

Ҫѐҏӗѫӑ
09.09.2016
19:51:16
джаве не снилось

Дмитрий
09.09.2016
19:52:05
Ожидаемо) Страна первая внедряла высокие технологии, богатого легаси завались

Admin
ERROR: S client not available

Дмитрий
09.09.2016
19:52:23
Нью-Йоркское метро на релюшках столетней давности вообще)

Ҫѐҏӗѫӑ
09.09.2016
19:52:39
как и наши атомные подлодки

Alex
09.09.2016
19:57:05

Andrey
10.09.2016
09:11:03

Котяй Негодяй
10.09.2016
09:14:58
const items = new Array(count).fill(null)
.map(index => blaBlaBla(index));
Вместо
const items = [];
for (const index = 0; index < count; index++) {
items.push(blaBlaBla(index));
}
Мм?

Safort
10.09.2016
09:18:01
@bigslycat
Норм, только вот зачем тут return?
.map(index => return blaBlaBla(index));
без него не работает что ли?

Котяй Негодяй
10.09.2016
09:18:47
Ой. Забыл убрать, когда приводил к сокращённому синтаксису.
Ну, в данном примере можно сократить и до
const items = new Array(count).fill(null)
.map(blaBlaBla);
Весь вопрос в адекватности конструкции
new Array(count).fill(null).map(...);

Дмитрий
10.09.2016
09:23:21
Один вопрос — зачем?))
Чем тебе просто map не угодил?)

Котяй Негодяй
10.09.2016
09:26:17
Тем, что new Array(count) создаёт массив заданного размера, но значения его элементам не присвоены. Array.prototype.map() и Array.prototype.forEach() просто пропускают такие элементы. Поэтому, прежде чем обойти такой массив, я заполняю его значениями null или undefined.
new Array(3)
// [ , , ]
new Array(3).fill(undefined)
// [ undefined, undefined, undefined ]
?Это вывод ноды.

[Anonymous]
10.09.2016
09:30:51
А хотите пораскинуть мозгами?

Дмитрий
10.09.2016
09:33:25
Тем, что new Array(count) создаёт массив заданного размера, но значения его элементам не присвоены. Array.prototype.map() и Array.prototype.forEach() просто пропускают такие элементы. Поэтому, прежде чем обойти такой массив, я заполняю его значениями null или undefined.
Зачем обходить пустой массив ?
Если ты используешь map, то у тебя должен быть исходный массив, его и обходи)
Если проблема просто именно в том, что не обходятся пустые элементы, то не знаю, мне проще ramda включить, в котором forEach и map пофикшены из коробки и не забивать голову такими вещами)

Aleh
10.09.2016
09:33:54

Google

Котяй Негодяй
10.09.2016
09:34:11

Дмитрий
10.09.2016
09:34:23

Котяй Негодяй
10.09.2016
09:34:27
Я представил 2 способа.
Первый — создание массива с заданной длиной и заполнение его значениями.
Второй — создание массива с нулевой длиной и генерация значений во внешнем цикле.
Второй способ — традиционный.
Первый — не очень.
Но красивый и компактный.

Дмитрий
10.09.2016
09:36:18
Я просто не понимаю, зачем нужен просто массив, в отрыве от данных
let usedItems = [1,2,3]
let resultedArray = usedItems.map(e=>e*e)
Что не устраивает здесь то?)

Котяй Негодяй
10.09.2016
09:36:32
Блин.
Содержание массива заранее неизвестно.