Вы видите копию треда, сохраненную 20 июня 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
Положняк на текущий момент такой:
В почете фронтенд гречневые работяги
под ними ходят бэк энд шахтеры
тестеры чистят говной вилкой на параше
продакты кумаются с начальником сизо, занимаются просветительской деятельности вне колонии
лиды наварачивают лобстеров в пресс хате, иногда приходится марать руки за мужиков(зашкваром не считается)
Все вкатыши которые залетают в тред по ныть или с тупыми вопросами - априори записываются в опущенцы. Отправляются на парашу, работают сучками(их трахают мужики).
Вкатыши которые задают обдуманные вопросы - записываются в касту стремящиеся.
Нужно удалить класс (classList.remove) после того, как завершится добавление элемента с помощью append, чтобы сработал transition в момент удаления класса. Но элемент появляется сразу без этого класса, как будто его никогда и не было, и transition не срабатывает.
setTimeout(() => elem.classList.remove('some-class'), 0) не помогает.
Нет ли чего-нибудь наподобие elem.onappend, чтобы написать elem.onappend = function () {this.classList.remove('some-class');} или как-то так?
Спасибо.
Его надо обязательно ставить на parentElement? Или есть способ сделать, чтобы всё было завязано на сам элемент, без привлечения посторонних сущностей?
>setTimeout не помогает
Ко всему прочему, у тебя transition в том же классе указан, который удаляешь?
> Так элемента не существует, только папка узнает о его появлении.
Ну класс ведь я к нему как-то прикрепляю до появления. Вот думал и коллбэк на собственное появление прикрепить заранее. Сначала пытался в elem.onload, но результат немного предсказуем.
> Ко всему прочему, у тебя transition в том же классе указан, который удаляешь?
Нет, отдельно в CSS через селектор 'parent > elem'.
Я начинал с вёрстки и жиквери. Реактоговно достаточно легко зашло, ангуляр и вуе не знаю.
А вёрстку на каком уровне знал, чисто основы или пытался детально изучать? Я скачал курс по фронту, так там только видео на 20 часов, хотя базу уже знаю. До седых мудей буду к джаваскрипту ползти.
Подставляй жопу ты теперь сучка в треде, ща буим тя ебать
> Ты можешь хоть все хтмл атрибуты определить, пока элемент не сунут в дом, его нет.
Но ведь это не мешает, например, назначать ему различные listenerы до того, как сунуть в DOM.
> Каскады-каскадики.
Ну в моём случае, как мне кажется, это наиболее простое и очевидное решение. Или это может влиять на transition? Сейчас назначил transition прямо в стиле элемента, ничего не роменялось.
>>27069
> Наверни MutationObserver
Сейчас всё сделал, но transition всё равно не работает (хотя сам MutationObserver работает нормально, например может вывести элемент в консоль).
Когда убираю класс вручную, то всё работает. Когда ставлю значительную задержку в setTimeout, то всё работает. А сделать, чтоб класс убирался сразу после append, не получается, проёбывается transition.
> setInterval
Зачем? Это ж для многократно повторяющихся действий. А мне при добавлении одного элемента надо один раз ему класс поменять (но так, чтоб сработал transition). Для однократного действия есть setTimeout, его я уже пробовал, но он помогает только при длинных задержках, а если я ставлю задержку 0 (чтобы он сразу после append сработал), то не получается (видимо, срабатывает раньше).
Сейчас пытаюсь разобраться с @keyframes, надеюсь это поможет.
> Сейчас пытаюсь разобраться с @keyframes, надеюсь это поможет.
Да, помогло. Вместо класса прописал всё в @keyframes {from {...}} (он же 0%), а в to (он же 100%) ничего не прописал, таким образом всё само плавно отменяется по мере анимации (отменять что-либо какой-нибудь командой по типу classList.remove (а именно с этим изначально была проблема) теперь вообще не нужно, всё автоматически делается), даже отдельно transition назначать не нужно (соответственно, вместо времени transition теперь время animation).
>>27266
Это я тоже видел, спасибо. Но платить я не собираюсь. Идея была читать ввод в поле и в новой вкладке открывать https://www.google.com/search?q={запрос}
Мне просто нужно реализовать подсказки для поиска как на скрине.
> Попробуй рефлов перезапустить, как только добавишь элемент в дом.
Как это лучше сделать? Сейчас погуглил, он вроде как должен автоматически запускаться при добавлении элемента.
Проблему я уже решил (точнее, пошёл другим путём (вместо transition сделал animation), где эта проблема вообще не возникает), но всё равно интересно, какие ещё варианты есть.
Когда пользватель вводит текст, отправляешь его на апишечку гуглояндекса и там наверняка в ответе будет что-то типа предложений, которые запихиваешь в `<datalist>`. Если это вообще не отдельный эндпоинт.
Так это такие же данные за такие же деньги
>Энджой ёр капча. Думаешь гугол не знает про таких хитровыебаных?
Передаёшь капчу пользователю, в чём проблема? олсо подразумевалось, что ключ для апишечки он уже получил.
А в других языках какие реализации этого есть?
бамп
Ну это ты совсем верхнеуровнево описал. А меня интересует почему именно потрохи так устроены, как устроены. Можно было бы по-другому реализовать?
Event Loop это не часть ECMAScript. Это Browser Object Model.
К языку это отношения никакого не имеет - это элемент рантайма, и реализован он может быть как угодно. Микротаски это это спека Promise/A+
В node.js, например, event loop построен поверх libuv, и кроме очередей микро и макро тасок, там еще есть process.nextTick,
а в фотошопе свой эвент луп, а в quickjs его вообще нет.
>Почему именно так? Почему именно такие структуры данных?
Потому что есть соглашения, которые рождаются из эволюционного развития и закрепляются в спецификациях. Программирование - это контрактная дисциплина.
>А в других языках какие реализации этого есть?
Эвент луп- это абстракция. Ты можешь его где угодно и как угодно написать, как и все остальное. В операционной системе тоже есть эвент луп. И на уровне железа, есть своего рода эвент луп в виде прерываний. В жс ты тоже можешь навернуть свой собственный эвент луп, с блек джеком и шлюхами. Разумеется, еще одним слоем абстракции.
Нет, исторически сложилось.
Так можно было в браузере реализовать его по-другому или нет?
> Потому что есть соглашения, которые рождаются из эволюционного развития и закрепляются в спецификациях.
Ну они такие типа думают "так ну стэк у нас есть....о а давайте три очереди туда прихуярим: таски/микротаски/и рендеры???" Так что ли? Откуда взялись соглашения такие?
А что будет, если выяснится что, например, префиксные деревья (не знаю как) лучше подходят для этого? Будут движки браузеров допиливать?
При чем тут префиксные деревья? Это детали реализации, они не имеют никакого отношения к сущности очереди. Ты почему путаешь уровни абстракций?
>Ну они такие типа думают
Никто ничего не садится и не думает. Вчитайся в слово ЭВОЛЮЦИОННОЕ развитие, с последующим закреплением соглашения.
Установи себе браузер Mosaic, Firefox первой версии, Chrome первой версии, и посмотри, что, как и когда появлялось.
Открой википедию хотя бы, и прочти вообще историю развития веба.
Какой-то ты душный, запили свой бровзер на префиксных деревьях, а там и рыночек порешает.
Берешь список депрекейтнутых фич из w3c, смотришь как язык развивался. Если народ пользуется и просит добавки, значит годноту ЗДЕЛОЛИ.
> При чем тут префиксные деревья?
Как причём? И то, и то структуры данных. Со своими характеристиками типа скорости доступа, вставки, сортировки итд.
Или как?
Отсортировал тебе колстек, удачи поразрабатывать
Ты понимаешь, что очерели и сейчас могут быть реализованы на основе префиксных деревьев или не понимаешь? Понимаешь, что это более низкий уровень абстракции, не имеющий отношения к твоему вопросу или не понимаешь? Не понимаешь, что конкретная имплементация вообще не декларируется спецификацией и за нее отвечает конкретное окружение, движок, рантайм. Ровно как и структуры поверх которых построены объекты, массивы и вообще всё. Ты отличаешь, сука, ПОВЕДЕНИЕ/ИНТЕРФЕЙС от РЕАЛИЗАЦИИ, или нет?
Я понял. Хуль ты агришься так? Ты мне лучше на вопрос ответь: почему так нахуй, почему эвент луп в браузере именно так реализован? Почему он исторически именно в такую форму эврлюционировал(покемон ебучий). Ответ «так исторически сложилось» – это ответ уровня «так хотел бог»
Микротаски появились относительно недавно, их пытались вхуярить в уже готовую архитектуру и получилось как получилось.
Без них все было в общем-то просто и логично.
Потому-что блять надо впихуть невпихуемое: Сделать один поток исполнения параллельным самому себе
Естественно это все побилось на маленькие атомарные сегменты (таски) и выстроились в очередь. Других вариантов это сделать то и нет.
Это эмуляция одновременного выполнения кода, 1таск выполняется сразу, другой с задержкой, по факту в основном потоке они идут подряд, js по другому не умеет работать, поэтому в браузеры вставили типо костыль - самописную помпу, которая помогает js стать асинхронным.
Если бы в теории две таски выполнялись одновременно, отпал бы принцип наследования и зависимости кода, так как таски не видели бы друг друга, или видели бы но была куча ошибок. Ошибки были бы потому что JS язык ООП, у которого один из принципов работы это наследование.
В теории можно такое провернуть, на языках не ориентирующихся на ООП, но сайты работают только на js, поэтому все браузеры подстраиваются под условия его работы.
Так хотел Брэндан Ейх тебя устроит?
приложение сразу делают на Next.js, чтоб в будущем с ssr не ебаться и т.п.
Для прототипа можно и CRA, а потом его за эжектить.
Next.js - тот же CRA, который идёт вместе с кривым конфигом вебпака. Учитывая, что у некста очень специфические требования к проекту, вплоть до хостинга, ебаться с SSR всё равно будешь.
Легче уж самому даже неделю ебаться с вебпаком и прочими настройками, чем тащить в проект говнину под названием create-react-app, от которой ты потом и за два месяца не избавишься. Я вообще думал, что это чисто для ньюфагов реакт потыкать, а нет, оказывается в реальных проектах кто-то это дерьмище использует. Особенно весело после эджекта, когда весь спрятанный до этого говнокод вливается прямо тебе в проект. Один конфиг вебпака там чего стоит.
> Чтобы уменьшить задержку
Как? Поставить в setInterval проверку на то, что элемент добавился, и когда она сработает, выполнить действие и отменить setInterval? Это уже совсем костыльный костыль получается.
>К языку это отношения никакого не имеет - это элемент рантайма
Недооцененный пост. Ты - умничка.
Нишево.
Пацаны что-то я тут не нашел треда по верстке, может вы сможете помочь:
Слева фаерфокс, справа vivaldi(считай хром)
Объясните плиз схуяли такая разница в размере шрифта, где начинатеся текст Шары 30 шт....
Сами эти 3 надписи это ul>li*3, font-size: 14px; задан для li
Это я уже попробовал подключить normalize.css - ничего не изменилось
Понял, короче сам font-family фаерфокс ставит какой-то выебистый DejaVu по дефолту
Сорян, могу только по ie6 пояснить.
Если задача закреплена за двумя тегами то естественно задача отображается два раза. Все бы ничего но изначальная структура данных это [{task, [tags]}]
Задачу то решил и все работает, но все равно не покидает подлое чувство что я наговнокодил и можно было написать это в 1 строчку.
Ссылка на пример
https://replit.com/@InJSoopexist/Taska#index.js
>Задачу то решил и все работает, но все равно не покидает подлое чувство что я наговнокодил и можно было написать это в 1 строчку.
Так одна строчка и будет говнокод.
Контекст нужен. В каком плане не нужна? Не нужна в теоретических материалах, где упор сделан на изучение js или на рынке не нужна верстка от кодеров, или что-то другое? Пожалуйста, постарайся корректней доносить свою мысль до читателей.
При том же, при чем гимп.
Всегда ржу с немощных фреймворк-нэйм-программистов, которые не могут самостоятельно свой говнокомпонентик из 3 полей и четырех лейблов сверстать
>анон, надо установить babel/core, babel/cli, babel/preset-env в макоси глобально.
1. Зачем?
2. Скорее всего не надо.
3. Зачем?
А где учиться верстать по имеющемуся макету?
В кокодемии.
Раньше в ПТУ учили, сейчас хз наверное на ютубе придется ролики смотреть.
Мы вам перезвоним.
Ну типа статика хостится где-то в цдн, а данные берутся из чужих апишечек.
Когда сервер таки есть, но он не твой.
Это когда пидорасы пересели в облако и сказали "опа, никаких серверов"
Щас бы на клиенте держать пароли и явки от базы.
Имею ввиду firebase
Чем отличается ивент input от keydown?
Keydown это когда просто нажали на какую-то кнопку. Input это уже когда ввели кое-что посложнее одного символа
Инпут работает только на интерфейсе HTMLInputElement и вызывается при изменении атрибута value, а кейдаун на всех объектах типа Element.
Бля два дэбила сверху хуйни понаписал. Keydown, это событие нажатия на любую клавишу на клаве, чаще всего нужна чтобы клавишу ESC обработать чтобы из модального окна выйти. Input срабатывает каждый раз когда у тебя изменяется текстовое поле, дохуища прям раз, его можно юзать во всяких конвертерах, динамических калькуляторах и т.д.
Присоединяюсь к вопросу
1280x720, 0:30
Компания одна из топа в телекомуникациях, не российская
По итогу, высшее руководство отказывает, т.к вышка у меня дропнута
Один из живых примеров, когда наличие бумажки может все порешать
И да, есть тут в треде, кто в иностранную компанию без образования пролезал? Тратить время, когад тебе скоро тридцатник, на получение корочки в вечерке и тп ради того чтоб через 5 лет тебя может быть возьмут в йоба компанию нет никакого желания
В России вышка - это что-то вроде справки по дееспособности, а вовсе даже не привилегия. Если ты ее не получал или тем более дропнул, то кабан сразу делает вывод, что ты дурачок. Отсутствие вышки это почти как дропнутая школа, вызывает множество вопросов.
Давай обьективно ты просто чмоня, ваньку ерохина и без образования везде возьмут
Только если ты будешь яички смаковать у этого вставленного, а то одному как то не ловко
Какой же дегенерат. Иди почитай иерархию домовых нод.
Решает не вышка, а блатная ЦНС.
Рендер реакта ты не отдашь воркеру, так как у него нет доступа к дому.
MVC это же вроде руби он рэйлс популяризировал, но это было до большой тройки фреймворков
теперь уже SPA уходят медленно, сейчас, как я понимаю перспективными считаются pwa и ssr
Ну да правильно не нужна. До того момента, как в вакансии не будет написано html/css
>сами настраивайте вебпак со всеми зависимостями?
ну либо просто иметь шаблонный конфиг и владеть секретной командой npm i
This. Хули там настраивать один раз разобравшись?
Небось в этом конфиге до сих пор создаёшь отдельный файл для вендоров и лепишь хэши заместо контент хэшей?
Диды лепили и ты лепи.
Мимо
>Можно ли отдать тяжелый рендер реакта
Да.
>какому-нибудь веб воркеру
Лолнет, это не так работает. Ты даже нормально не можешь делегировать воркерам сериализацию/десериализацию, чего уж там говорить про доступ к дому.
То, что ты хочешь, называется SSR и легкий способ его получить - использовать какой-нибудь пререндер сервис, если не хочешь на уже имеющимся проекте городить костыли.
>сами настраивайте вебпак со всеми зависимостями
Нет конечно, за меня это уже сделали хомячки с жидхаба с кучей бойлерплейтов и темплейтов.
>Как? При первой проверки же тупо спалят.
Хехехе, именно на этот случай в некоторых говновузиках существуют т.н. "мертвые души". Хотя, если ты спрашиваешь об этом здесь, тебе это не особо интересно.
То-то я его за пределами серваков не видел. Пердолики любят размазать домен по нескольким папкам и называть это подходом.
скорее конкретно серверного приложения
Подразумевается получение запросов и отсылка ответов в контроллере
ЧСХ, такая ситуация, преимущественно, в рашке (ноу хейт), где испокон веков были разработчики и верстаки. На швитом западе даже названия толком-то и нету для последних, разве что PSD-to-HTML developer, лол.
Я живу в Израиле и тут одна подруга работает чисто с css в одной компании. Она только стили допиливает для корпоративного сайта
У нее зп 3000 долларов
Не сказал бы. Мне интересна эта тема.
Есть всякие люди, которые учатся за деньги. Есть дипломы, которые не в системе, но они до первой проверке. Если покупать диплом, то скорее всего только по связям. А у меня их нема. А придти к дяденьке декану(или кто там) и сказать: "продай диплом!" Выглядит скорее забавно.
Но если честно, то не совсем понятно, насколько это вообще жизнеспособная тема, как покупка диплома.
Про мертвые душе, кстати, в первый раз слышу. Но примерно понял про что ты.
То что ты этого не видел, говорит о скудности твоего опыта.
MVC изначально GUI паттерн проектирований, который появился и популяризовался в средах Smalltalk. Позднее MVC стали применять вообще во всей гуйне на десктопе. А до серверов он добрался разве когда ты родился только.
По блату, скорее всего. Что-то там нет таких вакансий.
Круто, а как ссылку на функцию-то передать? Там 2 аргумента обязательных
Smalltalk многим старше Делфи.
Большинство современных концепций - ООП, GUI, JIT - популяризовал именно smalltalk.
Когда-то пытался учить, но потом нагуглил что SPA не индексируются нормально и не понимаю нахуя тогда люди это делают?
Не зачем. Это развод гоев на шекели.
Чтобы вкатуны охуели учить, чувствовали себя тупыми и шли в грузчики.
Короче до короны я норм все помнил, щас как. Уд то с нуля начинаю, есть быстрый текстовый экскурс по реакту какой то ?
со всеми фичами актуальными, чтобы прочитать и вспомнить че к чему
А то я долго чую разгоняться буду, неделю минимум
По приколу,а че? Ты кто ваще по жизни что б такое спрашивать? Сьебал нах
Зачем тебе индексировать интранет-портал, банковский кабинет пользователя, дашборд, wysiwyg-редактор, CRM, видео-плеер, мессенджер, инструменты для совместной работы (построители графиков, канбан-доски, онлайн-офисы), графические редакторы, видеоредакторы, майндмапы и прочие приватные базы знаний (notion, evernote, etc). Что ты собрался индексировать в современном вебе, какую ценную информацию ты хочешь предоставлять поисковикам, которой у них до сих пор нет? Ты часто переходишь из поисковой выдачи на какие-то рандомные ресурсы, чтобы каждый раз новый? Или ты зиждешься надеждой что трафик на визитку твоего ООО принесет поисковая выдача? Действительно веришь в то, что переиграешь релевантность контекстой рекламы конкурентов и прочих маркетплейсов?
Ты изучаешь заучивая, что через две недели ничего не помнишь? На что ты расчитываешь с таким подходом?
Иди нахуй мразота, у меня 5 пет проектов уже написано, каждый уровня клон фейсбука
Я с SSR не очень хорошо знаком, но он разве не только при первой загрузке помогает? Типо отрендерил spa и отдал клиенту готовую страницу, а дальше уже клиент все делает. У меня сейчас такой кейс, что пользователь жмет кнопку и рендерится тяжелый блок, оптимизировать там уже не получиться из-за большого количества элементов и виртуализацию тоже не подключить.
Вот я и думаю как можно изъебнуться, чтобы не блочить сайт на эти секунду-две. Может можно отдать кому-то рендер этого элемента и потом быстро вставить на страницу, либо сделать какой-то тротлинг, чтобы небольшие элементы внутри него рендерелись постепенно.
обосрался с клин кода
Шиз это ты. За две недели ничего никуда не уходит.
Ты на велосипеде если день не покатаешься. забудешь как?
Валидацию по схеме прикрути и нахуй выкинь этот ТС
>2 недели не кодил
>вспоминает
Ты по-моему еще не поправился, и болен по дизни на голову. Люди годами могут не кодить (служить в армии, сидеть в тюрьме, лежать в коме, пинать хуи) и ничего вспоминать им не приходится, только прочесть доку к появившимся API.
Тебе правильно говорят, заучивая что-то, вместо осмысленного понимания, что ты вообще нахуй делаешь - ты ничему не научишься.
Это все равно, что изучить таблицу умножения наизусть, как стихотворение. А потом каждый раз силиться вспоминать чему там равен семью пять, и сетовать, что забыл.
>две недели лежал в отключке, щас пытаюсь писать код и понимаю что нихуя не помню
Как ты в отпуск планируешь ходить?
даун ебаный, ты сравниваешь отпуск(отдых), и болезнь в тяжолой форме, ты че пизданутый? надеюсь ты от короны ваще нахуй сдохнешь
Нiт, тс только во время разработки поможет, в рантайме у тебя тёплый ламповый динамический жс.
Слился, пиздабол.
Въеби свой скедулер и делай гранулированный рендеринг. Да, ты в правильном направлении.
> Лучший учебник на JavaScript на русском языке — Кантор . Ультраплатиновая ультрагоднота. У многих с нее пригорает, поэтому палим фишку: читаем про сам язык, скипаем особенности работы всякого дрянья в IE6, задачи делаем избирательно. И будем вам щастье. А еще лучше - читать англ.версию (см ниже)
> Английская версия поддерживается автором в более актуальном состоянии. Сразу дается ES6, убрано всякое говно мамонта, пугающее ньюфагов.
Там все так? Не поменялось ничего в русской версии?
не поменялось, вкатываться не стоит
Английскую "более актуальную" давно перевели на русский и теперь обе актуальны
Понял. Есть специальный ресурс для бэкендщиков, странно, что ты о нем еще не знаешь. Не благодари https://www.google.com/
Тип этого u определи.
Но при этом SPA от силы 2% в вебе. Рякт - в первую очередь либа от лицокниги, а потому служит целям лицокниги - превратить интернет в ботнет фейсбука, в котором сервера пропукивают джейсоны от рекламных скриптов, а всё остальное крутится на клиентских машинах.
Если учитывать, что основная масса веба - это сорта вордпреса, то да.
>SPA
А не всегда так, иногда бывает что Vue/React используют для того чтобы написать логику для части страницы, пример корзина, фильтр товаров с кучей чекбоксов, просмотр товара на детальной странице, формочки мы вам перезвоним и прочая логика на фронте. А если прям совсем SPA и нужна быстрая поисковая выдача, то пилят серверную часть на ноде, где нода дёргает ручку апи и реакт на сервере генерирует html. А так как писали выше есть много мест где поисковики не нужны, а быстрый и удобный фронт да.
1) Отделить фронт от бэка, клиенты разные бывают, и не все фулстэк мастера.
2) Уменьшить задержки на отрисовку, блики от перехода страниц
3) Компонентный подход, надо разделять, чтобы властвовать, да
>не индексируются нормально
Для этого используют SSR, заодно живее бустрапится
Зато зарплаты одни из самых высоких и вкатиться легко. Это же идеальный вариант для тех, кто презирает ойти, программирование, но хочет побольше зарабатывать. То есть для людей вроде меня
>для тех, кто презирает ойти, программирование, но хочет побольше зарабатывать
Ой как я тебя на собесе попущу, кабанелло...
Юзай Next.js/Nuxt.js, тогда будут индексироваться
Я не кабанчик, кабанчик это мой работодатель, а я жулик-приживала, для таких как я js и go - убийственная комбинация. И да, меня вполне легко можно попустить на собесе, я ведь трачу меньше времени и сил на прокачку скиллов, чем энтузиасты, но на собесах это делают достаточно редко
>бутстрапится
БЛЯТЬ ДА ПОЧЕМУ КАК НЕ ЗАЙДУ В ЭТОТ ТРЕД, ТАК ЖС МАКАКИ СТАРАЮТСЯ УПОТРЕБЛЯТЬ КАКИЕ-ТО ИМИ САМИМИ ЕДВА ПОНЯТНЫЕ АНГЛИЦИЗМЫ?
Уебище, пиши английские слова, либо вообще не высерай это.
>Bruh stop posting cringe ffs
Нахуя они тебе? learn.javascript.ru и вкатывайся за хлеб.
И вот я подумал, что внедрение WASMa в клиентский код могло бы существенно затруднить подобные анальные игры, т.к. дебажить васм - то еще удовольствие, особенно если в него были скомпилены мегабайты какого-то иностороннего кода (какие-нибудь либы шарпа со своим рантаймом). Вот для ноды, например, уже применяют JSC (жыэс перегнанный в байткод для V8) и реверсится такое, все-таки, не в пару кликов (да-да, есть божественная Ghidra и кастомные плагины к ней, но все же).
Как вы думаете, в ближайшем будущем стоит ожидать увеличение использования васма на клиентской стороне для сокрытия какого-либо чувствительного кода? Был ли у вас опыт дебага достаточно объемного и сложного васм кода (именно таргета, а не в виде исходника)?
сука как теперь глаза отмыть?
>внедрение WASMa в клиентский код
Ерунда. WASM не может нормально работать с ДОМ и прочими интерфейсами, и, в отличии от нашего любимого жса, слишком прост для нормальной обфускации. То есть, во-первых, писать на нем классический чувствительный код (который или куда-то стучится, или вызывает какую-то либу) нельзя, а во-вторых такие вещи, как их не обфусцируй, палятся через галочку "break on xhr request" или через поиск названия функции (ни разу не видел, чтобы тот же вебпак разбивал или переформатировал строки, чтобы этого избежать, хотя вещь вроде элементарная).
Тлдр: нет, хуйня.
>htmlacademy
Обфускация жаваскрипта для защиты всяких секретиков это изначально уебищный подход
>WASM не может нормально работать с ДОМ и прочими интерфейсами
Это да, но это и не всегда нужно. Например, намедни я ради фана потрогал сервис intickets - упрощенно говоря, там на клиенте генерируется уникальный ключ и потом используется для шифрования полезной нагрузки при общении с сервером. В дебаггере это не заметит только слепой, ну или ленивый, что, в общем-то, и можно считать за достижение поставленной цели (часть ламовых скраперов отвалятся). Но вот будь такая же процедура написана где-то в кишках многотонного васм кода, дебаг бы значительно осложнился (т.е. ты в инициаторах запроса видишь код с конечной шифрованной строкой, в постмессаджах - соответственно, вход и выход, а васм код здесь уже фигурирует как черный ящик). Думаю, что отреверсить в васме даже какую-то примитивную хуитку, которая была бы написана на шарпе, было бы проблематично, не?
>>30182
Согласен полностью, поэтому и доставляет фан. Но речь в вопросе зашла про васм, и тут же дела с дебаггингом, по сути, будут приближены к таковым при работе с бинарным кодом, как прям крацкеры в своих софтайсах орудуют.
Причём здесь сокрытие? Обфускация - сторонний эффект минификации. Сейчас бы что-то обфусцировать в скрипте, который полностью хранится на клиентской машине, лол.
Ну ты, поди, между строк читал.
> Обфускация - сторонний эффект минификации.
Частный случай.
> Причём здесь сокрытие?
Здесь - буквально, зашить в код, который хуже поддается отладке и реверс инжинирингу как следствие.
Бтв, парни, вы так ополчились, будто я на другой стороне воюю. Я-то не собираюсь таргетить васм ради этих целей, лол, у меня интерес больше в плоскости - "а насколько хорошо инструменты разработчика позволяют отладить ВАСМ код".
Тем не менее, в компилируемых языках этим занимались и занимаются до сих пор. ЗАКРЫТЫЕ ИСХОДНИКИ
>потом используется для шифрования полезной нагрузки при общении
Ну я о чем-то таком думал, да. ЧСХ прикол чисто антиотладочный, шифрование от внешних перехватчиков наш любимый SSL обеспечивает. Но васм код всё еще можно дебажить, примерно как ассамблер. Думаю если он обретет популярность - появятся средства обратной сборки, как сейчас для асма и си, и соответственно это перестанет быть совсем уж большой проблемой. Даже если авторы будут конченые и реализуют свой собственный алгоритм с обфускацией - против упорного аутиста это не поможет.
мимо когда-то по работе с наслаждением потрошил протокол обмена данными для буквенных мониторов десятилетней давности
Ну, ковыряться в большой программе и при открытых-то исходниках обычного качества тяжело, а уж при закрытых...
О, а у вас там весело, спасибо за тред.
>Частный случай.
Не частный случай, так как обфускация - не цель минификации. Иначе бы минификация давно бы уже скрывала названия методов объектов.
>Здесь - буквально, зашить в код, который хуже поддается отладке и реверс инжинирингу как следствие.
Ты вебпак или бабель хоть раз запускал?
>Бтв, парни, вы так ополчились, будто я на другой стороне воюю. Я-то не собираюсь таргетить васм ради этих целей, лол, у меня интерес больше в плоскости - "а насколько хорошо инструменты разработчика позволяют отладить ВАСМ код".
Никто на тебя не ополчился, параноик. Ты просто хуйню несёшь про какой-то блять реверс инженеринг клиентских блять скриптов. Приватные блять апишечки с фронта, чё вообще несёшь?
Охуенно, охуенно.
>мимо когда-то по работе с наслаждением потрошил протокол обмена данными для буквенных мониторов десятилетней давности
Моё почтение.
После прочтения стопок тех.лит/доков - ты бы не так заговорил, залетыш из 1С треда.
>ЖС МАКАКИ
У нас миллион фреймворков/диалектов/рантаймов/подходов. Здесь только профи разберется, ваши го и пистоны на фоне - игрушки для детей.
Разбираюсь тут с редаксом. Если мне нужно выполнить какой-то простой экшн, то я могу по сути передать в диспатч либо просто объект, с типом и передаваемыми данными в редъюсер, тут всё вроде бы понятно.
Но если мне нужно выполнить экшн, который ссылается на предыдущее значение к примеру, почему передается функция, возвращающая анонимную функцию, которая еще раз вызывает метод диспатч принятый в качестве аргумента анонимной функции? Это по сути такой костыль? Метод диспатч передает в коллбек еще раз функцию диспатч и гет стейт, чтобы такое можно было провернуть? Или я просто хуйню несу и не понимаю как это работает? Гетстейт есть у стора к примеру тоже, но мы-то этот гетстейт берём как аргумент у диспатча, а не вызываем её у объекта стор. Я запутался.
> ваши го и пистоны на фоне - игрушки для детей.
Двачую, сам выкатился из фронта в бекенд на го, это как глоток свежего воздуха, такая лёгкость, здесь всё намного проще, а на фронте дохуя ньюансов надо знать, прямо сверхдохуя, а на ламповом огрызочке го маленький уютный мирок
А сервер тогда чем занят? Кроме выплевывания данных из базы клиенту и вопросами защиты данных.
Экономит хозяину бабло.
Это чтобы спрятать чтение из хранилища в сами экшоны. Ну и чтобы получить болименее актуальное значение.
Так это же все разновидности SPA разве нет? Pwa - это спа для установки на мобилку, ssr - это спа с серверным рендерингом.
Хуй знает что там хочешь, но ты запихнул два экшона в тханк-хуянк, что является нарушением основополагающего принципа флюкса - больше бойлерплейта богу бойлерплейта.
И этот фрагмент ничего не говорит о том, как у тебя мидлварь переваривает `dispatch()` в аргументах диспатча.
Ты лучше заместо экшонов тудулиста запихнул бы какую-нибудь ассинхронщину, тогда сразу смысл существования тханков и мидлварей станет понятен, и, что самое главное, добавится бойлерплейта, так как очередной тханк - это как минимум 3 экшона в кодовую базу проекта, что очень флюксово и кошерно.
Не всегда, но чаще да, тем более на ноде или особенно на го, там меньше неожиданного поведения, больше строгости, нужно больше знать в глубину и меньше в ширину как на фронте обычно нужно
>Gulp нужен или нинужон?
Смотря для чего. Просто собрать жс вроде сейчас webpack и parcel новый.
>на ноде
>там меньше неожиданного поведения
Чёт проиграл, на мультиплатформенном движке у него больше строгость и меньше неожиданного поведения, одна история охуительней другой. Я уж молчу про экосистему.
Го такой приятный и нарядный потому что в него мегакорпорация вливала бабло и усилия спецов, как и тайпскрипт тащемта, а не потому что он какой-то там волшебный хороший сам по себе.
Ты перед фразой "меньше неожиданного поведения" не заметил "особенно на го"?
И в ноде давно на TS пишут, но я всё равно про го говорил прежде всего.
загляни в пизду своей мамаши, я там два пет проекта припрятал, после того как в нее кончил
Чет не работает, анон, погугли за меня
>го, это как глоток свежего воздуха, такая лёгкость, здесь всё намного проще
> if err != nil { goto oshibka }
И что не так? Это же тупой бойлерплейт, что может быть проще? Думать особо не надо. После фронтенда мозги отдыхают.
>>30659
Спроси у тех, кто называет. Наверное завидуют тому, что в го самые высокие зарплаты за такой огрызок вместо языка, вот и рвутся на пустом месте, хотя могли бы взять да перекатиться сюда.
Особенно на собесах смешно, приходит такой дядя синьор-помидо (с 3 годами опыта, конечно) и такой "А у вас верстать нужно? А то я верстать не умею". И сидишь такой с лицом лица, формулируешь вежливый ответ
Щито поделать. Некоторые годами сидят на одних и тех же проектах, а там какой-нибудь кит типа ant.d, smentic или, упаси Б-же, Material UI. И все, приехали. Хотя, справедливости ради, сейчас с повсеместным внедрением дизайн систем типа Zeplin, Invision, Figma и им подобных, верстка, по сути, сводится к тупой копипасте свойств элемента.
а есть библиотеки,которые облегчают писать такие фишки как перемещение,исчезновение,отскок,оборот?
Хранишь координаты мячика, через ивен листенер получаешь координаты клика и присваиваешь их мячику.
Через переменные и функции.
Я бы для надёжности зашифровал через RSA, а то мало ли местный реверс-шизик увидит эти координаты.
Ну тип httpOnly ты можешь прочитать только если сервер между собой и источником поставишь. Кто то на сервере видимо собирался читать эту куку, но вот пусть и читает, это не особо твоя забота
ну по идее как то же можно ставить, везде вижу, что нужно сохранять токен в httponly, и указывать в хедере при запросе, а как его взять и поставить в хедер - пустота. Я мб конечно не знаю чего, не занимаюсь фронтом особо
Типа как здесь?
https://youtu.be/894seNhONF8
Ну такое, хотя если другого варианта нет
>>31141
Да это то понятно, но надо в хедер именно
Я надкюсь, что когда-нибудь сделают хороший, годный графический редактор для верстки, в котором эта самая верстка будет проходить интуитивным оборазом, как и любая другая работа в графических редакторах, а не через писанину простыней.
Ты только что microsoft frontpage
Нечто подобное было в QuokkaJS когда я ее реверсил. Так эти долбаебы всю логику запихнули в какой-то левый нод модуль и напейсали типа "plz dont hack this". Ну и да, там ключи использовались с ассиметричным шифрованием, поэтому пришлось патчить файлик и хучить в нем вызовы к модулю crypto. Получился на выходе patch + keygen.
>>31143
Чтоб все охуели, что так можно! Там исходник на Сишечке, а 8к - это последствия перегона через llvm или emscripten. Можно только догадываться, какая жопа творится в выхлопе CLR какого нибудь Блазора.
Потому, что могут. Ещё вопросы?
Нет, я про message queue в целом и google pubsub в частности.
> Я думаю
Ничо, с возрастом пройдёт.
Так тильду уже запилили, пиздуй собирать сайтик.
480x360, 0:04
>Там исходник на Сишечке
mp4
>в выхлопе CLR какого нибудь Блазора.
Звучит как какое-то заклинание.
Так это ж просто обертка над экспрессом, зато с типизацией и декораторами.
Нода едва ли не единственный способ легко сделать пререндер, например. А также, по сути, монополизировал нишу всяких Serverless/lambda, SSG и тому подобные сервисы, на которые сейчас в странах Запада наблюдается определенный хайп.
Да. Фазер, например. Спецом запилили для этих целей.
Figma.
Нужен срочный внутривенный гайд как из spa на реакте сделать pwa в как можно более короткие сроки (часов 12). С меня нихуя.
Есть ряктоприложуха, нужно чтобы она открывалась как псевдоприложение с телефона, рякт нейтив не предлагать.
>А в Styles всякие .scss файлы он уже не предлагает
TSM
Странно, что у тебя проект вообще работает без типов стилей.
шайтан машина
Даже если в первый раз писать не предлагает. Папку - да, внутри папки - ничего
//something.js
export const a = 1 + 2 + 3+ 4 + 5;
export const b = returnFoo();
Превратить в
//something.js
export const a = 15;
export const b = 'foo';
Чтобы, когда код уже запускали, некоторые вещи были прощитаны и записаны как литералы, а не высчитывались в рантайме. Для вебпака вроде бы есть val-loader, который что-то как-то делает похожее, а без него для серверной части как это сделать?
Разве вебпак или бабель это по дефолту не делает?
Угу. А вебпак настраивают webpack Developer
И для настройки vscod'a наймем отдельного человека
И для написания комментов в задачах в жире должен быть отдельный комментописатель
А программист только код должен писать и больше ничего
На запуск кода тоже отдельный человек будет энтер нажимать?
на JS (быстрофикс)
Я знаю JS, но не знаю TypeScript
ок, подумаю)
пути хранятся в в пропсах хока withroute библиотеки реакт-роутера, называются location
пути так и так являются уникальными, как ни крути, если ты зажашь два уникальных путя - будет работать только один, тот который будет указан последним в коде.
А если тебе надо переходить по указанной ссылке, только когда ее путь совпадает с указанным тобой - нужно вешать атрибут exact.
на все остальные вопросы - изучай router там все это есть
Хуйню какую-то несешь, есть только хок withRouter, и я вообще не про это.
>>31747
Нет, не являются, если я, как ебаный дебил, напишу в файле два одинаковых. Вот и спрашиваю, как сделать проверку на их уникальность, чтобы не смотреть самому, это можно как-то тайпскрипт надрочить на это, или уже время изучать и включать тесты для такого?
Нихуя в роутере нет, это простая библиотека для дроча локаций, я вообще про другое спрашиваю.
create react app --template typescript redux как-то так
стоит смотреть?
Стоит хуй пососать и пойти нахуй отсюда
думаю что тебе норм хуй сосать а не прогать
а что если к одной из функций много запросов?Упадет?
Если не свистит и не пердит - значит ты не программист
Нет, мне написали какое-то говно про реакт роутер. Я спрашиваю как и где хранить сами пути, как убедиться, что они уникальные. Это к ебаной навигации роутером вообще никак не относится.
там в конце статьи говориться что js никогда не блокируется,те его нельзя просто положить?
Роутер и есть самое удобное место для хранения путей.
Если все же паранойя побеждает, ты всегда можешь сделать свою коллекцию для роутов со всеми нужными проверками
те надо сделать 10 жпг картинок,привязать их к переменной,
потом запустить ГСЧ,потом IFом проверить,если выбтьая цифра соответствует переменной,то выбрасить нужную карту с эффектом раздачи(пока не знаю как это сделать)
Верные ли мысли?
и сделать кнопку для запуска этой написанной функции
Я им уже два года пользуюсь просто сбрасывая триал, занимает это 1-2 минуты раз в месяц.
Вебшторм неудобно перегруженное тормозящее говно, ну а что ещё можно ожидать от жидбрейнс? Вскод намного удобнее и приятнее, и тормозит меньше, при том что сделан на электронне (!!!)
card.text и card.icon попробуй в <Text> завернуть
Странно, мне все-таки кажется, что у тебя Card через жопу импортирутся. Попробуй просто import { Card } from 'react-native-elements'
Ещё ты только выучил js, а на собесе говорят, у нас тут TypeScript по дефолту, надо выучить ещё заодно пук среньк. Как будто зоопарка до этого не хватало
>Какие же гении, зачем создавать язык со слабой типизаций, чтобы потом писать те же типы TypeScript, как же замечательно нахуй.
Те ж мысли. Удивлен, что его везде стали спрашивать. Зато блядь в иде автокомплит получше стал!
Да, действительно через жопу, ide хуй пойми откуда взяла импорт.
Короче. нужна помощь реакт нейтив отцов, нужно сделать меню-шторку (drawer), чтобы при тапе на бургер в хедере слева открывалась менюшка. Кто-нибудь знает как по-быстрому такое сделать? Пользуюсь react-native-elements, но там нету шторок.
Нашел шторку-навигатор в реакт навигаторе. Подойдет?
И еще: как мне вызвать андройдовскую функцию закрытие-приложения чтобы его можно было закрыть?
Я общался с несколькими сеньёрами, говорят новые приложения онли на TS. Так что можете сразу добавлять его к базе для изучения.
Хм, что лучше потратить время на redux или продвинутый реакт, или учить очередной надстроенный велосипед. Сразу бы тогда писали на java весь фронт, или С++. Типизация это же так заебись
Когда ты джун всё быстро освоить можно конечно, скоро на собесах будут спрашивать про умение жонглировать, ибо каждый слесарь уже в Айти. Выбора много.
Его создавали чтобы писать скрипт типа формочку подстветить, намного позже уже додумались писать уеб-приложения, поэтому этот скриптовый язык пришлось доделывать до чего-то приличного и обвешивать инструментами.
>Его создавали чтобы писать скрипт типа формочку подстветить
А сейчас что изменилось? Я понимаю дрочь на типы в приложухе, где расчетный срок службы кода лет 30, в одних слоях абстакции можно запутаться, нужно валидировать каждое сообщение по схеме итп.
Уже несколько лет серьёзные проекты пишут только на TS. Я после того как попробовал TS больше никогда не вернусь к жс-параше. Сейчас бы на динамикодрисне писать.
ну ка достань мне пути текущей страницы что бы отправить часть названия пути в гет запрос, а не можешь сын шлюхи? РЕАКТ РОУТЕР НУЖЕН, ДА? вот и соси хуй, ребенок бляди
Сдуру можно и посох сломать, а так да, жс будет исправно выполнять бесконечный синхронный цикл.
npm install eslint-plugin-react-redux --save-dev
git log - луччий ченжлог.
Мне сервера к приложениям обязательно надо пилить, или достаточно клиента, я же фронт? Какие-то знания по беку у меня все равно есть, какие-то минимальные.
обязательно, если не можешь то идешь нахуй, тебя даже полы не возьмут мыть в самую хуевую вебкам студию
А я обратное что ли утверждал? Дебич, я тебе про то, что проекты пишут на TS, это значит, что исходный код — TS, а не устаревшая динамикодрисня.
Так нахуя ты пришёл тогда в js, там тебя мир java и С# ждёт не дождётся, пока ты тут на динамикопараше просижываешь.
Пиздец. Гуй десктопных приложений переписывают на электрон, qt везде пропихивает qml, в больших приложениях сплошь и рядом скриптинг на пистоне и луа.
Реактодебилы же обмазываются декораторами и фабриками бобов, при том что из профитов линтер и автокомплит в иде получше. Просто гениально!
>Гуй десктопных приложений переписывают на электрон
Что мешает электроноподелие писать на реакто-тайпскрипте?
Для чего? Если тебе нужно полгода гуй разрабатывать, мог бы сразу на нативных контролах и логике все расписать уже. Преимущество динамики - хуяк-хуяк и у тебя мвп уже практически готов.
Просто посмотри ролик на ютубе по этому джесту. Один хуй нормальных тестов нет нигде.
Так я фронтендер, нахуя мне дотнед и джава? А TS наследник JS, где ещё про него говорить, если не тут?
Ты же дрочишь на сильную типизацию, там тебя сильно затипизируют.
Метод на реакте meh, тестами в любом случае покрывать надо, хоть с TS, хоть с без. Хотя во многих компаниях пишут через жопу их.
Jest, Enzyme.
При написании тестов, надо меньше думать о коде который тестируешь, а больше о том, что делает данный код. Это означает писать тесты, имитирующие поведение пользователя. Даже на самом низком уровне. Просто поддерживать и писать тесты это тоже оплачиваемая работа программиста, поэтому покрывать бесконечно всё тестами, нет смысла.
Все правильно, но ведь тесты еще запустить надо. И если их дохера то это может быть несколько минут. А TS компайлер мне сразу скажет, что иди как ты нахуй, типы не совпадают.
Ну линтер же есть. Если иногда проебываю название метода - ну и что? Тестами покрываю нетривиальные куски, типа трансформации сложных данных. Потом фичу протыкивает ручной тестер на соответствие тз.
В чем великая нужда в тс? Просто кодеры присосались к проекту на большой зп и выдумывают хуиту.
Поидеи каждый дрочит как хочет конечно, кто-то ругает TS за лишний код и потерю времени, кто-то хвалит за отлов ошибок. Как мне кажется TS нужен когда у тебя большое приложение, которое трудно дебажить, а когда небольшая хуйня тащить туда TS это тупость.
Если крупное приложение в хуй пойми сколько строчек кода, дебажить легче будет. Да и падает тяжелее с TS.
> заебешься
Тяжело в тестировании, заебись на продакшене. У меня вот охуенные тесты, я могу на изи херачить ковровый рефакторинг, и ничего мне за это не будет.
На проде никак, до проды, но с TS код более понятный, не надо думать, какой тип тебе пришёл, всё чётко и ясно, архитектура более выраженная. Если бы настолько хуйнёй был, не использовали бы.
Тоже не хочу на этой хуйне писать, но если все требуют куда денешься, жрать то хочется. А не то зумерки типизированные придут, быстро твоё место займут.
Тайпскрипт не отменяет тестов.
Есть, значит, HTTP. И есть форма регистрации.
Клиент, вводит туда регисрационные данные, ну там логин, и главное - пароль.
Клиент отправляет эти данные POST-запросом.
Как защитить пароль, при передаче по открытому каналу, помимо HTTPS, подверженному MITM-атаке?
Первое, что приходит в голову - это выслать клиенту ключ, чтобы он им зашифровал свой пароль, а на сервере - расшифровать.
Но перехват ключа - выдаст пароль. Поэтому не симметричное шифрование должно бы быть, а асимметричное,
то есть можно выслать публичный ключ, клиент ним зашифрует пароль, а расшифровать его - приватным ключем.
Хуй знает как всю эту поебнятину имплементировать, мне чёт впадло ваще, и хотя интересно, но заебало уже гуглить, бляьд.
Есть ещё варианты годные?
Если твое содинение подвержглось митм то ничего теье не поиожет
Твой описанный способ с ключем это и есть то, как работает https.
У меня руки прямые.
Прост хотелось бы чё-нить поверх HTTP, ну или ещё и поверх HTTPS.
Ведь HTTPS могут и замитмать, если подсунут левый сертификат, а так поверх него ещё хуёвина будет какая-нить. Но городить целую конструкцию из говнокода, реализующего рса, как-то не очень охота, поэтому и спросил, какие варианты - попроще, да ещё и попижже.
Ты говоришь, что если митмщик доебался к моим коммуникациям,
то нихуя не поможет, типа.
Почему же? Смотри...
Допустим, сервер юзает рса.
Пусть публичный ключ сервера - общедоступен, а приватный - скрыт на сервере.
Приватным ключем, сервер может как шифровать данные, так и подписывать их.
Пусть клиент коннектится на сервер, и пусть сервер шлёт ему свой пабкей, который общедоступен и ещё и известен каждому, а значит его можно сравнить. Он может быть вшит в код клиента, без передачи.
Дальше, клиент генерит свой пароль, и шифрует его паблик-кеем сервера, отправляет шифр на сервер, и сервер приватником - дешифрует этот пароль.
Перехват шифра, митмщику, нихуя не даст.
Дешифровать шифр, без приватника сервера, митмщик не сможет.
Подменить данные на свои, митмщик тоже не сможет, покуда установлено TCP-соединение с тройным рукопожатием.
Что тут ещё можно замитмать?
Но если паб передайтся в ответе от сервера, то да митмщик может подсунуть свой паб.
> Перехват шифра, митмщику, нихуя не даст.
Митмщик владеет всеми клиентскими ресурсами, которые были переданы во время сессии.
Так а если данные от клиента закриптованы общедоступным пабом сервера, как митмщик раскриптует шифр без прива?
Он может разве что перехватить шифр, и попытаться взломать его, но там пиздец как дохуя итераций надо, разве что на квантовых компах как-то, или хз.
Митмщик может рвать соединения, подсирая исподтишка, из своих ебеней дегенератских, ну и подменить данные может, чтобы они хуёво декриптнулись. А так-то нихуя больше он не получит, разве что хуй за щеку, тварь такая, поганая.
>хардкод в исходниках
Говорю же, это хуйня, если админ захочет что-то потом поменять без похрамистов.
>цмс
Лол блять, а она их где хранит?
> конфиг от шаблонизатора
Да это тот же хардкод
>база наконец
Реально в sql такое кладут?
Шо це за нахуй. Уже всё перекрутил.
Вижу там про символьные. Про символические не вижу.
Idris вроде ба может срать в жс. Ну или MS Lean вроде бы тоже умел в жс когда-то, не понмю.
Короче если я в соло пишу стартап и ожидаю что он выгорит и придётся расширять тиму девелоперов то я могу писать на чистом жсе и не выёбываться?
И вообще насколько сложно в случае чего переписать средних размеров проект на тайп?
просто немножко фичей добавили
Вообще не сложно. Прикручиваешь поверх приложения тс-парашу и по одному файлу переписываешь, там только типы описать и раскидать эти типы по сигнатурам функций.
>типы описать и раскидать эти типы по сигнатурам функций
И заодно баги исправишь которые наделали динамикодауны
Окей, ладно, проблема не в laragon.
Есть дефолтнейший проект на реакте, созданный с помощью create-react-app, сделаный по большей части из компонентов react-bootstrap. Собранный через run build (с дефолтным create-react-app конфигом, я ничего не еджектил). В dev режиме работает отлично. После билда, если открыть html файлик в браузере, то будет просто голая страница, без текста, без ДОМа (дом есть, но в рут компонент нихуя не засунуто), без нихуя. Скрипты, которые вебпак сует в конец файла, на месте, но в девтулзе светятся серым. Во всех браузерах все одинаково.
Где я обосрался?
Наконец-то стоящий ответ на вопрос. Прямо-таки панчлайн.
Баги, которые не выстрелили в продакшене. Спасибо тсу за победу!
В штанишках
И как это дело бандлится во время переписывания? Или напохуй результат ТСа кормить бабелю?
This
<script src="/static/js/2.7493cdd9.chunk.js"></script>
<script src="/static/js/main.2d7886c3.chunk.js"></script>
Нормально там все со смешанным коньтентом.
Ну подожди, хорошо, я не знаю, щас пойду читать. Но я до этого писал проекты, созданные не через create-react-app, т.е. с конфигом вебпака, со всей этой хуйней сделанной мною вручную, точно так же билдил и прямо "из файла" все заебись было. В чем разница?
Пчел ты..
Блять, тот проект тоже сегодня не открывает. Не пойму че за хуйня, вчера все заебись работало. Пиздец блять.
Так блэт. Какая-то хуйня. Он не подхватывает конфиг вебпака. Он кладет билды в дефолтную папку dist, хотя у меня прописано в build. И файлы ложит под дефолтными именами, а не как по конфигу положено с хэшами етц. Что за хуйня? Это я про "образцовый" проект. И точно так же нихуя не пихает в рут, хотя вчера у меня там хэллоуворлд видно было. Пиздец блять опять какое-то ебаное колдовство случилось с этим вебпаком.
Ты не понимаешь как работает митм, но при этом используешь этот термин.
Я человек по середине. Ты сервер, ты передаешл пубоичный ключ, я его подиеняю и передаю клиенту свой ключ, вместо твоего. Клиент шифрует данные моти ключем, думая что он твой. Я приниммаю данные клиента, расшифровываю своим приватным ключем, подменяю что мне нужно, шифрую твоим публичным и передаю тебе.
Https на стадии рукоподатия именно так и паботает с ассиметричными ключами.
А ты долюоеб и иди нахуй
Короче блять я создал совершенно новый чистый дефолтный самый обычный проект через yarn create react-app, и сразу же сбилдил его через yarn run build, ничего в нем не изменяя, ни единой строчки кода. И он сука не заработал, опять чистая белая страница и пустой рут. Пиздец какой-то.
Насколько помню run serve надо делать, чтобы локально билд запускать или что-то вроде того.
Да все доступно. Я уже выяснил, что он вообще ничего не билдит. И дело тут 100% не в моем коде, потому что даже не проекты, которые вчера отлично билдились, сегодня не работают. Даже чистые не билдятся. Я хуй знает что тут делать, пропробую ребут.
Если бы проблема была только в том что с билженное не запускается. Он тупо игнорит конфиг вебпака, билдит по своим воображаемым правилам.
Нет, проблема в том, что ты не знаешь, как работают урлы. А с вебпаком отдельный косяк, ты его случаем глобально не ставил?
>ты его случаем глобально не ставил?
Нет
>Нет, проблема в том, что ты не знаешь, как работают урлы.
Это не мешало мне до сегодняшнего дня локально запускать файлы, просто прописывая путь до файла в браузере.
Еще раз повторюсь, меньше 24 часов назад все работало заебись. Конфиги подхватывались, проекты запускались, билд работал как надо. Я хуй его знает что изменилось. Злой колдун порчу навел, это самое рациональное объяснение этой хуйни, которое у меня есть.
Npm иногда через жопу работает, ярн чаще всего норм.
Надо сделать типо как плеер вконтакте, что бы было например три трека, на каждом кнопка плей и перемотка по времени.
Так то можно запилить через стандартный <audio>, а есть ли для реакта какая-то либа что бы кастомить этот тег? Или свои мож какие плюшки уреката для медиа есть?
Двачую, я предпочитаю бездушным гугло ботам, местных подпивасных душнил, с сальными волосами и запашком пота от давнишней помытости
Я тебе об этом же и писал, в этом месте: >>33093
>Но если паб передайтся в ответе от сервера, то да митмщик может подсунуть свой паб.
Но если публичный ключ не передаётся, а известен клиенту заранее, вшит скажем в исходник как
>var pub = "base64";
и этот исходник клиент скачал заранее, и он имеет хэш, который висит публично, и который можно сверить,
то тогда ты долбоёб, и ты нахуй иди, и подмена паба здесь исключена.
короче я нашел https://developer.mozilla.org/ru/docs/Web/API/Web_Audio_API
оказалось чуть сложнее дело, чем просто тег audio
Подменяешь приложение, подменяешь сервис проверки хэшей, подменяешь небо, подменяешь аллаха.
Если челик уже встал между сервисом и пользователем то ГГ. Надо канал передачи контента и передачи секретов разделить, приложение почтой федерации отправлять или закладками там, вот тогда можно говорить хоть о каком то файер резисте.
Нахуй тут так сложно? Осцилляторы какие то, чего блядь. Может лучше <audio>?
Как лопатой по ебало огрел, малаца
Чего? Ярн порой раз в 10 быстрее нпм скачивает пакеты. Уже если и говорить про "больше чем 2К21", то это скорее в сторону нпм
Эти api нужны для синтеза музыки, реализации эффектов и прочих микшеров и фрутилупсов.
Чтобы сделать простые плееры, достаточно объекта Audio.
Тогда react-h5-audio-player
Что блядь за заранее? СОрцы твои он по тому же транспорту получает, который в твоем сценарии замитмлен, и ничего злоумышленнику не мешает их подменять.
ТЫ пониммаешь, что это никак ровным счетом не отличается от корневых сертификатов. Даже менее надежно, потому что в случае с https надо установить серт в ситсему\браузер, в твоем случае, ничего этого не нужно. В случае с сертвами доменов они могут быть распределенными и чекаться децентрализованно, - в твоем сценарии достатоно одного единственноо вектора атаки.
Алсо, ты пытаешься в секурити бай обскурити, допуская типичную ошибку - ты считаешь, что твой способ более надежен, в то время когда все наоборот. Еще и предъявляешь притензии к уже имеющимся технологиям, в той части, в которой твоя идея уязвимее в десятки раз. Можешь начать вести дневник и чекать, как скоро тебе в голову придет идея разработать свой собственный алгоритм шифрования хэширования, неба и аллах.
Потом школу закончишь, доолжно отпустить
>>33962
>>33964
А если тупо на гитхаб выкинуть исходники с хэшами, как митмщик замитмает гитхаб? Ему придётся пилить свой гитхаб штоле?
Алсо есть вопрос по авторизации через куки. Куки могут тупо перехватить снифферами, ну всяким там WireShark, и так далее, и тому подобное. И зайти в акк юзера по кукам перехваченным.
Чтобы этой хуйни не было - надо выкидывать из акка, если другой ип, но когда клиент заходит через митмщика, то у него ип митмщика, и митмщик может залезть в акк.
Значит, надо куки криптить асимметричной криптографией, штоле блядь?
Или может на клиенте просто сгенерить два ключа, и пускай клиент своим приватником криптит, скриптами, а паб - серверу отправит при регистрации, и этим пабом серв будет расшифровывать криптоговенный шифр клиента,
а митмщик - соснёт хуйц.
>Но если публичный ключ не передаётся, а известен клиенту заранее
one time pad так и работает, и он невзламываем, но вот проблема, ключ передать никаким способом нельзя
>надо куки криптить асимметричной криптографией
Опять ключи передавать, хм, а что если ключи криптить асимметричной криптографией? Но тогда надо ключи передавать, хм.
>Или может на клиенте просто сгенерить два ключа
У меня от тебя DIFFIE-HELLMAN просто уже
От того что ты сейчас переизобретешь TLS, а потом положишь его в уже существующий HTTP over TLS, защищенность у тебя сильнее не станет и будет равняться одному стандартному HTTPS
Будете мне выёбываться, я у вас спижжу все куки из локалстоража.
>one time pad
Шифр Вернама, имеешь в виду?
Ну так там ключ длиной в данные, но можно его не передавать, а обменяться семенем для PRNG, и с помощью PRNG генерерить синхронно, и на клиенте, и на сервере, ключ вернама, любой длины, и шифровать и дешифровывать трафик ним.
>>34061
>У меня от тебя DIFFIE-HELLMAN просто уже
Диффи-хеллман - митмается, пикрил.
>>Значит, надо куки криптить асимметричной криптографией, штоле блядь?
>Опять ключи передавать, хм, а что если ключи криптить асимметричной криптографией? Но тогда надо ключи передавать, хм.
Говоря о шифровании кук, я имел в виду возможность их перехвата митм-атакером, с возможностью залогиниться по этим кукам-хуюкам.
Но как их криптить - хз, если просто пабом сервера, то митмщик без прива не узнает что внутри шифра, но сможет перехватить шифр и зайти с шифром этим ебучим.
Ты говоришь передать ключи...
Если речь о пабе сервера, то он общедоступен, и заранее известен, он может быть даже вхардкожен в скрипт, со съёмом хэша файло и диверсификацией этого хэша.
Но обмен ключами - довольно интересная проблема.
На каждом этапе митмщик может сунуть свои ключи ебучие.
А что если, на этапе регистрации, обменяться ключами в оффлайне или по другому каналу связи?
Или гнать клиенту, подписанное приватным ключем сервера, сгенерированное случайное значение rand, которое клиент, после проверки подписи, должен будет приклеить к новосгенерированному на клиенте паблик-кею ClientPub, эту пару значений, зашифровать известным ему - пабом сервера ServerPub, и подписать своим привом секретным ClientPriv.
Получается, клиент шлет два значения:
1. encrypted = encrypted(ClientPub+rand, ServerPub),
2. signed = sign(encrypted(ClientPub+rand, ServerPub), ClientPriv);
Которіе нихуя не дадут митмщику, идущему в хуц.
Лень читать последний абзац, но мне кажется что если заменить "клиент" и "сервер" на "челик", то вернемся к тому же, потому что там похоже все паблик ключи передаются, а приватные челик сам сделает
>А что если, на этапе регистрации, обменяться ключами в оффлайне или по другому каналу связи?
Да, но проблема с долгоживущими ключами в том, что если они были скомпроментированы, то вся ваша прошлая и возможно будущая секретная переписка внезапно станет несекретной.
В следующей серии добавь еще тайм коды, чтобы челик не успевал атаки проводить
А вот и нет!
>Лень читать последний абзац
Ну, как будет не лень - прочитаешь. Я не спешу никуда.
>мне кажется что если заменить "клиент" и "сервер" на "челик", то вернемся к тому же,
>потому что там похоже все паблик ключи передаются, а приватные челик сам сделает
Тут вообще не понял нихуя, что ты сказать хотел.
>Да, но проблема с долгоживущими ключами в том, что если они были скомпроментированы,
>то вся ваша прошлая и возможно будущая секретная переписка внезапно станет несекретной.
Да впринципе пофиг, всё-равно инфа не актуальная.
Вот скажем торгуешь ты на онлайн-бирже, тебе важно, чтобы никто не влез в твой акк и не стырил бабло с биржи,
а что там с историей торгов и историей транзакций будут делать кулхацкеры,
когда таки-вскроют суперстойкий ёба-шифр, квантовыми компами какими-нить, через год скажем,
тебя уже не ебёт особо, ведь это же не бабло, это просто инфа, и ещё и неактуальная.
>В следующей серии добавь еще тайм коды, чтобы челик не успевал атаки проводить
Тоже не понял что ты сказать хотел здесь. Можешь объяснить?
Шоб куки не спиздили, я пока придумал пока вот что:
>SessionID = hash(username + UserAgent + IP)
И это лезет в базу данных, к юзеру, после логина, и пишется в куки ему,
и как только что-то меняется - SessionID не совпадёт с тем, что хранится в базе данных, и произойдёт перелогин.
То есть сосед васян каким-нить wireshark'ом, перехватит куки и спиздит их, и попытается зайти - хуй ему.
Но если этот васян - митмщик, и через него пиздует подключение, то у него и юзерагент будет и ип его, а значит перехватив юзерагент,
он может поставить такую же ось-хуёсь, браузер-хуяузер, и зная логин-хуёгин, сможет залезть в акк по кукам пижженным,
И вот тут вот, где-то, в этом месте, и вертится ассимметричное шифрование кук,
потому что в открытом виде, куки-хуюки могут спиздить тупо, блядь.
>Лень читать последний абзац
Ну, как будет не лень - прочитаешь. Я не спешу никуда.
>мне кажется что если заменить "клиент" и "сервер" на "челик", то вернемся к тому же,
>потому что там похоже все паблик ключи передаются, а приватные челик сам сделает
Тут вообще не понял нихуя, что ты сказать хотел.
>Да, но проблема с долгоживущими ключами в том, что если они были скомпроментированы,
>то вся ваша прошлая и возможно будущая секретная переписка внезапно станет несекретной.
Да впринципе пофиг, всё-равно инфа не актуальная.
Вот скажем торгуешь ты на онлайн-бирже, тебе важно, чтобы никто не влез в твой акк и не стырил бабло с биржи,
а что там с историей торгов и историей транзакций будут делать кулхацкеры,
когда таки-вскроют суперстойкий ёба-шифр, квантовыми компами какими-нить, через год скажем,
тебя уже не ебёт особо, ведь это же не бабло, это просто инфа, и ещё и неактуальная.
>В следующей серии добавь еще тайм коды, чтобы челик не успевал атаки проводить
Тоже не понял что ты сказать хотел здесь. Можешь объяснить?
Шоб куки не спиздили, я пока придумал пока вот что:
>SessionID = hash(username + UserAgent + IP)
И это лезет в базу данных, к юзеру, после логина, и пишется в куки ему,
и как только что-то меняется - SessionID не совпадёт с тем, что хранится в базе данных, и произойдёт перелогин.
То есть сосед васян каким-нить wireshark'ом, перехватит куки и спиздит их, и попытается зайти - хуй ему.
Но если этот васян - митмщик, и через него пиздует подключение, то у него и юзерагент будет и ип его, а значит перехватив юзерагент,
он может поставить такую же ось-хуёсь, браузер-хуяузер, и зная логин-хуёгин, сможет залезть в акк по кукам пижженным,
И вот тут вот, где-то, в этом месте, и вертится ассимметричное шифрование кук,
потому что в открытом виде, куки-хуюки могут спиздить тупо, блядь.
В каком жс?
Пруф или вкатыш.
Насрал тебе в кучу)))
Хватит тралировать. Тот факт, что джва объекта стрингуются в одно и то же, не значит, что они равны между собой.
У тебя в exit ссылка на какую-то старую хуйню, а в ивенте - совершенно другой объект. Очевидно, что они не равны даже с приведение типов.
Ты сравниваешь два разных объекта.
Ввожу что-то подобное: background-image: url(checkmark.svg);
и сразу ошибка can't resolve
Мы вам перезвоним.
Есть один слайдер из материал юай.
У него есть два элемента: rail и track, который перекрашивает rail на столько, на сколько двинули переключатель.
Хочу чтобы было так:
Делаем rail черным.
Track градиентным.
Градиент рассчитывается от длины rail. Таким образом, черное выглядит как сдвигающаяся заставка, за которой постепенно открывается градиент.
Проблема:
Градиент рассчитывается от размера элемента track. Это выглядит как растягивающаяся резина. Надо чтоб считалось от размера rail и обрезалось в месте переключателя.
Как сделать?
Ну как тебе сказать... Тупо по кукам коннектишься на идентификатор в суперглобальной переменной, и отвечаешь различной инфой, прямо как тут: https://www.php.net/manual/ru/session.examples.basic.php
Кстати, какой смысл в трэйлящих слэшках? Вот у Route есть проп strict, чтобы отличть x от x/, а зачем?
Сломался
>Зачем, находясь на /x/y/z иметь активную рабочую ссылку на /x/y/z?
Скорее вопрос, зачем эту ссылку не иметь, когда можно иметь? Функционально она ничего не меняет, если ты на нее нажмешь, то нихуя не произойдет, а так ты сейчас сделал лишнюю бесполезную работу и при этом добавил неожиданное для пользователя поведение, что у него ссылки пропадают между страницами.
>Вот у Route есть проп strict, чтобы отличть x от x/, а зачем?
Он не для этого, а в первую очередь для того, чтобы один роут не матчил неожиданные совпадения, например пути /users и /users/123 будут оба матчиться в <Route path="/users">, если ему не прописать strict
вопрос снимается
>зачем эту ссылку не иметь, когда можно иметь?
Перфикционизм? Семантика?
> если ты на нее нажмешь, то нихуя не произойдет
Меня немного раздражает, когда на сайтах имеются такие кнопки бесполезные, без шуток.
>неожиданное для пользователя поведение, что у него ссылки пропадают между страницами
Не пропадают, а не могут нажаться. Ничего неожиданного нет.
>например пути /users и /users/123 будут оба матчиться в <Route path="/users">, если ему не прописать strict
Это делает exact. strict в документации именно про слэши в конце путей.
1. Препроцессоры. Прежде всего Sass.
2. Минификаторы html/css/js
3. Сборщики. Прежде всего Webpack
Ничего не пропустил?
Это рассвет, мань, рассвет твоя английского
>Перфикционизм? Семантика?
Семантически как раз правильно иметь ссылку со ссылкой, а не пустую. Что перфекционисткого в лишней бесполезной работе - хуй знает.
>Меня немного раздражает, когда на сайтах имеются такие кнопки бесполезные, без шуток.
Навигационная ссылка - бесполезная, держи в курсе.
>Не пропадают, а не могут нажаться. Ничего неожиданного нет.
Они и так не могут нажаться, возвращаемся к бесполезной работе, которую ты проделал, чтобы сделать ненажимаемые ссылки ненажимаемыми.
object.onclick = function() {
object.style.backgroundColor='yellow';
};
почему не работает?
Проверил, на сошлось по поверхностному сравнению.
Внутрь-то заходит?
Есть ли более зашкварная вещь в 021 чем написание var в жс вместо let/const?
https://medium.com/codex/complete-guide-on-sending-push-notifications-on-android-using-firebase-82a4c2f7f3a7
Забыл все плагины вебпака
Забыл все либы реакта
Забыл тайпскрипт
Забыл иде
Забыл плагины иде
А также системы контроля версий
Специальный приз: смуззи
>Навигационная ссылка - бесполезная, держи в курсе
Которая ссылается на саму себя - да. Представь кнопку в лифте, которая дрочит его туда-сюда, и возвращает тебя обратно, откуда приехал.
>Они и так не могут нажаться
У меня нажимаются
Если ты используешь вебпак, то первый пункт это лоадер для вебпака, а второй это какой-нибудь mode: 'production' для него же. Ну и sass уже не модно, либо css in js либо если уж совсем плохо postcss
Тайпскрипт же.
медиум
Ну тогда используй вебпак, ты же не понимаешь чем отличаются вызов команд через npm script от бандлера.
Вместо вебпака пойдет?
Недавно перешел с сублимки на вскод, пока доволен. Но чет не кошерно каждый раз лезть и писать говно чтобы лайврелоад запустился. Можно как-то автоматизировать чтобы оно само писалось? Если да, то куда копать?
В настройках такой штуки нету.
Вы видите копию треда, сохраненную 20 июня 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.