Сергей: Ну никто, я надеюсь, не будет строить бесшовную сеть на оборудовании разных производителей. О домашних SOHO роутерах тут речь не идет, корпоративная ведь сеть, а в mikrotik с шифрованием проблем нет. Скорость WIFI один серьезный минус - хотя это не домашняя сеть, чтоб торенты гонять да fullHD каждому смотреть, будет достаточно при 60 юзверях. Да и в корпоративных сетях ведь некто не использует wifi в рамках кабинета как основной интернет, а для мобильности и быстроты включения сотрудников.
d1monster: ну а в else if мы проверяем закрывающие скобы с оптимизацией : если нет открытой скобы last==false то проверять дальше нет смысла- ошибка уже обнаружена, иначе сверяем последнюю открытую скобу с типом закрывающей, если совпадает - текущие скобы закрылись - удаляем ее с stack, обновляем last, проверяем дальше. Иначе ошибка - несовпадение открывающей и закрывающей скобки - ошибка, дальше проверять незачем.
d1monster: это оптимизация производительности, чтоб запомнить последний символ в массиве, который нужный в условии обнаружения закрывающей скобки при сравнении. Можно было выкинуть last, но тогда, чтоб получить последнюю открытую скобу придется писать и не раз stack[stack.length - 1] и тем самым каждый раз раз обращаться к массиву и его длине, что медленнее, чем просто к готовой переменной, вообщем это кеш последней открытой скобы своего рода. При добавлении в конец массива запомнили что последняя в массиве и есть char, тогда нет нужды опять проверять какой же там последний элемент. А при удалении pop обновляем last=stack[stack.length - 1];
"И если char == { или ( то else if не срабатывает" да... не сработает и не должно ведь мы уже определили, что текущий символ принадлежит к открывающим скобкам, он не кот Шредингера и он не может принадлежать к открывающим и закрывающим скобам одновременно=). Дальше цикл продолжится, т.е будет следующая итерация, и проверка следующего символа.
Stalker_RED: хех, баг репорт отклонен- в ТЗ автора только 2 типа скобок =))
Угу, кажется, подправили, осталось только оптимизировать типа last=stack.pop(); и вместо сравнения индексов, сравнить last!=br_opn[bcc] дабы не делать обход массива лишний раз, хотя это я конечно придираюсь. Все, будем гитхабить - код года=))
Stalker_RED: да, у меня та же мысль была, но воздержался и решил не усложнять=)
P.S в Вашем коде образовался смачный косяк в одном месте, подсказка console.info(js("function test(){ alert(){]; }")); //?
Дмитрий Ковальский: ну да=)) расскажите ему сейчас про модели и патерны...
Так пусть индусы и гадают, не наша забота, он ведь хотел превратить строку число? - превратили=)
ну if-else не совсем то, не директивный / условный компилятор, хотя для справки пусть будет=). Ну а второй- это тот же что и я нарыл. Видать это пока самый раскрученный. Количество загрузок остальных вообще ничтожное...
hime2: и чем это у Вас отличается по алгоритму? "Если http не подошел" что Вы под этим имеете ввиду? Тут иного выхода , кроме грузить img и обрабатывать ошибку нет... тогда какие велосипеды?
Stadinov Denis: =) пришлось, ведь у конструкции name = name || "default val" есть неприятный изъян- он не отличает не указные значения от falsy типов - undefined, false, 0, null. А name = name!=undefined?name:"default val" не меньше раздражает, когда их много...
DevMan: Ну велосипед тоже можно сделать похожим на Harley Davidson, в том числе и по скорости - осталось только мотор поставить, раму сменить, колеса... =) хех классика...
Да она однопоточна с точки зрения ОС. Чем это мешает? А ничем. Php тоже однопоточен при обработке запроса от пользователя, тем более он полностью синхронный. Как тут не крути нода более перспективная.
Никто же не запрещает запускать много процессов. Нет никакой принципиальной разницы как организуется многопоточность - через потоки ОС или через процессы ОС, разве что в необходимости организации IPC, если это действительно нужно. Зато это дает изолированность, независимость и универсальность потоков - будет ли он запущен на одной машине или на многих, архитектура их одна и та же. Про отпадании кучи проблем с синхронизацией потоков уже молчу...
DevMan: как раз в этом и дело, ну одна из основных причин.
Технически нода покрывает все что покрывает php и покрывает то, с чем он не справляется на том же уровне, как нода. Трудно (если не невозможно) вообразить задачу, с которой бы справился php, а node нет...
Все дело в себестоимости решения традиционных задач на node по сравнению с php. ИМХО с выходом новых спецификаций JS, что позволит создавать более удачные архитектурные фреймворки, php будет все сложнее держать свою нишу, но он еще долго будет оставаться как основой в малобюджетных либо мелких проектах.
Iluhin007: Ну я игрался вот вот с такими (www.aliexpress.com/item/10PCS-LOT-NRF24L01-wireles... но эти на 2.4ггц и эти практически полноценные сетевые интерфейсы с простой одноранговой сетью, о них достаточно информации и видео в ютубе. У каждого свой уникальный адрес. Те устройства что "тупые" это у китайцев просто отдельные передатчик и приемник для игрушек.
Можно взять готовые, и уточнить у продавца заявленный режим репитера: www.aliexpress.com/item/SNR612-TTL-433-Wireless-RF...
Вообще у китайцев немалый выбор приемопередатчиков для телеметрии, хоть один из них должен поддерживать решения по увеличении зоны покрытия.
kahi4: Ну при динамической индикации допустимый ток можно несколько превышать, тем самым повышая и яркость. Хотя все ровно это может не перекрыть "моргания". Ну а обновлять куб нужно не реже 25 раз в сек. Может быть, в тех кубах засвечивают не один светодиод за раз, а по линиях, в такие поделки я не вникал... =) Проще пока взять готовый проект и собрать.
Транзисторы - да любые биполярные с током коллектора в 500ма -например S9013, если нужен NPN
За Москву не знаю, но конечно же должно быть=)
Гугл найдет где есть лазерная резка акрила для корпуса куба. Для травли плат, думаю, там хлорное железо, старую тарелку керамическую Вы сможете найти=) Детали тоже, если денег не особо жалко, иначе взять у Китайцев на taobao.com через посредника mistertao.com торбу всего, что душа пожелает за относительно смешные деньги, вообще есть и китайские сервисы по изготовлению плат за вполне вменяемые деньги. Правда месяца два ждать.
А форумы: radiokot.ru cxem.net
Алексей POS_troi: хех=) ну админ провайдера или сосед блотной прокурор может не разделить Ваши увлечения, и если у провайдера не тупой коммутатор/роутер можно схлопотать "пентестинга" входных дверей либо штрафа если спалят=))