Это копия, сохраненная 20 ноября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Для программирования на ХТМЛ https://codepen.io/pen/
Для фреймворков https://codesandbox.io/
Для Ноды с пакетами https://repl.it/languages/nodejs
Залить, задеплоить страничку, сервер, контейнер https://zeit.co/now
Аноны, хочу получить советов мудрых, высераю пару предложений и код на скриншоте, а получаю смехуёчки. Как быть?
Если рассчитываешь получить дельный ответ, формулируй правильно вопрос:
что я хочу получить, что я для этого делаю, что я вместо этого получаю.
Сделай песочницу по ссылкам выше для ясности и удобства.
П Л А Т И Н А
> Странное приведение типов, комплексные правила, неявные ошибки
Язык разрабатывался с расчётом на доступность Веба для авторов любого вида. Даже плохой код обязан хоть как-то работать. А тебя не обязывает всеми этими странностями пользоваться.
> Динамика, не компиляется, недоязык
Странно, что у тебя после объявления всех типов и компиляния осталось время покакать в этом треде, старичок. Жди ответа на перфокарте.
> Что там и когда происходит в этом одном потоке
https://www.youtube.com/watch?v=8cV4ZvHXQL4
https://www.youtube.com/watch?v=j4_9BZezSUA
> Я могу сделать запрос с сервера к чужому АПИ, почему с клиента такой запрос не работает
Зайдя на левый сайт, тебе бы не хотелось позволить этому сайту от твоего имени к твоему банку запросы делать. Для твоей безопасности в браузерах работает ограничение доступа к кросс-доменным ресурсам
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
В К А Т И Т Ь С Я
Возраст, пол, образование не имеют значения. Времени потребуется год с нуля, но это не точно.
Английский обязательно. Проследуй в /fl за гайдом. Первый язык ты осиливаешь ещё до того, как в штаны гадить перестанешь; трать время на язык, а не на отмазки.
Учись учиться. Эффективность, запоминание, дисциплина, режим. Проследуй в /se за гайдами.
https://www.youtube.com/watch?v=5MgBikgcWnY
https://www.youtube.com/watch?v=vd2dtkMINIw
https://www.youtube.com/watch?v=IlU-zDU6aQ0
Ты помнишь образы и связи, а не конспекты.
https://www.youtube.com/watch?v=gj3ZnKlHqxI
https://www.youtube.com/watch?v=5nTuScU70As
Ты — это то, что ты делаешь каждый день.
https://www.youtube.com/watch?v=eLYNM5QAnpw
https://www.youtube.com/watch?v=JAnNUhWJQI8&list=PL5faAYlGYYoGr49h1WMInNSd5Ya1uu7KT&index=6
https://habitica.com/
Сколько помидорок сможешь сделать за неделю?
https://www.youtube.com/watch?v=H0k0TQfZGSc
https://pomotodo.com/
Математика. Не принципиально, но очень прокачивает. Достаточно выделять по полчаса в день-два и результат будет отличный. Если нет справки о дебильном слабоумии, то у тебя есть способности к математике; трать время на задачки, а не на отмазки. https://www.khanacademy.org/math
HTML, CSS. Ничего сложного.
Требует только усидчивости. Как раз подойдёт для того, чтоб в простых условиях выработать правильные привычки и дисциплину. Проходи вёрстку (не трогай JS) на
https://htmlacademy.ru/courses
Бесплатного будет достаточно, но можно и подписку купить на месяц, этот дедлайн мотивирует.
В Кокодемии тебе будут показывать всякие теги, правила. Ты дополнительно находи каждый на
https://developer.mozilla.org/en-US/
(в результатах поиска справа категории, оставь только HTML, CSS)
В этой “вики”-документации описаны все особенности для каждого элемента. Тебе не надо учить это всё наизусть. Достаточно просто бегло ознакомиться, пропитываться, иметь представление. В каждой статье есть раздел “Specification”, там тебя чаще всего интересует ссылка “Living standard”. Это спецификации языка, “спеки”, они написаны очень формально. На них ты тратишь совсем немного времени, буквально одним глазком. В начале всё будет совсем не понятно, это норма. Тебе просто надо привыкать к подобным документам. Посматривай их немного, типа шаришь.
Есть ещё много мелкой годноты, типа
https://htmlreference.io/ https://cssreference.io/
попробуй сам поискать.
Параллельно с Кокодемией по вечерам посмотри:
https://www.youtube.com/watch?v=Sy_wba7l1UU&list=PLawfWYMUziZqyUL5QDLVbe3j5BKWj42E5
На этом этапе пора формировать информационный фон. Собирай подписки в Ютюбе, Твиттере, на рассылки. Но помни, если ты что-то посмотрел-почитал, то должен потратить минимум столько же времени на написание кода по мотивам. Иначе это обычная бестолковая прокрастинация. Ты не научишься играть в футбол по футбольным трансляциям.
Javascript. Шутки кончились.
https://www.youtube.com/watch?v=rrRZZ_3licM&list=PLo6puixMwuSMIB7x6MNBTNQA3P3Mqo_33
https://javascript.info/ очень дружелюбен к ньюфаням. У него есть предыдущая версия на русском, но она безнадёжно устарела. Здесь описываются многие тонкости языка, которые полезны для общей картины, но на деле вряд ли пригодятся. Так что читай по диагонали, всё равно с первого раза всего не схватишь. А вот задачки обязательно делать (чтоб научиться играть на гитаре, нужно играть на гитаре). Если задачка совсем (за 10 мин.) не получается, то прилежного разбора и воспроизведения готового решения будет вполне достаточно.
Искать каждый раз подробности на MDN ты уже имеешь привычку, не забывай пользоваться. Теперь тебя интересует Draft в спеках.
Node.js позволит тебе вырваться за пределы браузера, сделать свой сервер, автоматизировать рутину в разработке и жизни:
https://medium.freecodecamp.org/the-definitive-node-js-handbook-6912378afc6e
https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs
Нода это уже отдельная приблуда, удобного MDN’a тут нет. Но ты же уже не боишься сухих документаций. Нужно найти доки Ноды nodejs api и сверяться с ними, пока читаешь статьи.
Где-то на этом этапе ещё нужно разобраться с Linux, shell, Git, Docker, но это уже не про нашу шапочку.
Если ещё есть время и хочется подробностей, повторений, закреплений, то
https://www.freecodecamp.org/
повторяет всё (но не разжевывает для ньюфань, иначе было бы достаточно только его), плюс обзор некоторых приблуд, плюс идеи для проектов для портфолио, плюс задачки на алгоритмы.
https://codesignal.com/ задачки, писькомерки, подготовка к собеседованию.
https://github.com/getify/You-Dont-Know-JS концептуальный разбор, полезное чтиво.
Исчерпывающе подробные справочники:
http://speakingjs.com/es5/index.html
http://exploringjs.com/es6/index.html
http://exploringjs.com/es2016-es2017/index.html
http://exploringjs.com/es2018-es2019/toc.html
Приложение. Всё по-взрослому.
Теперь пора делать что-то серьёзное, применять на практике. Имеется множество готовых приблуд, можно делать приложения любой сложности. Писать здесь гайды к каким-то приблудам нет никакого смысла, так как каждая вполне достойна отдельного треда и имеет свой сайт, где с гайдами постарались. Жизнь готовила тебя к этому, ты сможешь разобраться самостоятельно. Алгоритм такой:
0 - находишь на Ютюбе любой обзорный видос, чтоб страх неизвестного пропал (не трать на это фуфло больше часа);
1 - находишь официальный сайт приблуды;
2 - на офсайте делаешь Tutorial / Getting started;
3 - на офсайте читаешь доки, АПИшки по диагонали;
4 - начинаешь делать оригинальные нужные штуки, посматривая в доки.
5 - попробуй поискать “github awesome приблуда”
6 - отважно посмотри исходники
Сейчас с большим отрывом самый популярный стек это React + Express + Mongo. Получается что-то такое:
https://www.youtube.com/watch?v=PBTYxXADG_k&list=PLillGF-RfqbbiTGgA77tGO426V3hRF9iE
Оформи такое в портфолио на Гитхабе и можешь искать работку.
А как же другие приблуды? Сложно и долго осилить только первый язык, фреймворк, что-либо. Следующий ты осилишь в считанные недели, а то и дни.
>https://githubengineering.com/removing-jquery-from-github-frontend/
Мда, смузидолбоебы набирают обороты. Убрали жквери заменив его урезанными аналогами из нативного жс и CSS и приправили всё это другими библиотеками которые весят меньше чем JQuery, ведь 85 килобайт это пиздец как много в 2018 году, в котором все готовятся к апокалипсису с интернетом со скоростью 1 бит/сек .
Разберем по частям:
>The $(selector) pattern can easily be replaced with querySelectorAll();
Зачем заменять то, что пишется в 3 знака - "$()", тем, что пишется 27 знаками - "document.querySelectorAll()"?
>CSS classname switching can now be achieved using Element.classList;
>CSS now supports defining visual animations in stylesheets rather than in JavaScript;
Заебись, можно использовать некоторые методы, например classList.replace(), при этом addClass() всё еще короче, чем classList.add()
C анимацией всё еще лучше, теперь всё можно делать в css, как я понял. Но ведь JQuery это не только анимация.
>$.ajax requests can be performed using the Fetch Standard;
Помимо того, что там нет и половины опций, так эти долбоебы еще и не добавили опции timeout.
>The addEventListener() interface is stable enough for cross-platform use;
И? Он также удобен как event-методы JQuery?
>We could easily encapsulate the event delegation pattern with a lightweight library;
Заменили один костыль на другой, для того чтобы через месяц пользования осознать, что этого костыля недостаточно и нужно приделывать еще один костыль, либо наращивать существующий. Ок.
>Some syntactic sugar that jQuery provides has become reduntant with the evolution of JavaScript language.
>Some
>Ни одного примера
Ну ок, давайте уберем из JQuery reduntant syntactic sugar, в чём проблема? Зачем изобретать новый костыль только потому что в старом есть что-то лишнее?
Пикрелейтед вообще пушка.
>Did the author expect one or more js-widget elements on this page?
Ну если он у тебя там не один, то это уточняется при помощи $("#widget1.js-widget") и подобного.
>Also, if we update our page markup and accidentally leave out the js-widget classname, will an exception in the browser inform us that something went wrong? By default, jQuery silently skips the whole expresion when nothing matched the initial selector; but to us, such behavior was a bug rather than a feature.
Эксепшены у них почему-то на уровне браузера отслеживаются, лол. Кто-нибудь, скажите им, что для этих целей изобрели редакторы исходного кода, которые скажет тебе, что твой js-widget класс нигде не задействован.
В общем, хороший пример для вкатывалщиков, который показывает, что js настолько прост в освоении и для него сделано так много, что поставленная цель достигается настолько быстро, что ты начинаешь заниматься изобретанием велосипеда и переделыванием своего кода ради миллиардной доли % увеличения производительности.
>https://githubengineering.com/removing-jquery-from-github-frontend/
Мда, смузидолбоебы набирают обороты. Убрали жквери заменив его урезанными аналогами из нативного жс и CSS и приправили всё это другими библиотеками которые весят меньше чем JQuery, ведь 85 килобайт это пиздец как много в 2018 году, в котором все готовятся к апокалипсису с интернетом со скоростью 1 бит/сек .
Разберем по частям:
>The $(selector) pattern can easily be replaced with querySelectorAll();
Зачем заменять то, что пишется в 3 знака - "$()", тем, что пишется 27 знаками - "document.querySelectorAll()"?
>CSS classname switching can now be achieved using Element.classList;
>CSS now supports defining visual animations in stylesheets rather than in JavaScript;
Заебись, можно использовать некоторые методы, например classList.replace(), при этом addClass() всё еще короче, чем classList.add()
C анимацией всё еще лучше, теперь всё можно делать в css, как я понял. Но ведь JQuery это не только анимация.
>$.ajax requests can be performed using the Fetch Standard;
Помимо того, что там нет и половины опций, так эти долбоебы еще и не добавили опции timeout.
>The addEventListener() interface is stable enough for cross-platform use;
И? Он также удобен как event-методы JQuery?
>We could easily encapsulate the event delegation pattern with a lightweight library;
Заменили один костыль на другой, для того чтобы через месяц пользования осознать, что этого костыля недостаточно и нужно приделывать еще один костыль, либо наращивать существующий. Ок.
>Some syntactic sugar that jQuery provides has become reduntant with the evolution of JavaScript language.
>Some
>Ни одного примера
Ну ок, давайте уберем из JQuery reduntant syntactic sugar, в чём проблема? Зачем изобретать новый костыль только потому что в старом есть что-то лишнее?
Пикрелейтед вообще пушка.
>Did the author expect one or more js-widget elements on this page?
Ну если он у тебя там не один, то это уточняется при помощи $("#widget1.js-widget") и подобного.
>Also, if we update our page markup and accidentally leave out the js-widget classname, will an exception in the browser inform us that something went wrong? By default, jQuery silently skips the whole expresion when nothing matched the initial selector; but to us, such behavior was a bug rather than a feature.
Эксепшены у них почему-то на уровне браузера отслеживаются, лол. Кто-нибудь, скажите им, что для этих целей изобрели редакторы исходного кода, которые скажет тебе, что твой js-widget класс нигде не задействован.
В общем, хороший пример для вкатывалщиков, который показывает, что js настолько прост в освоении и для него сделано так много, что поставленная цель достигается настолько быстро, что ты начинаешь заниматься изобретанием велосипеда и переделыванием своего кода ради миллиардной доли % увеличения производительности.
>Зачем заменять то, что пишется в 3 знака - "$()", тем, что пишется 27 знаками - "document.querySelectorAll()"?
const $ = (selector) => document.querySelectorAll(selector);
<iframe id="Фрейм" />
<script>function Загрузить() { document.getElementById("Фрейм").src = "/нужный_скрипт?" + new Date().getTime(); }</script>
Нужный скрипт:
<script>var window.parent.Нужные_данные = "<?=$Обхуяренные_в_JSON_данные;?>"; window.parent.Подтвердить_загрузку();</script>
И сосите вы хуй с вашими хреньворками и еблиотеками.
>заниматься изобретением велосипеда и переделыванием своего кода ради миллиардной доли % увеличения производительности.
Чтобы потом, ближе к концу, наткнуться на то, что нельзя заменить одной строчкой.
>>1272847
А как оно пишет в Application, и почему не в куки?!!
Ткните носом, я понять не могу - там овер 118 тысяч строк кода:
https://waveswallet.io/js/waves-lite-client-mainnet-0.5.22.js
>>1272840-кун
>>> не хочется перезагружать массивный json без необходимости
>> в HTTP есть кэширование
> Как это относится к оперированию уже загруженными файлами?
>>1273163
>> промисов в jQuery не было
> это были особенные нестандарные уникальные промисы!!!!
>>1273167
>> в стандарте Promise/A+ fail нет, вот тебе ссылка на MDN
> ааааа, MDN тоже как jQuery, все как jQuery, даже небо
В цирке день открытых дверей - клоунов выпустили погулять в /pr
>там овер 118 тысяч строк
>https://waveswallet.io/js/waves-lite-client-mainnet-0.5.22.js
> * jQuery JavaScript Library v3.1.1
>А как оно пишет в Application, и почему не в куки?!!
>Ткните носом
Ткнул тебя носом в говно, клоун. Иди нахуй отсюда до тех пор пока все шаги из шапки треда не выполнишь.
>в стандарте Promise/A+ fail нет, вот тебе ссылка на MDN
>Promise/A+
А теперь, долбоеб, покажи мне где я писал что то про "Promise/A+ fail".
>>73239
>https://githubengineering.com/removing-jquery-from-github-frontend/
Подрывом жоп любителей пихать jQuery во все дыры удовлетворен. Вашу стюардессу закопали!
>ВАШИ ПРУФЫ НЕ ПРУФЫ А ТЫ ДАКАЖИ
>MDN НЕТ ЗНАЧИТ НЕБЫЛО!!!
>В СБОРНИКЕ "VASYAN228 PRO JS ULTRA HARDCORE xXx777xXx" НЕТ ЗНАЧИТ ВРЁЁТИ!!!
>КЕЕЕК
И такое животное еще кого-то клоуном называет, лол.
В биореактор, говноед.
jQuery-уебаны зарелизили корявый костыль c done и fail в 1.5 в 2011 - когда Promise/A уже существовало почти два года. Слава богу, авторы более обучаемые, чем средняя /pr-макака, и зарелизили нормальный интерфейс всего-то через год и две минорные версии. Понятно, что теперь это говно не скрыть - кучи мух за год понапихали его в свои высеры.
Короч есть такая тема. Хочу напилить рогалик, который будет серверным. Можно набигать сессиями, подключаясь откуда угодно бровзером. И пытаюсь понять набор технологий. Сам я исторически дотнет консольщик, без форм, без asp. И нихуя не могу в веб-сервисы.
То, что JS работает на уровне браузера, это круто. Но напрягает то, что JS это клиентская тема, а серверный JS это что-то другое. Где мне по красоте код рогалика делать? На сервере пыхтеть, или не париться и писать под клиента? Если второе, нахуй тогда сервер, просто чтобы скрипт отдать?
А что по итогу?
Накидайте сайтов, написанных на этих фреймворках\либах.
Не считая фб и инстраграма (это тормозное говно только доказывает вред от реакта).
Покажите реальное применение. Где блядь.
Хоть один ресурс, где это было оправдано (ко-ко-ко поддержка, значит ресурс должен быть масштабным?), или же удобнее для разработки.
Да хуй с ним с оправданностью. Вообще накидайте сайтов написанных на этих мейнстримовых-хайповых вещах.
Хоть по десятку для каждой наберете?
>Накидайте сайтов, написанных на этих фреймворках\либах.
TodoMVC
Что ты хочешь услышать? Гуголь тебе в помощь.
eBay на марко
trivago на своей хипстопараше сидят
Сервер - это изначально такая штука, чтобы обмениваться инфой между несколькими компьютерами. Если в твоем приложении такой концепт не нужен, то забей.
>не париться и писать под клиента
про безопасность забудь в этом случае - любой код на клиенте может быть подменен читерами.
Какой-то надменный, охуевший дурачина, не умеющий читать код дальше второй строки.
Я задал конкретный вопрос, чтоб получить конкретный ответ,
а он мне предлагает шапку выполнять чтоб ответить на него.
Вот дебил - пошёл нахуй сам.
Я так и не нашёл куки и вообще вкладку Applications в своём стареньком браузере.
А это, на мой взгляд, говорит лишь о том, что то чем вы обмазываетесь там,
недоспецы ньюфажные - просто не имеет обратной совместимости.
И если ты думаешь что JQUERY сам по себе работает с куками,
то огорчу тебя тем, что этот пример: http://jquery.page2page.ru/index.php5/Работа_с_cookie
у меня не работает. Галочки в старом браузере - просто не запоминаются.
>Я так и не нашёл куки и вообще вкладку Applications в своём стареньком браузере
Ммммм.... эта сладкая боль пользователей IE6.
Какой старенький браузер, лол? У разработчика по дефолту должен Хром последний стоять. Иди обновляйся.
>javaScript ниндзя
>На пикче самурай
ЖС макаки настолько тупы, что не отличают самураев - феодальных воинов подчиненных сегуну, с ниндзя - наемными убийцами и диверсантами, как правило, из закрытых деревень шиноби.
Орнул знатно.
>javaScript ниндзя
>На пикче самурай
ЖС макаки настолько тупы, что не отличают самураев - феодальных воинов подчиненных сегуну, с ниндзя - наемными убийцами и диверсантами, как правило, из закрытых деревень шиноби.
Орнул знатно. У вас даже в на обложке учебников грубые ошибки.
Мне и в JS неплохо.
Имплаинг обложку рисовала JS-макака
>>73292
У меня хром, но старый 34.0.1847.131 m (32-bit),
других portable-версий не могу найти - они не запускаются.
Нашёл данные, но не в Applications, а здесь:
Resources -> Local Storage -> file:// -> строка Wavesmainnet.
Там видно аккаунты и зашифрованный паролем seed (priv), начинающийся с символов U2FsdGVkX1 ("Salted__")
Вопрос по прежнему актуален: Каким образом данные читаются оттуда, и пишутся туда,
и почему не в куки, если там функции для работы именно с куками.
Код я приложил уже, выше, с цитатами некоторых функций в предыдущих постах.
Всё, не надо уже нихуя. Сам нашёл - window.localStorage
И зачем ты это высрал, даун? Я и не говорил, что он у них с самого начала класса А, я сказал, что он у них был без уточнения того в каком виде.
К тому, что только полный jQuery-ед может радостно пиздеть о наличии промисов в 1.5.
Наоборот, любой мало-мальски компетентный разработчик, увидев это треугольное колесо, сделанное из соплей и говна, спросит "а это уебище уже под промисы перепилили? (или выкинули нахер)"
>обосрался не знанием концепции промисов и JQuery
>всеми способами пытается оправдаться уже второй тред
Ох уж эти омежки и их идиотское поведение на анонимном форуме. Даже жалко тебя, ты ведь эту ситуацию до конца года в голове прокручивать будешь и каждый раз подогревать свою сраку.
> .... что делать, меня опять обоссали ...
> скажу волшебное слово "омежка"!!!!
понятно, нипичот
Отвечайте на мой ответ!
Где можно почитать про "ресурсы доступные странице"? Я хз как оно называется правильно, гугл не помогает.
Вот есть у меня страница. Там разметка, там js, ссылкота на css и внешние файлы. Тут всё ясно в общем-то.
Но есть ещё набор произведённых http-запросов и их результаты. Пресловутые json'ы, например.
Вот где это находится и как им управлять с фронта?
Например, мне надо проверить совпадает ли имеющаяся у клиента выгрузка из базы с последней версией той же выгрузки. И если я пекусь за каждый килобайт, то мне вовсе не хочется перезагружать массивный json без необходимости.
И как мне тогда загруженный заменять другим? Просто новый get-запрос и обновление всех таблиц и прочих компонентов, вроде очевидно.
Но если я хочу в загруженном json'е изменить какую-то ветку? Или просто добавить туда данных?
Была б речь об одностраничной хреновине, то понятное дело можно было локальную переменную насиловать и не париться. Но если нужны перезагрузки страницы, то как это реализовать?
Это вообще к JS относится, или пора уже дедокниги про http-пограммирование читать и сокеты?
>Но если я хочу в загруженном json'е изменить какую-то ветку? Или просто добавить туда данных?
Откуда возьмутся измененные / новые данные?
Вот я в этот же вопрос и упёрся.
В то же время во всех браузерах в отладчиках все эти подгруженные файлы таки доступны для чтения, и чуть ли не свободного редактирования.
А ежели их можно руками трогать даже после загрузки, значит и кодом добраться можно.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
>Но если я хочу в загруженном json'е изменить какую-то ветку? Или просто добавить туда данных?
То тебе нужно делать на странице скрипт, который будет через определенный интервал посылать запрос на сервер, результатом которого будет либо ответ с изменениями, которые твой скрипт внесет на страницу, либо ответ о том что изменений нет.
Ну вот, допустим, добрался ты кодом до загруженного пять минут назад файла. Откуда ты возьмешь новые данные?
Скорее всего велосипедю, но допустим такой алгоритм:
Сервером даётся json. У него в начале или в конце есть параметр хранящий, например, время последнего изменения. Например, lastMod: '2018-10-02-00-15'.
Этот параметр мы сохраняем в специальную переменную.
При этом на каждый условный submit мы вешаем дополнительный get к серверу, который возвратит только lastMod.
Далее банально проверяем переменную в странице и вернувшийся lastMod. Если одинаковый, то пляшем дальше. Если разница есть, то либо обрабатываем ошибку, либо подгружаем свежий json.
Ок.
Теперь следующий вопрос - зачем тебе
> набор произведённых http-запросов и их результаты
если ты все равно работаешь с lastMod и ходишь на сервер для проверки / загрузки новых изменений?
Ну а тут я просто задумался далее: а можно ли, например не весь json менять, а обновлять конкретный его кусок, или докидывать новые данные.
Опять же, он ведь где-то загруженный уже есть.
ну и раз уж мемы такие пошли, то я jQuerry по возможности не вношу в страницу, т.к. плодить зависимости на ровном месте это всегда плохо, да и госдура всегда может буржуйский сервер потопить, а у пользователя потом кнопки непощёлкаются и он мне шекелей не даст
Он в двух местах:
- в кеше браузера;
- в то переменной, куда ты его раньше сохранил.
Какой вариант удобнее?
>Ну а тут я просто задумался далее: а можно ли, например не весь json менять, а обновлять конкретный его кусок, или докидывать новые данные.
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
Где timeout у fatch?
>в той переменной, куда ты его раньше сохранил
Но ведь так ж надо её прописывать, чтобы она правильно перекочевала с одной страницы сайта на другую, не?
Сегодня макак, а завтра уже синьор обезьян будет.
... а потом у макак начинается жопа при открытии нескольких вкладок.
Господь дал вам HTTP кеш в браузере и SPA, но нет, будут трахаться с наколеночным кешем в localStorage (или еще эпичнее - в куках)
HTTP кеш ты никак не обновишь частично. Ему придется грузить всю информацию из-за мелких изменений, чего он и хочет избежать, а до SPA ему с такими вопросами еще ой как далеко.
Хотя как ты бы в SPA это (частичное обновление массива) реализовал если не через тот же localStorage? Хуйню в общем какую-то сказал, лишь бы сказать.
>до SPA ему с такими вопросами еще ой как далеко
Вот как раз к SPA через такие вопросы и приходят. Вернее через ответы на них и постановку новых вопросов.
> Ему придется грузить всю информацию из-за мелких изменений
Ну заебись круто.
Т.е. localStorage магически превращает "грубое" api в api, позволяющее загрузить только отличия?
А ребята-то не знают.
Держи в курсе.
Соснешь если тебе надо будет сделать что-то вроде:
$($.parseHTML(response)).find(".className")
Хуй знает, помоему если тебе не хватает информации на learn.javascript.ru, то тебе вообще не стоит учиться жабаскрипту. Если действительно хочешь, то научиться можно читая документацию на MDN, а если желания нет, то тебе никакие платные курсы не помог.
>C анимацией всё еще лучше, теперь всё можно делать в css, как я понял. Но ведь JQuery это не только анимация.
Стили менять то всё равно через javascript надо, поэтому не понятно зачем мне писать в CSS, потом всё это запускать/отключать через javascript, если я могу сделать всё тоже самое только одной строчкой.
Я уже понял что лучший способ учиться синтаксису это читать документацию. Но хекслет привлекает всякими проектами и прочим говном. Да я понимаю их и самому можно придумывать, но суть в том чтобы научиться плавать на курсах для начала а там уже самому плыть выбирая направление.
Чем же? На том же юдеми проходил курсы по джаве и много полезного для себя вывел.
Тем, что ты не научишься информацию искать, привыкнешь что тебе ее дают структурированным потоком, говорят что сейчас учить, что потом учить, а потом попу подтереть сам не сможешь.
Ты говна поел, теперь и другие должны?
Курсы это охуенно — информация подается легко, имеешь дело с реальными проектами, всегда можно спросить препода. Чтение доков и замшелого Кантора — для нищенок.
>>1273526 (OP)
> const foo = {n: 1};
> foo.x = foo = {n: 2};
foo.x возвращает undefined?
Согласно правилам, множественное присваивание идет справа налево, следовательно, сначала foo должно иметь значение {n: 2}, но потом проперти x у объекта foo должно ссылаться на объект foo, разве нет?
Нормальный код? От тучи {}{}{{{}{}{}}{{}{}}{ в глазах рябит, ещё надо думать "так бля, [Symbol.iterator] это метод матрицы, значит в его this будет сама матрица, а вот next это уже метод итератора, значит в нем this будет указывать на итератор, так подажжжиии". как же Питон красивее по сравнению с этим, ммм
>>73533
У меня вследствие выполнение этого кода вылетает ошибка о том, что константе foo я пытаюсь присвоить новое значение
Ты уже погуглил? Если нет то вот: foo.x в присваивании ссылается на старый объект foo, section 11.13.1 of the ES5 spec
Это ты не можешь просто работать из коробки.
Тебе ничто не мешает верстать на ванильном css\html.
Но ты же ПРОГРАММИСТ, и верстать не любишь не умеешь.
Вот и страдай.
> соснешь (без jQuery) если тебе надо будет сделать что-то вроде:
> $($.parseHTML(response)).find(".className")
Лучше уж соснуть, чем на такой дилдак садиться.
>метод матрицы, значит в его this будет сама матрица, а вот next это уже метод итератора, значит в нем this будет указывать на итератор, так подажжжиии
Это ты еще до замыканий и стрелочных функций не дошел, питонист.
> Нормальный код?
У тебя матрица уже отображена на одномерный массив. Зачем городить огород с собственным итератором?
>до замыканий
Видел кучу вопросов о них, надеюсь скоро встречу.
>стрелочных функций
Похожи на питоновские лямбды, очень короткий синтаксис для предоставления безымянных функций там где надо. А ещё не получают своих this поэтому могут обращаться к this внешней вызывающих их функций.
(new DOMParser).parseFromString(response, 'text/html').querySelectorAll('.classname')
>Зачем заменять то, что пишется в 3 знака - "$()", тем, что пишется 27 знаками - "document.querySelectorAll()"?
Затем, ёбаный хиппи, что твой код априори превратится в легаси-код. И кому-то придётся его читать. Возможно даже тебе. И в этом случае лучше прочесть в три раза больше символов, но понять смысл в 10 раз быстрее, чем порадоваться как кто-то эффективно сократил время написания на целых полсекунды.
Ну, примерно так, если не придираться к терминологии.
jQuery априори относится к коду с плохой читаемостью, особенно в плане семантики.
Разделение ответственности это упрощение процесса, а в данном случае становится только сложнее.
Ну да, попробуй прийти к таким на собеседование и сказать, что ты не знаешь JQuery, на тебя как на дауна посмотрят, проводив печальным "мы вам перезвоним".
Анимация в css и анимация в js - это разные вещи.
CSS анимации выполняются на GPU, а js - на CPU.
Твое мнение никого не интересует. Все используют JQuery, а не нативный высер, значит с читаемостью всё хорошо.
Кто все?
Все популярные проекты - не используют, или отказываются от его использования.
У нас в фирме никто не использует.
Никто из моих знакомых, тоже не использует.
Все - это ты?
https://www.youtube.com/watch?v=WJ2PQe-pQJw
>Все популярные проекты - не используют, или отказываются от его использования.
Примеров конечно не будет, да? Если гитхаб отказался (меньше месяца) под идиотскими предлогами, это не значит, что все отказались.
>Кто все?
Двач, Википедия, ebay например.
>У нас в фирме никто не использует.
>Никто из моих знакомых, тоже не использует.
Сразу видно - колхозник, который дрочит на гитхаб и всё что с ним связаном.
Маня, регулярки тоже используют очень многие люди. Но более читаемыми они от этого не становятся.
Каким образом ты вообще проводишь умозаключение о читабельности кода на основе того подобный код часто пишут?
> foo.x в присваивании ссылается на старый объект foo, section 11.13.1 of the ES5 spec
Спасибо большое, анон! Гуглил, но так и не пришел к ответу, который бы ссылался на спеку.
https://es5.github.io/#x11.13.1
Если честно, то все равно не совсем понял, где про это сказано, но понял, если во множественном присваивании присутствует ссылка на этот же объект, то циркулярка не получится, будет undefined.
>>73669
> А ты не делай так.
Нет, конечно, IRL такое редко встретишь, но я задался целю собирать всякие уебанские вопросы на собесах. Типа
> 1..toString()
> [0, 1][+false, +true]
Я ни разу не видел, чтобы кто-то использовал множественное присваивание не то что в разработке, но даже в задачках для собесов. Хуй знает, зачем ты это задрачиваешь.
другой джун
>даже в задачках для собесов
Ну конкретно этот пример я нашел в шапке "Перезвоним" треда, по ссылке https://h5bp.github.io/Front-end-Developer-Interview-Questions/#js-questions
Не поймите меня неправильно, я уже работаю макакой, но мне интересны различные подводные камни в JS. Хотя, признаю, гораздо полезнее было бы задрачивать алгоритмы.
>> 1..toString()
>> [0, 1][+false, +true]
Что уебанского в этих примерах?
Я бы еще понял, если бы там был какой-то jsfuck, но в этих случаях, все предельно легко парсится в голове же.
>Что уебанского в этих примерах?
Во втором примере, да, ничего сверхъестественного, если вспомнишь про comma operator. В первом результат лично для меня не очевиден был.
> если вспомнишь про comma operator
Как про него можно забыть, если он регулярно используется при написании однострочников в консоли.
> если во множественном присваивании присутствует ссылка на этот же объект, то циркулярка не получится, будет undefined.
Ну конечно, если высрать что-то в прототип, то будет работать все, что угодно. Изначально контекст был в том, что есть вещи, которые работают из коробки и надо объяснить, почему они так работают.
> в моем мозжечке не помещается ХХХ
ну ок, но я бы на твоем месте постеснялся об этом так громко заявлять
С того, что это ебаная библиотека, а не какой-то нативный инструмент типа регулярных выражений, библиотеки создаются для того чтобы код было легче читать и писать, ты совсем тупенький?
Сук, зачем спойлернул? Лол.
Минут 10 разбирался с defineProperty не пользовался им ни разу, только потом понял, что он работает для boxed примитивов, лол, хотел без проксей обойтись.
I dunno JS.
> собирать всякие уебанские вопросы на собесах
но зачем? слышишь уебанский вопрос, типа что будет после ’++++i++++‘ - эта фирма не подойдет.
Вот так?
Уебанское то, что в реальный код такое проходить не должно от слова совсем. Ревьюер пропускать не должен.
Если проходит - процесс проебан и корабль тонет, и надо валить, а не проходить собеседование.
Следовательно, умение парсить в голове это говно примерно так же полезно, как рыбе зонтик.
Да что-то самооценка упала у меня после теста в моей конторе, решил ЗАДРОЧИТЬ некоторые нюансы. Было все норм, собес без глупых вопросов, нормальные проекты, а потом как обухом по голове, дали пройти тест, в котором, чувствую я, облажался знатно. А вопросы были позабористей, чем вышеприведенные.
Понятно, что к результатам теста работодатель может в дальнейшем апеллировать, если в какой-то прекрасный момент заикнешься о надбавке/пересмотре компенсации. Мол. молодой человек, а у Вас тест-то того, провальным оказался.
> двач
о да, JS двача совсем не тормозит на длинных тредах и совсем не срет в консоль отладочным выводом. Прям конфетка, а не jQuery
сарказм
Макак, патчащих прототипы чужих классов, надо топить в младенчестве.
Хуй знает, что это за собесы у вас такие.
Я пишу на js 15 лет.
Но я самоучка фрилансер. У меня нет ни профильного образования, ничего.
JS (оба окружения и ноду и браузер)\PHP\html\css - ванильные я знаю, почти в совершенстве, и на подобные скользкие вопросы ответил бы как нехуй делать.
Другое дело, что у меня совершенно нет опыта командной разработки, и промышленного опыта с фреймворками (особенно с мейнстримовыми). Все что я пилю всю жизнь - это либо справление багов в уже существующем легаси, либо дописывание функционала под это легаси, которое практически всегда на самописных решениях, а даже если на фреймворках\cms, то их приходится изучать по ходу дела, потому что их жопой жуй.
Никакого постоянного стека у меня так за все это время и не сложилось. Я могу разбираться на месте за день\два\неделю в чем нужно, решать задачу, но полноценных продуктов или устоявшегося стека у меня нет и никогда не было. Кроме ванили.
Да я даже vcs пользуюсь не боле чем закоммитить изменение. Какую-то сложную распределенную работу я никогда не практиковал - потому что негде.
Так вот. Я на собесы не хожу, потому как на вопросы по ванили то я отвчу - это говно. А вот когда меня начнут спрашивать за нюансы того или иного фреймворка, с которым я работал только вскользь, и совершенно не слежу за его развитием. Или там, спросят как мержить ветки\хуетки - я не отвечу. Потому что я этим не пользуюсь регулярно, не слежу. Изучаю на месте по обстоятельствам, и забываю потом, если меня переключат на задачу, где это нахер не надо, а запоминать то, что используешь раз в год - это ни к чему.
Я пытался походить по собесам года полтора-два назад. И меня ни разу не спросили по самому ЯП, что-то сложнее чем - что такое замыкания, или просьбы написать физзбаз. А вот на вопросах по стекам(фреймворки\определенные конкретные субд\етк) я разумеется валился, потому что без манов под рукой, я нихуя ответить не смогу по ним. Я просто не запоминаю подобную информацию.
Ну тут +. Одно дело дрочить дыры и слабые стороны языка в местах, где они могут проявиться при рзаработке, а другое - подобные каверзные вопросы.
>Я пытался походить по собесам года полтора-два назад. И меня ни разу не спросили по самому ЯП, что-то сложнее чем - что такое замыкания, или просьбы написать физзбаз. А вот на вопросах по стекам(фреймворки\определенные конкретные субд\етк) я разумеется валился, потому что без манов под рукой, я нихуя ответить не смогу по ним. Я просто не запоминаю подобную информацию.
Говенные фирмы, если идут вопросы про конкретные API.
В том, что как показали последние треды на разных ресурсах, большинство делает так
>'string'.split('').reverse().join('')
А так нельзя.
Пишешь итератор по строке сам.
Очевидно, реализуешь аналогичное поведение для [...str]
Ты же не думаешь, что [...str] - какая-то магия, которая невозможна в старых версиях ES.
UTF-16 прекрасно бы работал, только вот смайлики в UTF-16 не помещаются.
Так я и просил расписать.
Это реально если ты идешь на собеседование в ООО "Рога и копыта", в серьезных организациях на тебя посмотрят как на поехавшего. Исключением будет только если ты 21 летний сопляк с дипломом хорошего ВУЗа.
Нормальный способ, а вот вопрос в стиле вышеприведенных подъебок на собеседованиях.
Проблема в том, что если лезть в дебри Unicode, то твой вариант c [...str] тоже никуда не годится.
> [..."e"].reverse().join()
> ",e"
Блин, двач unicode режет
Хуевый синтаксис.
>var i=1;
>console.log('Сначала выводится, затем увеличивается: ', i++);
>console.log('Выводится увеличенное: ', i);
>console.log('Сначала увеличивается, затем выводится', ++i);
А если я 21 летний сопляк, учащийся в хуевом вузе?
Ну хуй знает, а если у меня при этом опыт фриланса уже нормальный накопился и есть проекты в рукаве?
А то ж клиника получится - зачем лезть в джуны, если уже выдрочил глубины движков до мидлоты явной?
640x360, 2:20
Ну, это пожалуйста.
За 15к в месяц без вычета налогов, тебя хоть синьором возьмут, в какую-нибудь веб-студию Сокол, если ты расскажешь, какой ты заебатый фрилансер. И даже в трудовой тебе могут написать, что ты магистр-йода.
Сами понятия джун\миддл - это энтерпрайзные ранги. Какой ты миддл, если ты не проработал ни дня в этом самом энтерпрайзе. Ты даже не джун.
Работаем дальше.
for (let target, i = 0; i < 5; i++) {
if (i === 4) {target = i}
}
console.log(target)
>РЯЯЯ ПАЧИМУ ВАС ИЩО НИ ПИЗДЯТ!!!!1111!!1
Я же пример привел. Хорошо это тогда, когда тебе эта переменная нужна будет за скобками, очевидно.
Совсем дурак?
Если у тебя target внешняя переменная, ты нахуя ее объявляешь в блоке. Ты какой логикой руководствуешься при этом? Объявляй ее там, где она используется. Не важно, леты у тебя или вары, если у тебя target это переменная вне блока твоего цикла - объявленая она должна быть вне его.
Вот за это и надо пиздить.
Двачую адеквата.
Макаки как обычно в стиле "почему меня бьёт током, когда я взасос целую розетку"
>var i = 10
>for (var target, i = 0; i < 5; i++) {
>if (i === 4) {target = i}
>}
>console.log(target + i)
>
ммм. этот вкус говнокода по утру.
Единственное место в js сейчас, где может быть уместно использовать var, это какая-нибудь хитровыебанная мета-хуета с эвалом, где надо покинуть пределы блока, при интепретации кода в рантайме, которая сама по себе является исключительным случаем и не должна встречаться в рядовых проектах. Ну и если только ты пишешь под es5-- ручками еще. Во всех остальных ситуациях использовать var нельзя.
Ты еще with использовать начни.
По-хорошему изменять профиль нужно по другому методу, PUT.
Говноед экономит нажатия.
Только если очень хочется.
Был у нас разработчик API, который все делал через PUT.
Прочесть данные сессии? PUT!
Найти пользователя? PUT!
Разлогиниться? PUT!
Создать новый ключ через API? PUT!
Пристрелили, конечно, чтобы не мучился.
Просто он был PUTёвым разработчиком, в отличии от вас.
Что можно почитать\посмотреть по правильной методике верстки? Не только БЭМ. Например, есть какие ни будь статьи, как верстают в гугл, или в каких ни будь крупных проектах.
Сложно искать материал в интернетах, заполненным быдло фрилансерами, считающие, что они дохуя крутые, и пишут статьи\видосы, где каждый второй в начале css файла делает вот так:
*{
padding: 0;
margin: 0;
}
>Что можно почитать\посмотреть по правильной методике верстки
https://www.e-reading.club/bookreader.php/133548/Golubeva_-_Osnovy_kompozicii.pdf
http://portal.tpu.ru/SHARED/f/FEHAI/for_students/Tab2/Tab2/IK_Fekh.pdf
http://linteum.ru/wp-content/uploads/2017/02/Iokhannes_Itten_Iskusstvo_tsveta.pdf
Феличи Дж. Типографика: шрифт, верстка, дизайн
Звездочка сбрасывает отступы для всех элементов. Из за этого говна, часто говнокодеры часами чешут яйки, и понять не могут, почему что-то в верстке едет.
Няшечки-поняшечки всегда используют css normalize.
вот да. wildcard без явной необходимости - бред.
Он просто в строку рендерится, как старые добрые шаблонизаторы.
>Из за этого говна, часто говнокодеры
То есть это мешает говнокодерам, я правильно тебя понял?
>Няшечки-поняшечки всегда используют css normalize.
Конечно, лучше же вместо ресета отступов всем элемментам сразу, перечислять все теги через запятую.
Отступы сбрасываются только для body, что бы содержимое прилипало к краям браузера. Для остальных элементов их сбрасывать не нужно.
Тебе не нужно?
Нашел такую статью на хабре но нихуя не понял
https://habr.com/sandbox/109444/
— Back- программиста, который знаком, python/asyncio/асинхронные сокеты
— Front-программиста, который знаком: React/Redux
Пока Телеграм закрывать не собираются, мы ищем молодых и амбициозных, умеющих добиваться поставленных целей и нацеленных результат фронтендеров, могущих в сокеты и Реакт/Редукс
Back - python/AsyncIO
для запуска уникального®™ веб-сервиса. С нас как обычно и несколько опытных ребят, которые всегда помогут со сложностями. Скостылим proof of concept на голом энтузиазме и потных шутках — сможем выйти за рубеж уже на серьёзных щах, снять склад в Марьино воркшоп в Москва-Сити и купить всем Маки. Всё почти готово, старичок, тебя не хватает.
Демка уже есть, божественный trello,zeppelin и почитать notion. С нас как всегда аниме стикеры и два чая.
Пиши: телега @anon4k
Это траленг такой что ли? Нахуя мне слезать со своих 300к/сек и пилить проект какого-то левого хуя, который ни зарплаты ни доли предложить не сподобился. И даже суть проекта не объяснил.
пиши мыло там поговорим, я бы попробовал бэк на пихтоне.
Эту хуйню уже полгода постят сюда. Просто кидайте репорт и всё.
офк % и деньги с прода, осталось только платежку допилить
все остальное можно обсудить в дискорде или телеге и рассказать и показать более подробно о проекте да и нахуй слазить со своих 300к когда можно пилить пета под пиво когда на работе делать нехуй
Тащемта вот ниндзя, а у тебя говнокосплеер какой-то.
На ней есть пины. На них делегируются события.
Если делаешь клик на картинку, то происходит нужное событие, но мне нужно, чтобы в случае клика по самой кнопке (второй пик), событие тоже происходило.
Я попробовал добавить в if клик по кнопке, но че-то нихера не работает.
Как это исправить?
Сам кусок кода здеся: https://ideone.com/3jsRuY
Так ты с картинки на кнопку перенеси событие, картинка внутри кнопки один хер лежит
Как я понял, у меня проблема в том, что если событие выпадает на img, то все норм рендерится. Если же выпадает на button, то появляется проблема с подключением элемента.
Короч, я в панике.
Почему при событии клика по img все работает нормально, но при клике по button система жалуется, что не понимает значения свойств и вообще иди ты нахуй?
Я даже переделал обработчик событий, чтобы все идентично было!
прочитал пару статей на русской вики и раскукарекался? но давай по порядку. чёрный костюм - это театральный прикол, подхваченный мейнстрим культурой, который не имеет никакого отношения к реальным синоби. нет свидетельств, что они использовали что-то подобное. зато есть множество гравюр и картин, на которых синоби изображаются в одежде простолюдинов и самураев (в том числе - в броне). почитай что-то серьёзное, хотя бы Тёрнбулла.
автор данной книги про JS сам в предисловии пишет, что на данном арте - актёр, изображающий самурая, и он принадлежит человеку из издательства, там же инфа о том, почему решили использовать именно это изображение. так что сори, но ты соснул по всем пунктам, и выставил себя как раз макакой.
ну реалии таковы, что тройка react/angular/vue имеет довольно неплохой спрос. совершенно необязательно, что так и будет дальше, но пока не учить их, если уже знаешь жс, - это большая глупость с точки зрения своей стоимости на рынке, в том числе Европы. посмотри требования в берлинских стартапах.
Не, я не верю что он мог сказать
> если что-то крупное то перейдем на ангуляр
цэ ж велосипедист
Можно хоть в этом вашем micro http/2 настроить нормальный? А то пока без плясок с бубном только hapi и koa.
>Можно хоть в этом вашем micro http/2 настроить нормальный
Но нахуя? Ты ноду без нужникса прямо на 80 порту запускаешь?
Я хуй знает в каком мире вы живете. У меня реакт/вью девтулз на каждом втором крупном сайте горит. Циан, альфабанк, контакт, авито, даже Аллах и тот на реакте
Лучше не надо, а то обоссут.
Где, если не здесь.
Можно, но только погугли для начала свой ответ и на stackoverflow посмотри. И в платине в шапке. И прояви хоть немного старания для решения проблемы, что бы это не выглядело: "у меня ничего не работает, думать я не хочу, быстро решили мне блядь", за такое заслужено получишь тугую струю и тролинг.
Анон, возможно ли как-то подключиться с браузера - на JSON-RPC-server,
используя только JavaScript на клиентской стороне?
Допустим, у меня есть кошелёк биткоина, он запущен с прописанным RPC-сервером в конфиге,
и я вижу это: https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)#Command_line_.28cURL.29
Здесь, команда getinfo - это одна из API-команд в консоли кошелька: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
Первое, что приходит в голову, так это вызов из-под JavaScript функции
eval("curl blah-blah-blah");
и последующий парсинг JSON-ответа с cURL...
Но сURL какую-то хуйню выводит:
curl: (6) Could not resolve host: method
curl: (3) Bad URL, colon is first character
curl: (6) Could not resolve host: getaddressesbyaccount,
curl: (6) Could not resolve host: params
curl: (3) Bad URL, colon is first character
curl: (3) [globbing] bad range specification in column 2
curl: (3) [globbing] unmatched brace in column 1
curl: (6) Could not resolve host: account
curl: (3) Bad URL, colon is first character
curl: (3) [globbing] unmatched close brace/bracket in column 12
curl: (3) [globbing] unmatched close brace/bracket in column 1
curl: (3) [globbing] unmatched close brace/bracket in column 1
curl: (52) Empty reply from server
Искал json-rpc-client на JS, короче так, они для ноды в большинстве своём или через WebSockets коннектятся.
Я же хочу из браузера прямо на RPC-сервер коннектится и через API - кошелек дёргать.
Есть идеи?
Анон, возможно ли как-то подключиться с браузера - на JSON-RPC-server,
используя только JavaScript на клиентской стороне?
Допустим, у меня есть кошелёк биткоина, он запущен с прописанным RPC-сервером в конфиге,
и я вижу это: https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)#Command_line_.28cURL.29
Здесь, команда getinfo - это одна из API-команд в консоли кошелька: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
Первое, что приходит в голову, так это вызов из-под JavaScript функции
eval("curl blah-blah-blah");
и последующий парсинг JSON-ответа с cURL...
Но сURL какую-то хуйню выводит:
curl: (6) Could not resolve host: method
curl: (3) Bad URL, colon is first character
curl: (6) Could not resolve host: getaddressesbyaccount,
curl: (6) Could not resolve host: params
curl: (3) Bad URL, colon is first character
curl: (3) [globbing] bad range specification in column 2
curl: (3) [globbing] unmatched brace in column 1
curl: (6) Could not resolve host: account
curl: (3) Bad URL, colon is first character
curl: (3) [globbing] unmatched close brace/bracket in column 12
curl: (3) [globbing] unmatched close brace/bracket in column 1
curl: (3) [globbing] unmatched close brace/bracket in column 1
curl: (52) Empty reply from server
Искал json-rpc-client на JS, короче так, они для ноды в большинстве своём или через WebSockets коннектятся.
Я же хочу из браузера прямо на RPC-сервер коннектится и через API - кошелек дёргать.
Есть идеи?
> они для ноды в большинстве своём
browserify или аналогом пакуешь такой клиент и запускаешь полученный скрипт в браузере.
Не особо понял в чем у тебя проблема. Хочешь послать запрос из браузера на rpc сервер? Ну так возьми и пошли. Будет что-то вроде:
const request = {
method: 'get',
// указываешь нужные заголовки
body: JSON.stringify({
"jsonrpc": "1.0",
"id":"curltest",
"method": "getinfo",
"params": [] });
};
fetch(url, request)
.then(response => response.json())
.then(json => { / тут работаетшь с ответом от сервера / })
>browserify
Это на ноду ставить надо? Вижу команду
>npm install -g browserify
В браузере не знаю как запустить...
>или аналогом пакуешь такой клиент и запускаешь полученный скрипт в браузере
Что за аналог? Это тоже на ноде делать надо и ставить её?
>eval("curl blah-blah-blah");
Ты хочешь вызвать из браузера консольную утилиту? Прикинь чтобы было, если бы так можно было? Любой васянский сайт мог бы тебе сломать к хуям всю систему, утащить все пароли и накачать вирусни. Браузер работает в песочнице и доступа к системным утилитам не имеет.
>Что за аналог? Это тоже на ноде делать надо и ставить её?
В голосину. Гугли "аналог, значение слова"
>npm install -g browserify
После установки пишешь npm browserify client.js > browser_client.js
Добавив в client.js require rpc клиента написанного для нод.жс, полученный browser_client.js можно будет использовать в браузере пользуясь всеми функциями написанного rpc клиента.
Бля, то я попутал eval - с функцией exec у PHP.
>Гугли "аналог, значение слова"
Так ты про аналог browserify, а я то думал что софтина есть такая,
аналогом в народе зовётся, а на деле что-то типа Analogue JS packer PRO EDITION PORTABLE.
>>74470
Попробовал так: let url = "http://USER:PASSWORD@127.0.0.1:8332";
так мне в консоли пишет:
>TypeError: http://USER:PASSWORD@127.0.0.1:8332 is an url with embedded credentials.
и не работает нифига.
А ещё я видел, что вместо get надо бы использовать метод POST, что тоже не пашет.
Порт RPC-сервера открыт, проверил port-checker'ом...
Пойду ноду ставить, и эти ваши пакеры, раз такая хуерга...
Слегка орнул.
ахаха, то есть мяу. попробуй потоньше.
Что о нём говорят? Это же какой-то костыль уровня электрон.js
Если хочется угореть по фп и лиспу, но при этом работать в вебе, то сойдёт. После того, как меня отсношали алгоритмами на собеседовании и подумал почитать sicp, но чистый лист не охото разбирать, а вот кложа самое то, может когда и в работе пригодится.
До пизды всё это - так ничего и не получилось у меня с этим вот кодом: >>74470
Как embedded credentials в Firefox'е включить - не понял, ни из stackoverflow, ни откуда-то ещё.
Вижу только что их отключили ещё в 17-м году:
https://medium.com/@lmakarov/say-goodbye-to-urls-with-embedded-credentials-b051f6c7b6a3
Нода не ставится или я ваще кривожоп, browserify юзать не могу.
Может кто дать ссылку на откомпилированный browser_client.js?
Желательно ты >>74487, ведь ты вроде шаришь как правильно это сделать,
и нода должна у тебя быть. Я с хрома попробую.
Не перестаю проигрывать с тебя. Может мне тебе еще попку подтереть и чаем с пирожками тебя накормить? Нода у него не ставится, лол. Ну пизду тогда вагоны разгружать, да в вкашечке посты лайкать, чего ты здесь то забыл, инвалид?
Что спрашивали? Тоже вот ссу, что на собесе с алгоритмами зафейлюсь, знаю их чуть более, чем нихуя.
>js тред
>хелпаните с задачкой
Пиздец вы клоуны. Пиздуй с этим в С/С++/Assembler - тред, там много долбоебов-любителей порешать ЗАДАЧКИ. Может даже дадут тебе ссылку на wolframalpha дадут.
Ты не можешь расставить скобки и знаки операций? Если так, то лучше брось. И я серьёзное, без траленка, ты просишь помощи переписать x + y со скриншота в x + y в код. Я даже не представляю, в чём тут может быть проблема у человека старше 12 лет. синус Math.sin, модуль — Math.abs.
В целом стандартный набор: сортировка выбором, quicksort, поиск в ширину и глубину по графам, определение четности числа (ответ про остаток от деления на два их не устроил, долго пытали, в конце сознались, что хотели услышать о проверке последнего бита числа, байтоебы сраные). Спросили про индексы в базах данных, зачем нужны, почему бы не использовать их вообще везде, о том что индексы это бинарные деревья. О расшифровке абривиатур: mvc, http, smtp, tls, ssh, tcp от upd, разница между get и post. На каких портах сидят http, https и ssh серверы. Что такое ttl, как работает tracert и отличие от ping.
Ещё было пара вопросов про почтовые протоколы, отличие imap от smtp и pop3. И про nosql базы и орм мангуст. Вакансия была на реакт ждуна.
У меня Windows95. И чёт даётся мне что нода и у тебя не стала. Хэххэх.
/all
/all/:pageNumber
/all/:itemKey
при серверном пререндеринге? SEO-шник говорит, что это пиздец как важно
А, да, решения нужны и для Vue, и для React.
Ничего себе, а нахрена реакт джуну знать почтовые протоколы вообще?
Это ж только при переходе по линкам, а тут напрямую попадает человек/поисковый робот на эту страницу, вот роутер и берёт первый попавшийся.
В реакте чтобы /all отличить от /all:huita оборачиваешь роуты <Switch> из react-router-dom
>/all/:pageNumber
>/all/:itemKey
А нахуй у тебя 2 разных роута с одинаковой по-сути маской? В Rout есть колбек render (или как-то так, не помню, смотри доки), костыль туда нужную проверку и рендерь что нужно
>А нахуй у тебя 2 разных роута с одинаковой по-сути маской? В Rout есть колбек render (или как-то так, не помню, смотри доки), костыль туда нужную проверку и рендерь что нужно
А будто я ебу, для SEO нужно по крайней мере так сказал SEO-шник, и вот я теперь сижу-ебусь
>А будто я ебу, для SEO нужно
Так ты же приложение писал, ты и скажи, в чём разница между этими роутами. Вот адреса:
govnosite.com/all/zalupa-konya
govnosite.com/all/ff38f2fy3f3f3ff3
govnosite.com/all/1488
Какие из них должны какой роут юзать?
Для реакт-роутера это всё одно и то же говно. Нужно до одного роута упростить эти два
>/all/:pageNumber
>/all/:itemKey
и прописать в колбеке render условие
/all - это страница со списком залуп коня, страница 1, /all/zalupa-konya - страница конкретной залупы коня, а /all/1488 - это 1488 страница списка конских залуп. В общем идею твою понял, добра.
Есть одна тян два выпадающих меню.
К одному я привязал ивент выбора значения https://ideone.com/RSiOZY . Все хорошо, все работает.
Ко второму я также попытался привязать ивент, но нихера не работает. https://ideone.com/ZftxNl
Что делать? Как это исправить?
>/all/zalupa-konya - страница конкретной залупы коня, а /all/1488 - это 1488 страница списка конских залуп
Ужасно.
А, алсо, нормальные роутеры вообще-то умеют матчить по регексу, если что. Ну это так.
var addedProducts = [
object1 = {
name: 'kaka',
color: 'red',
weight: 40,
price: 150
},
object2 = {
name: 'pisa',
color: 'navy',
weight: 24,
price: 250
},
object3 = {
name: 'popa',
color: 'silver',
weight: 11,
price: 100
},
];
А чем ты тут хочешь заниматься? Дрочить на свой скилл и сраться/мериться с другими? Так хоть небольшая практика и какой-то интерактив, да и в помощь ньфаням нет ничего зазорного. Наверняка, твоей тупой башке в начале кто-то тоже помогал...
let totalPrice = 0;
for (let i = 0; i < addedProducts.length; i ++) {
totalPrice += addedProducts.price
}
console.log(totalPrice);
Хуй знает как ты объект-то создал вообще.
Помогать это когда что-то не очевидное или специфичное не ясно, а когда "ой блять не туда посмотрел, ой блять букву пропустил, ой блять кошка по клаве пробежала", то никакой помощи, кроме струи урины в глотку, человеку не нужно.
У меня выше по коду есть if с перехватом ивента. Как итог, если переместить мой код выше, то все заработает.
>>74832
>В ахуе с даунов, которые треды на дваче воспринимают как какую-то гостевую книгу на ноунейм сайте в которую можно срать безвозмездно
Лол, блядь! Ну давай, даун, поясни, чем по факту является тред на Дваче! Заодно объясни, где тут форма для регистрации к твоей мамке
Чугунная задница, быстро выложил код на codepen.
Или ты ебаная принцесса-кокетка? "У меня ни работает, догадайтесь почему?"
Я столкнулся с проблемой и не нашел решения с гуглом, поэтому я здесь.
Проблема такая: в коде я создаю canvas и рисую на нем, затем добавляю его в элемент на странице (хочу просто стрелочку нарисовать). С какого-то хрена оказалось, что рисуется все очень мелко. Сам канвас размером 20x20px, и для того, чтобы показать в чем проблема, я нарисовал rect(0,0,200,200). Смотри пикрелейтед
Что за проблемы с масштабом? Что это вообще за хуйня, извиняюсь?
Прилагаю и стиль канваса на пике.
Надеюсь на помощь, заранее спасибо
>затем добавляю его в элемент на странице
Я ещё нуб-нубом, но когда ристовал гистограммы, то делал вызов через функцию, передавая контекст.
М.б. у тебя в этом проблема? Заранее извиняюсь, если хуйню сказал.
Понятия не имею, при чем тут это может быть, но я и понятия не имею, почему у меня работает не так, как я бы того хотел. Вызов через какую функцию?
Короч, вот js-код с моего учебного проекта.
https://ideone.com/keh104
Если что-то непонятно - спрашивай.
Суть кода: мне выдают список подебилов, а я его рисую.
Ну, я не вижу в нем добавления канваса никуда, там вообще его нет. Не думаю, что это имеет отношение к моей проблеме.
Я умею рисовать и делал это уже далеко не один раз, и делал то, что делаю сейчас, тоже не один раз, но именно сейчас почему то произошла какая-то странная херь. Может, дело в родительских элементах, но я не понимаю, как это может повлиять. Начал сейчас играться с внутренним масштабом - получается еще большая херь.
Засунь свои ебаные скриншоты себе в аппендикс.
Где, блядь, код на codepen / codesandbox, иллюстрирующий проблему?
спасибо
>Фабула такая: в 2038 году люди делают человекоподобных роботов (андроидов) с очень неплохим ИИ и пользуются ими ну как рабами примерно (или домашней утварью): прислуга, игрушки, секс, солдаты, грязная работа, программисты на JS.
Как отслеживать состояние поля?
Нужно сделать так: если поле пустое, то чтобы в нем появлялось значение по умолчанию.
Но вот какая беда - поле может быть очищено после загрузки страницы и нужно отслеживать действия юзера, не очистит ли он поле через кнопку reset.
Как это реализовать?
Да.
Я решил повесить на кнопку ресет ивент, типа, если кликается по ней, то поле заполняется, но, как я понял, это же наполнение сразу и удаляется этой кнопкой ресета.
https://ideone.com/9uj2nB
Смотри: допустим нужен класс/набор классов который генерит карту
но карту не простую а карту здания.
Куда копать ? Как должны выглядеть входные данные ? Типа audotesk файл ? Во что его конвертнуть (в json там или может есть формат получше для подобных вещей) ? Есть ли какие либы которые не с геоданными работают а именно с планами зданий ? Куда копать хоть давайте отправляйте мамку замутить вам смузи и побрейнштормим всем тредом
-It’s 2016 man, no one uses jQuery anymore, it ends up in a bunch of spaghetti code. Everyone knows that.
https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f
Вроде отсюда народ тоже там был.
Пацаны, зачем нужен props.children? Чтобы точно отрендерить childrenов?
Так, я понял. Ты только открыл доки по реакту, дошел до главы "composition and inheritance", прочитал там часть про render props и прибежал к нам за разъяснениями. Скажу, что тебе еще рано знать такие штуки, забудь и учись основам фреймворка. А суть этой статьи в том, что не юзай ебаное наследование, и вообще все свое ООП выкинь нахуй.
>не юзай ебаное наследование
Это там и так черным написано, всё равно ответит кто-нибудь зачем нужен props.children?
Для хоков, например. К примеру, ты создаешь компонент залупа, а в рендере у него указываешь пропс.чилдрен. Дальше ты его используешь через <Залупа><Другой компонент/></Залупа>. И залупа будет рендерить другой компонент.
Незачем, в веб-компонентах можно наследовать button и прочее
Кому не похуй на смузидебилов и их паттерны?
Высрал с умным видом.
>var a=1, b=1, c, d
Почему тут с и d тоже 1?
>var i = 1;
>var a = i++;
>alert(a);
Почему тут 1 получается? Мы же вроде добавили 1, а потом алерт вызвали?
Не бейте, лучше обоссыте.
>Почему тут с и d тоже 1?
Проверил - с и д равны андефайнд.
>Почему тут 1 получается?
Потому что a=i++ эквивалентно этому:
>a = i
>i = i+1
Ах да. В первом я жопой читал, а за второе спасибо.
Передача функций между компонентами - одно из основополагающих фич реакта. Смотри только контект не потеряй.
>Почему тут 1 получается? Мы же вроде добавили 1, а потом алерт вызвали?
Потому что i++ возвращает предыдущее значение i, а не получившееся. Чтобы было 2 нужно вместо i++ писать ++i
Есть сторонний сайт, на нем кнопка - пользователи нажимают уходит какой-то запрос, сайт возвращает файл - он скачивается в браузере.
Нужно сделать форму для ввода пользователем данных с кнопкой, которая выполнит тот же запрос на сторонний сайт и получит ответ в виде файла. Файл нужно схоронить в указанную мной папку. А после распарсить (файл JSON) и записать в БД.
Я сам не оче в вэб программировании, поэтому подскажите, с чего начать. Как это реализовать? Саму форму с кнопкой конечно сделаю, а остальное уже вопрос.
>>76241
Как активизировались-то! Наконец-то вопрос, на который ответить могут! Надо обязательно написать! И похуй что ответ уже давно есть, надо ещё!
>>76319
>Нужно сделать форму для ввода
>Саму форму с кнопкой конечно сделаю
А от нас тогда чего надо? request.get(url) тебе подсказать? Или JSON.parse(data)? db.insert? В чём твоя проблема-то?
>В чём твоя проблема-то?
Не знаю в какую сторону двигаться, но ты накидал ключевых фраз, теперь буду их смотреть, спасибо.
> похуй что ответ уже давно есть
Только долбоебам вроде тебя похуй на качество ответа. Из:
Потому что a=i++ эквивалентно этому:
>a = i
>i = i+1
Принцип работы инкремента не понятен.
Очень плохое описание проблемы.
>выполнит тот же запрос на сторонний сайт
на сайт или на сервер? Стороний сервер в курсе про твои запросы и разрешает их? Почитай про cors.
>А после распарсить (файл JSON) и записать в БД
Тебе точно веб нужен? Ты никак не сможешь скриптом в браузере парсить файлы с жесткого диска и уж тем более писать что-то в бд. Тебе скорее всего нужен какой-то парсер вебсайтов, гугли puppiter или request.js
Ты бы проще написал, что хочешь вообще? Скачивать файлы с сайта и парсить их автоматом? Тебе тогда не нужен браузер совсем, бери ноду с request.js и вперед. Или питон, там тоже полно либ для ограбления чужих сайтов.
Спасибо, пока не хватает знаний даже грамотно сформулировать проблему. Буду разбираться, может переформулирую и еще раз приду.
1280x720, 0:19
Есть главный скрипт js, в котором через const объявлена функция ass.
Пытаюсь сделать подключаемый через require модуль таким образом, чтобы он выглядел как кусок основной программы (чтобы там спокойно можно было вызвать функцию ass, используя ее описание и переменные из главного скрипта и не получить undefined).
Как правильно это сделать? Это вообще возможно?
У меня основной скрипт подключает либу amqp. Для того, чтобы по паттерну RPC посылать сообщения и обрабатывать ответы, есть промис SendRPCMessage, который принимает аргументы канал до кролика, очередь, сообщение и некий delay, после которого от саморазрезолвится с дефолтным результатом.
Скрипт будет как посылать сообщения, так и получать, причем в зависимости от содержимого входящего сообщения, нужно будет выполнять совсем разные операции (в т.ч. посылать сообщения в кролика). Все писать в один скрипт будет очень громоздко.
Лучше абстрагировать возможное поведение программы по модулям, но блять, в каждом модуле мне что ли поднимать канал до кролика?
Не лучше ли передавать контекст основного скрипта в подключенные через require функции?
Сделай функцию-обработчик в основном скрипте и передавай её аргументом в свой ипортируемый модуль с rpc, чтобы он коллбэком её вызывал когда надо.
Делать дочерний модуль зависимым от родителя, его импортирующего, это как-то совсем криво выходит.
Сделал, получилось, работает. Спасибо
Нормально решил? Наконец то дошел до нужного мне момента жс. Задача не о чем, а кода на 200 строк. Кажется, я что-то делаю не так.
Кстати, а что за момент такой с псевдоэлементами на последней картинке? А если я хочу себя за ::before через жс подергать, что мне делать?
Ты не решил, а хуйню какую-то написал. Никто тебе данные в виде new передавать не будет, это всегда будет обычный массив: [название, высота, расположение]
Далее у тебя идет аж 3 цикла для элементарной таблицы, когда это всё делается за один цикл. При поступлении новых данных они должны добавляться к существующей таблице, а в твоем случае будет создаваться новый <div> с id который уже занят. Этот div по условиям уже существует, тебе нужно в него добавить таблицу, а не создать div и в нём таблицу.
нельзя дёргать псевдоэлементы жс-ом
> виде new передавать не будет
А откуда я их достать должен для проверки работы функции?
> всегда будет обычный массив
Ну а в задании объект с атрибутами.
>когда это всё делается за один цикл.
Ну покажи как. Я только до такого додумался: https://codepen.io/anon/pen/MPJKeO
Вообще без циклов. И в чем проблема трех циклов вообще? Очень явно и понятно, что происходит: для каждого элемента создается строка, для каждого атрибута создается и добавляется колонна.
Я решал, там вроде json был входящий, из него таблицу делал, я все названия заголовков и данные из него вытаскивал.
Чтото у тебя каждая Mountain, вручную создана.
Таблица же вроде должна поглощать любое количество входящих данных.
https://gist.github.com/truetnoth/f3d9c1b66d47fb6e965bee473de419ef
Ссылка мое решение. Но при проверке кода пишет ошибку на этом условии
const str7 = '())(()';
> 37 | expect(areBracketsBalanced(str7)).toBe(false);
Что добавить в код чтобы это условие возвращало false?
Задача типовая, загугли.
1 переменная-счетчик, инициализированная 0, пробегаешь по строке, когда находишь открывающую скобку - прибавляешь 1, когда закрывающую - вычитаешь 1. На выходе должен получиться 0 если всё збс, отрицательное число - если забыли открывающие скобки и положительное число - если забыли открывающие.
Также нельзя допускать, чтобы в цикле эта переменная была отрицательной.
b=s=>[].reduce.call(s,(a,c)=>a?a+(c=="("?1:c==")"?-1:0):0,1)==1;
Всего 65 знаков! Можно до 56 довести если считать, что строка только из скобок состоит, но это бесполезно.
А мне-то почём знать? Я официально крестоносец вообще.
Если ты про отдельный столбец с чекбоксами - то самому допиливать функционал. По крайней мере готового решения я не нашел.
((s))a(()s)// true
(a, c) => (a ? a + (c == "(" ? 1 : c == ")" ? -1 : -1) : 0)
https://codesandbox.io/embed/8y3rrwyj7l
>doc = await Model.findById(id);
Потом поменять ему значение в массиве
>doc.arr[row][col] = value;
И сохранить
>await doc.save();
И это, как ожидается, не работает. Ошибка не вылезает, но значение не обновляется. Как правильно работать с этим массивом? Не могу нагуглить.
а ты обернул свои await в блок try/catch? Иначе твои ошибки так никто и не увидит.
Я уверен, что у меня не было ошибок в приложении. Так и не понял как управиться с этим монго, перед сохранением в базу парсю массив в жсон, приложение работает как часы, лол.
Вызов монги, блядь, оберни в try/catch, он тебе и выдаст там ошибк, почему не пишется ничего в базу. Вангую id неправильный или ещё что подобное.
У меня mongoose все логирует, ошибок не было. Хочешь сказать, что в целом мой алгоритм работы с документом был правильный? Я просто уверен, что надо было работать совсем по-другому.
Еще раз, ты асинхронно выполняешь действия и ты не увидишь ошибки если не обернешь блок с await в try/catch. Твои ошибки в другом потоке всплывут и никак в консоль не попадут. Оберни всю функцию в трай/кэтч и посмотри есть ли ошибки
Но в принципе и с for можно в 71 знак уложиться.
>>76915
>Я просто уверен, что надо было работать совсем по-другому.
Ну так работай по-другому?
В доках ( https://mongoosejs.com/docs/documents.html ) именно так всё и делается findById, изменяется атрибут, .save().
Однако, судя по
>Under the hood, tank.size = 'large'; becomes tank.set({ size: 'large' }).
Есть вероятность, что изменение одного элемента массива не триггерит никаких магических вещей. попробуй doc.arr[row][col] = x; doc.arr = doc.arr, например.
try{
doc = await Model.findById(id);
doc.arr[row][col] = value;
await doc.save();
}catch(err){
console.log(err)
}
>Твои ошибки в другом потоке всплывут
Но нода же однопоточная.
И так-то она должна была бы на непойманный реджект промиса всё равно поругаться (или крешнутся, если ввели уже это в новых версиях, как обещали в предупреждениях).
А вообще, блядь, вы хоть какую-то документацию читаете? Пиздец, первый же вопрос FAQ'а, мать вашу:
https://mongoosejs.com/docs/faq.html
Почему ни разу не работавший с монгой человек за 5 минут нагулил это всё, а вы не можете? Ещё и issue'ы на гитхабе создают оставляя кучу ненужного дерьма в коде для воспроизведения ошибки.
https://github.com/Automattic/mongoose/issues/1204
>>76934
>(()()) - здесь не соответствие
В чём?!
>>76934
>Чтобы ещё короче стало
Что короче стало? Оно неправильно работать будет с этим -1. Получается, оно на ( будет инкрементировать, а на что угодно декрементировать. Это херня.
>По разному работают
Ты умеешь ясно и одним предложением выражать свои мысли? Кто по-разному работает? Мой и твой код? Так это потому что у тебя неправильно сделано, видимо. Или ты правда считаешь, что "(()())" должно false выдавать?
Ну и какое же из двух представленных правил нарушает (()())?
>какой reduce тормоз
А я где-то утверждал обратное? У меня цель стояла лишь самое короткое правильное решение написать. Тем более, его элементарно в for можно переделать (оставив тем же полустрочником даже).
Дальше будет ещё интересней. Удачи!
https://pastebin.com/aZqAYYiu
>The bind() method creates a new function that, ...
func.bind(this) != func.bind(this). А ты именно это и делаешь.
>правил нарушает (()())
Закрывающая скобка не должна... .+ пример: func(''(())");//true
Думаю, что имели ввиду отражение строки, а не в контексте программирования.
Во-вторых: Только из круглых скобок.
>А я где-то утверждал обратное?
>>76911
Ну явно не медленней чем его for. Я хотел было замерить, а тут хоба и
>InternalError: too much recursion
Рекурсию я после добавил, как на твой пример глянул
Аноны, кто-нибудь из JS-программистов разбирается в коде С++?
У кого есть время и желание - так помогите понять,
как осуществляется цифровая подпись в биткоине...
Есть исходный код, диалогового окна, в программе qt (это окно - на пикрелейтед).
Вот он, этот код: https://github.com/bitcoin/bitcoin/blob/master/src/qt/signverifymessagedialog.cpp
Я знаю, что там используется алгоритм ECDSA, но я не могу разобрать синтаксис плюсов.
Также, есть вот эта фича, с подписью: https://brainwalletx.github.io/#sign
и проверкой её: https://brainwalletx.github.io/#verify
Она работает в браузере, без всяких блокчейнов, вот её код:
https://github.com/brainwalletX/brainwalletX.github.io
и скачать её можно в zip.
А вот тут - исходный код скрипта с подписью и её проверкой:
https://github.com/brainwalletX/brainwalletX.github.io/blob/master/js/bitcoinsig.js
Проблема в том, что я вижу, что сообщение, подписанное в диалоговом окне qt-программы (пикрелейтед),
не может быть проверено JS-скриптом (Message failed to verify).
Ну и наоборот, сообщение подписанное скриптом, если отдельно взять подпись и адрес
- не может быть проверено в qt-программе.
Короче, надо понять алгоритм подписи, и исправить парочкой строк JS-код, чтобы ровно и точно всё было.
Тогда можно будет подписывать сообщения в браузере, не качая программу.
Кто нибудь шарит в плюсах или мне в тред плюсов?
Аноны, кто-нибудь из JS-программистов разбирается в коде С++?
У кого есть время и желание - так помогите понять,
как осуществляется цифровая подпись в биткоине...
Есть исходный код, диалогового окна, в программе qt (это окно - на пикрелейтед).
Вот он, этот код: https://github.com/bitcoin/bitcoin/blob/master/src/qt/signverifymessagedialog.cpp
Я знаю, что там используется алгоритм ECDSA, но я не могу разобрать синтаксис плюсов.
Также, есть вот эта фича, с подписью: https://brainwalletx.github.io/#sign
и проверкой её: https://brainwalletx.github.io/#verify
Она работает в браузере, без всяких блокчейнов, вот её код:
https://github.com/brainwalletX/brainwalletX.github.io
и скачать её можно в zip.
А вот тут - исходный код скрипта с подписью и её проверкой:
https://github.com/brainwalletX/brainwalletX.github.io/blob/master/js/bitcoinsig.js
Проблема в том, что я вижу, что сообщение, подписанное в диалоговом окне qt-программы (пикрелейтед),
не может быть проверено JS-скриптом (Message failed to verify).
Ну и наоборот, сообщение подписанное скриптом, если отдельно взять подпись и адрес
- не может быть проверено в qt-программе.
Короче, надо понять алгоритм подписи, и исправить парочкой строк JS-код, чтобы ровно и точно всё было.
Тогда можно будет подписывать сообщения в браузере, не качая программу.
Кто нибудь шарит в плюсах или мне в тред плюсов?
>Закрывающая скобка не должна...
Не должна что? Идти перед открывающей. Тки мне на эту закрывающую скобку, идущую перед открывающей.
Или ты эти две скобк )( по середине этим считаешь? Тогда всё плохо, потому что имеется в виду парная закрывающая. Т.е., "()" норм, а ")(" - плохо. Но это не значит, что в принципе не может в валидном случае оказаться последовательность из "...)(...". Скажем, то же "(a+b) - (a+b)", тут как раз "()()", но это же явно правильное расположение скобок.
>+ пример: func(''(())");//true
И? Это лишь подтверждает мои слова.
>цитата скорости
Это, если ты не догадался, была шутеечка-намёк на то, что твоё решение в принципе не работало, т.е. вычисления заняли бы бесконечное время, так как ничего не вычисляется.
>Рекурсию я после добавил
Рекурсия была в коде по ссылке в посте. Чего там ты когда и куда добавил — не знаю, да и всё равно как-то.
>Думаю, что имели ввиду отражение строки
Ты не правильно думаешь. И вообще, твоя логика рассуждений присуща болванам.
мимо
Анончик, тут перед стажировкой меня попросили "Написать функцию на js вида login(username,pass), которая логинила бы в Яндекс". Меня же троллят, да? Нельзя же скрипт на чужой странице запустить, вроде.
В чем проблема сделать страницу с формой логин/пасс, которая отсылает данные на яндекс и переходит туда же?
Слишком ньюфаг, начал в js несколько часов назад. Можешь подсказать как это реализовать?
>>77147
CSRF токен нужен.
Спарсить yandex/auth на наличие токена и прочего мусора, запилить и отправить запрос, сохранить куки.
Ни один (нормальный) браузер такой хуетой заниматься не даст, поэтому только из ноды.
Но это всё хуйня без задач, если нужно проверить почту, например, то лучше зарегистрировать OAuth токен и делать через апи.
>Но это всё хуйня без задач, если нужно проверить почту, например, то лучше зарегистрировать OAuth токен и делать через апи.
Как раз читаю об этом.
Ну вот на странице есть поле.
Собственно, если юзер начнет выводить за рамки, как его остановить?
Даст, если делать всё с какой-либо страницы яндекса, иначе будет выдавать CORS хуйню.
Не совсем понял, что ты хочешь, но разве ты не можешь контролить mouseleave event?
Блять, хуею с таких тупорезов, мало того, что не могут загуглить, так они даже не стараются сформулировать вопрос так чтобы его поняли.
Какое нахуй поле, какие нахуй рамки? Что юзер начинает выводить?
>>77246
Есть карта. По ней пользователь может перемещать пин.
Сама карта не во весь сайт, а в квадрате. Соотв., если пользователь выводит за рамки квадрата, пин должен замирать.
Я написал ограничения рамки, пока ждал ответ.
https://ideone.com/JUCVz0
Однако, есть проблема: если навести пин на край карты, он начинает "дрожать", перерисовываясь при каждом движении пользователя.
Как можно реализовать перемещение объекта по полю, чтобы не было "дрожания" при касании границы?
>prog.js:3:0 ReferenceError: document is not defined
Зачем ты там постишь, если оно там не запускается? В шапке есть Кодпен, например.
Есть событие по входу-выходу:
https://developer.mozilla.org/en-US/docs/Web/Events/mouseenter
https://developer.mozilla.org/en-US/docs/Web/Events/mouseleave
Можешь добавить их полю и убирать логику соответственно.
Посоветуйте простейшую реализацию следующего - или направьте куда копать?
Есть просто ссылки, а они ведут на определенную страницу, которое открывается в новом окне. На ссылку повесил просто выгрузку определенных данных
Нужно сделать так:
Ссылка не должна выглядеть как ссылка, а что-то типо кнопки, но это я сам - а вот содержимое окна по ссылке отображалось здесь и сейчас в этом браузере без перехов и очевидных загрузок
Это что, AJAX, Angular, JQuery? :(
Можно ли где-то скачать бесплатно премиум-темы из Bootstrap?
Или есть что-то подобное - не хочу трахаться с дизайном, надо просто взять и вставить готовое смузихлебное
Вот первое: https://codepen.io/anon/pen/MPpNop
Оно сделано просто и так, как показаны примеры в книге - с захламлением глобального пространства.
А вот второе: https://codepen.io/anon/pen/dgWoYx?editors=0010
Там я решил сделать один объект и запихнуть все в него.
Вопросы:
1) Нормально ли я сделал объект? Может что не так?
2) Помогите разобраться с еблей между 16 и 19 строками. Вот там есть закоменченная строка, и в track есть закоменченный вывод this. Так вот в чем проблема, когда я вначале писал как в закоменченной строке, то оказалось, что при вызове обработчика на событии, туда каким-то образом пропихивается в this элемент, на котором это событие возникло. Зачем, почему? Есть же event.target. Ну вот и обертка это мой способ борьбы с этим. Это правильно, так и делают? Или как по хорошему инкапсулировать весь код, связанный с определенным функционалом на странице, в одно пространство имен?
Я бы назвал compose, но вроде как функция с таким названием уже есть и она передает результат от одной функции к другой, а тут аргументы не меняются, просто вызываются параллельно.
map
juxt (от juxtapose): http://clojuredocs.org/clojure.core/juxt
в хаскеле называется sequence, но там это на манатках-хуяктах, без них название doesn't make sense
чел, если тебе это надо реализовать, чтобы взяли на стажировку, а ты даже не представляешь, как, то на стажировке тебе будет пизда. поучись пока лучше.
"Так как строки неизменяемы, их ненужно пересоздавать каждый раз, когда их вычисляют"
Во-первых, "вычисление" это засовывание в память байтов, а "создание" это связывание имени переменной с адресом памяти, где сидят байты? Во-вторых, как это вообще связано? Я вот знаю, что в Питоне целые числа до какого-то предела хранятся в памяти все время, и при объявлении переменных с такими значениями, просто дается указатель на них (второй пик)
В жс что-то похожее? При первом Player.type "вычислится" строка "player" и "создастся" какая-то скрытая Player.cache.type, хранящая указатель, которая потом будет этот указатель возвращать при повторных обращениях к Player.type?
>Понимать можно по-разному.
Нельзя. Если ты не понимаешь даже такого примитивного ТЗ, то дальше будет только хуже.
>Всё равно быстрее reduce
Не, ты правда не очень умный и/или читать не умеешь. Я не говорил, что reduce в общем случае быстрее, только что быстрее твоего for'а с рекурсией, потому что он ни за какое время не дал бы правильного ответа для строк длиннее 7-30к символов в современный браузерх.
есть одна страница, в ней как обычно подключен jquery, он срабатывает на div id, который явно прописаны
Объекты, которые создаются из шаблона {% for %} обладая таким же div id Не срабатывают на jquery
$("myid").hide()
Скрывает только myid, который создан руками.
Сам скриптец ставил в разные места
Отбой, анчуаны. Заработался, затупил
Нигде не указано за вложенность/выражения, зато привели простой пример: (()),
и условие: закрывающая скобка не должна идти впереди открывающей, где (()()) понимай как хочешь. По мне все реализации валидны.
> 7-30к символов в современный браузерх.
Для такого и reduce не годится (for ). Ты попробуй напиши по другому, а то что метод с счётчиком самый производительный и так всем понятно.
Я закинул решение уже после твоего поста, как вариант на коленке.
>Для такого и reduce не годится (for ).
Это почему? https://repl.it/repls/IcyHurtfulRobots вон тебе хоть полмиллиона меньше секунды делает (локальнов браузере на i5 ~400мс).
>Ты попробуй напиши по другому
Как по-другому? Зачем? Я не понимаю, что ты пишешь.
спс
Чтобы стать хотя бы джуном надо весь сисп прорешать, советую сразу на cljs писать код, вместо схемы.
Ну я немного с ним повозился, просто из интереса... Думаю сначала просто с жсом поработать нужно
Жопой читаешь или ты просто даун?
https://javascript.info/
https://medium.freecodecamp.org/the-definitive-node-js-handbook-6912378afc6e
https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs
http://speakingjs.com/es5/index.html
http://exploringjs.com/es6/index.html
http://exploringjs.com/es2016-es2017/index.html
http://exploringjs.com/es2018-es2019/toc.html
Ты это всё изучил и для тебя это "по сути ничего по js нет"?
Сходи лучше на курсы по горловому минету, долбоеб. Перейти по ссылкам и посмотреть так сложно?
https://javascript.info/courses/js
Зачем мне соглашаться с дауном, который не может переходить по ссылкам? Есть курсы на js info есть на htmlacademy, которые анон рекомендует, но нет, находится дурачок, которому этого почему-то недостаточно, при этом почему ему этого недостаточно он не уточняет, ни своих предпочтений, ни своих целей он не обозначает, просто "КАКИЕ КУРСЫ ПОСОВЕТУЕТЕ?????"
А судьи кто?
Ещё в шапке есть Хекслет, Траверси, Симпсон. И даже Жавараш.
Не упоминается только Гикбрейнс. А мы в этом случае как раз имеем дело с их целевой аудиторией.
>>77643
https://geekbrains.ru/professions/web_developer
https://ru.hexlet.io/
Так redux - это и есть архитектура.
Чем лучше? Тем что ты челядь не знающая английский в 2018? Потому что во всем остальном javascript.info лучше, так как на нём актуальная информация, в отличии от заброшенного learn.javascript
Тут пиздец трактат писать надо и все равно все будет очень субъективно.
Несколько советов для рест-бэкенда:
1. Присвой каждому эндпоинту свой «домен» в сторе с уникальным ключом типа users или post/15 и значением вроде { data, isLoading, error } и храни состояние в нем. Это надежно лечит рейс кондишенс и дает хорошее понимание что сейчас грузится и в каком состоянии находится. Плюс бесплатно получаешь кеширование данных. См. https://stackoverflow.com/questions/37738268/how-to-avoid-race-conditions-when-fetching-data-with-redux
Редьюсер для этого можно написать ровно один, получается меньше бойлерплейта. Похожий подход используется в redux-form.
2. Оборачивай компоненты в лоадеры, которые инициируют запрос и не рендерят своих детей, пока данные не загружены. Таким образом в компонентах данные будут гарантированно. Избавляешь себя от ненужных проверок и обработки ошибок.
3. Все императивщина должна быть в componentDidUpdate и полностью data-driven. Никаких коллбеков, async и промисов внутри компонентов.
4. Разделение на контейнеры и компоненты — отстойная идея, усложняющая код.
Дан массив строк. В каждой строке один матч.
В строках этого массива нужно найти match(regex) и сделать массив из того, что матчится.
Мэп, фильтр, всё перепробывал. Нихуя. А теперь я запускаю это, и охуеваю:
const regex = new RegExp('/(https?:\/\/[^\s]+)/g');
userArr.forEach(function(element) {
console.log(element);
console.log(element.match(regex));
});
element выдает строку, все ок. А вот element.match(regex) - null.
Какого хуя?
Пиздец я слепошарый уебан, там же '' в регексе.
А лопатить этой хуйней мы будем как минимум не меньший массив строк, так что сложность устремится к пиздецу.
Спасибо. Впринципе, получается по сути можно почти всегда обходиться парой экшенов и редюсеров на всё приложение? К примеру, прокидывая в экшен name: post или post/postId. И по этому имени сохраняться в сторе данные [name]: {data, isFetching, error}. Получается, что приложение будет увеличиваться и экшены и редьюсеры не будут расти вместе с ним?
Да, ты все верно понял. Вероятно, понадобятся еще редьюсеры для форм, персистентных данных, всяких UI-штук, но, в целом, не так много.
Алсо, можешь использовать либу, которую я для этого написал: https://github.com/Qlean/redux-struct Используем в проде больше года, оче удобно. Диванон травля.
Спасибо. Посмотрю на днях твою либу ;)
> Оборачивай компоненты в лоадеры, ...
> Разделение на контейнеры и компоненты — отстойная идея, усложняющая код.
Вас там двое этот пост писало?
Контейнеры в идеологии редакса это «умная» прослойка между «глупыми» компонентами и стором. Я считаю, что к стору может коннектиться абсолютно любой компонент и создавать лишнюю сущность для этого не нужно.
Лоадер, в моем понимании, это компонент, который отвечает за то, что его дети гарантированно получат какие-то данные с сервера. То есть инициирует запрос, показывает крутилку и обрабатывает ошибки. Ему даже данные не обязательно детям передавать через пропсы, они их сами могут из стора взять.
>Контейнеры в идеологии редакса это «умная» прослойка между «глупыми» компонентами и стором.
Ты не понимаешь сути. Суть контейнеров не в том, чтобы пропихнуть пропы из редакса, а в том, чтобы отделить логику от представления.
Всегда актуальная инфа на mdn, и в спеках, а не на ваших васянских букварях для дегенератов.
>mdn
>не на ваших васянских букварях для дегенератов.
В голос с долбоеба, который думает, что mdn это не васянский букварь для дегенератов.
Потому что не умеют её готовить, привыкли пилить очередной костыль для пыхи, а ничего сложнее пайтона освоить не могут.
Нет многопоточности, нет нормального стека, не поддерживается никем, даже сам автор предостерегал от ее использования (лол). Она хороша для "я чтмл-программист, не хочу\не могу учить ничего кроме жс, надо по-быстрому поднять говносайтик", но для чего-то серьезного совершенно не подходит.
скока запросов выдерживает?
А ты вкурсе, что под капотом у ноды есть libuv, которая создает и менеджерит пул потоков? А ты в курсе, что на каждое ядро вешается по процессу ноды и балансируют нагрузку между ядрами nginx'ом?
Нода предлагает асинхронную обработку запросов. К примеру у нас есть порносайт на пхп, Ерохин забивает нужные фильтры и шлет запрос. Сервак на этот запрос создает процесс, формирует запрос к бд, ждет ответ, затем посылает список роликов Ерохину и процесс умирает. Пока база данных обрабатывает запрос, процесс ничего полезного не делает, а ресурсы потребляет, память занимает. Если таких Ерохиных будет много, то Сычев может и не дождаться роликов с трапами.
Теперь тот же сайт с нодой. На запрос Ерохина нода сформирует запрос к бд и сразу же перейдет к обработке запроса Сычева. Когда бд ответит списком роликов для Ерохина, то нода отошлет эти данные Ерохину. Ничего без дела не простаивает.
Однако, если у нас сервак делает что-то связное с тяжелыми вычислениями, то асинхронность только испортит дело.
так может в каждой версии что то ломают
те дохуя запрсов вытянет?
>многопоточность
>на каждое ядро вешается по процессу ноды
Ну вот и подъехали чтмл-программисты, о которых я выше говорил.
Как там в 2010?
>Однако, если у нас сервак делает что-то связное с тяжелыми вычислениями, то асинхронность только испортит дело.
Сам уже понял, что хуйню сказал, или придется объяснять?
нужно норм пояснение что и зачем
> не поддерживается никем
Эммм, ну ладно.
> я чтмл-программист
Похоже, что ты и есть тот самый "чтмл-программист".
Курсы хороши тем, что у тебя есть краткосрочная мотивация. За тебя решают что ты делаешь и как быстра бляяяядь. Это если курсы дают толковые задания. Если они гоняют туториалы с тобой, то отсосешь хуйцов ты только после таких курсов.
При чем тут идеал и лучше\хуже? Вы тут совсем со своим гуманитарным мышлением ебанулись. Поддержка многопоточности языком\платформой - это объективная характеристика, она либо есть, либо нет. При чем тут кластеры и идеалы? Это как в ответ на "у вас в стдлибе нет поддержки precise ratios" отвечать "а чем они лучше floating point'ов?" - да ничем они не лучше, блядь, понятие "лучше" вне контекста задачи вообще не определено, тебе просто факт констатируют.
А так, multithreading story конечно в го и кложе более лучшая, ну и ерланг там всякий еще, плюс в расте благодаря линейным типам в теории все должно быть очень круто, но я хз
>>78349
Если у тебя в рамках хттпшной реквестореспонсной модели происходят какие-то тяжелые вычисления, то тебе, очевидно, придется делать их "асинхронно" - то есть скидывать реквест в пул воркеров, чтобы не забивать сервер. Другое дело, что асинхронный io, про который ты говоришь (и который уже давно везде есть, ты агитки пятилетней давности цитируешь), этому в принципе ортогонален
>>78353
Во дебил, лол. Ты бы хоть погуглил, что твой стронглуп продает. Ссылку дать или сам разберешься? Второй пик вообще нахуй прилепил, это обычная рекламка про то, кто их юзает. Ты, блядь, походу вовсе не понимаешь, что означает слово "поддержка", лол. Сама нода де-факто часть линукс фаундейшен - я бы еще понял, если бы ты фотку линуса или лого айбиэм прицепил, но ты же вообще не в теме, не лезь.
Понятно, но если говорить о обычном круде, то такой ли уж большой недостаток отсутствие аналогов горутинов?
>асинхронный io уже давно везде есть
А теперь его поддержка есть в пхп из коробки или надо попердолится с настройкой и разными либами?
>Если у тебя в рамках хттпшной реквестореспонсной модели происходят какие-то тяжелые вычисления, то тебе, очевидно, придется делать их "асинхронно"
А не лучше ли будет в этой ситуации использовать модель по новому процессу на каждый запрос, как в старом пхп?
Во-первых, я и не говорил, что это какой-то недостаток, я просто отвечал на вопрос "почему хейтят ноду". Во-вторых, фишка все-таки не в горутинах (в кложескрипте тоже горутины, а он как бы в браузере крутится), а именно в многопоточности и асинхронном коде здорового человека. Ну и наконец - нет, в обычном круде их отсутствие не такой большой недостаток ящитаю, все-таки для крудов фреймворки хорошо скрывают все детали, но блин, круды тоже разные бывают. Даже если тебе тупо вебсокет эндпоинт надо подключить - это ведь уже какой-никакой асинк.
>А теперь его поддержка есть в пхп из коробки или надо попердолится с настройкой и разными либами?
Я не особо шарю в пхп, но вроде нет, искаробочной инфраструктуры вокруг которой все вертится (как в ноде) там нет. В фейсбучном Хаке вроде чето на эту тему было, но опять же я не шарю.
>по новому процессу на каждый запрос
Ну обычно ты просто скидываешь мессагу в шину, а отдельный процесс или тред в процессе ее потом зохавает - это уже дело десятое. Я имел в виду, что концептуально у тебя как раз именно в этом случае взаимодействие между клиентом и сервером будет асинхронным: не вопрос-ответ, а вопрос - вернули управление и начали считать.
Спасибо за ответы, буду иметь ввиду.
Даун ебаный. И чем по-твоему вебворкеры ноды отличаются от процессов эрланга? Что болядь это не потоки? Или разделяемой памяти у тебя нет?
Иди уроки делай, а то мамка наругает.
Там, короче, и так всё работает для биткоина, но только для него.
>>77243
Спасибо. Зашёл оттуда сюда: https://github.com/bitcoinjs/bitcoinjs-lib/tree/v2.1.4
и чуть порылся, и вижу тут: https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/address.js
>messagePrefix: '\x19Litecoin Signed Message:\n',
По умолчанию же, для биткоина, он вот такой:
>const std::string strMessageMagic = "Bitcoin Signed Message:\n";
https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp
Так что, для альткоинов - надо просто менять этот magic-префикс
strMessageMagic, который указан разный
в различных файлах исходников у них.
И тогда всё гуд и подписи пашут норм.
onscroll добавить/убрать класс
Нихуя ты не знаешь, не включай манёвры. Знал бы, что за код — тут бы свою бредятину не споашивал бы.
То что ты дебил у меня нет никаких сомнений. И не хуй мне указывать, уходить мне отсюда или нет, понял ты, хуйлуша?
О рили? Забанил? Соси хуй и не психуй манячка.
Стек
Бек: node, socket.io.
Front react.
На сокете сделал комнату, в которую могут подключиться только два игрока, но тут ВСТАЛ вопрос. Есть идея, что играть может большое кол-во человек.
1) Как сделать автоматическое создание комнат, т.к. при заполнении одной комнаты двумя игроками, должная создаваться новая. Как это делать? Я так понимаю, что нужно делать какой-то счетчик подключений, в зависимости от которого нужно будет создавать комнату или как?
2) Как можно сделать уникальные юрл для каждой комнаты, чтобы игроки могли по ней переходить в пустые комнаты?
>если имя свойства число или числовая строка
>имя свойства число
Чё? Имена свойств же в любом случае строка и в случае если при обращении к свойству (foo[bar]) bar - не строка, то bar приводиться к строке (bar.toString()).
>>77543
>Пиздец, что за люди так накосячили с языком, чтобы в последствии так много пришлось менять.
Да в том и проблема, что изначальные косяки стандарта нихуя не меняют, только костылями обмазывают.
Ненавижу JS за это. То ли дело няшный Python где 3.0 дохуя всего поменяли к лучшему нассав на обратную совместимость.
какие плюсы и минусы?
Потому что ОБРАТНАЯ СОВМЕСТИМОСТЬ.
Жди ещё лет 20, может на вебассемблер перейдут, а жс наконец-то станет легаси. Тогда заживём.
а зачем она нужна?легаси проэктам и так сойдет,а новые писать на новом
Потому что это будет другой язык, и непонятно, какой (а главное кому) в этом профит.
Как ты представляешь выпиливание обратной совместимости в языке, который запускается в браузере?
Ты долбоеб или притворяешься? Господи, иди со однрклассниками эту тему обсуди, не позорься.
>Действительно, кому нужен нормальный язык в вебе, давайте продолжать терпеть
Ну да, ты (когда вырастешь и станешь веб-макакой) будешь заниматься именно этим: терпеть. На твои душевные страдания всем похуй, формы шлепать ты и так и эдак будешь. Смекаешь?
https://github.com/webtorrent/webtorrent/blob/master/docs/api.md
В нее приходит торрент, в торренте много файлов. В объекте с файлами лежит их длина, оффсет, имя и путь. Как мне сделать seed для каждого файла в отдельности? Для этого надо как-то из каждого файла сделать буфер либо файл. Т.е. надо из буфера торрента достать буфер файла, а потом сделать из него файл и только потом сделать seed? Но как найти оффсет буфера файла в торренте?
Добавляешь торрент при помощи client.add(). Используешь client.on('torrent', function (torrent) {}) и torrent.files
отсеивая ненужные файлы при помощи file.deselect() (на не нужных файлах, но этот метод не работает так как предполагалось, поэтому советуют использовать решение отсюда: https://github.com/webtorrent/webtorrent/issues/164), после скачивания файлов используешь client.seed() в input которого указываешь путь к файлу/папке с файлами который(-е) скачал.
дело в том, что когда я делаю client.add и в полученном торренте прохожусь циклом по файлам, то пытаясь сделать метод getBlobURL у меня вылезает ошибка @cannot read property reading of undefined"
>после скачивания файлов
как их скачивать? ни автоматом скачиваются при вызове client on torrent?
index.js?583f:189 Uncaught Error: invalid input type
Нифига не работает. Ты можешь работающий кусок кода написать?
Куда эти файлы скачиваются, как их скачивать, в какую папку. Как показывать прогресс при скачивании
https://ideone.com/m6wS6I
Этот код выводит ошибку
Uncaught Error: filesystem paths do not work in the browser
ES5, ES6,Typescript.
Платиновый пост.
В требованиях на вакансию "Frontend Developer" обычно указывается "отличное знание HTML 5, CSS 3, JS и фреймворков". Если с JS все более-менее ясно, то что считать отличным знанием HTML и CSS? Каковы критерии профессионализма в этом вопросе?
>>1278734 (OP)
HTML и CSS - отличное пониманием Div и всех атрибутов. Если умеешь в блочную верстку, да еще и таблицы помнишь - то лишних вопросов задавать не будут.
Просто посмотрят на твое портфолио из 25 сайтов
Читаю фрикодкемп и мдн на ангельском, прочитал и прорешал англоязычного кантора, почти не пользуясь переводчиком. Читаю пытаюсь худлит-хуйню и реддит. На слух воспринимаю хуево, обычно чуть больше половины слов улавливаю. Говорю, закономерно, тоже плохо, хотя могу высерать более-менее осмысленные фразы, но исключительно благодаря нормальному словарному запасу, т.к. предложения строить не умею. В свое оправдание могу сказать, что еще два месяца назад знал английский исключительно как пару текстов любимых треков.
Но вчера позвали на собес через профиль на хх, фронтенд-джуном не совсем то что я хочу, но все же для моего дс3 40к это крайне дохуя, да и попробовать стоит, коммерческий опыт, как никак. В обязательных требованиях четко написано английский pre-intermediate или выше. У меня есть шансы? И как мне оценивать свой английский? на хх указал что-то типа достаточный для чтения технической документации.
Ы /ft одни долбоебы.
Это копия, сохраненная 20 ноября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.