Это копия, сохраненная 20 сентября 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.
Часто задаваемые вопросы:
https://github.com/vladimir37/js-thread/blob/master/Wiki/faq.md
Список материалов для изучения:
https://github.com/vladimir37/js-thread/blob/master/Wiki/learn.md
Список инструментов и направления JS-разработки:
https://github.com/vladimir37/js-thread/blob/master/Wiki/tools.md
Конфа /pr/ в Slack:
https://slack-2chpr.herokuapp.com/
JS-конфа в телеграме:
https://telegram.me/jsthread
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
keeek
почему в этой функциии https://pastebin.com/085Rg0gR выходит ошибка?
SyntaxError: Unexpected token +
Нормально. Но я новичок в js, потому не понимаю - выражения возвращать из функции нельзя?
Какое выражение, наркоман?
Та хуйня, которую ты написал без сахара выглядит так:
> return {y+1: y+1, x: x}
что есть синтаксическая ошибка.
Чтобы ошибку исправить надо писать так:
> {[y + 1]: y + 1, x}
Но сомневаюсь что это то, что ты хотел.
Благодарю, именно этого я хотел
Вот типа как я иногда смотрю в инспекторе, когда напишу хуету и ничего не работает.
Web Storm
Кантор
есть схема к монгоосе:
var anon = new Schema({
_id: id,
chtoTo: chtoToDrugoe {
mestoDlyaMassiva: [],
},
})
так вот, в чем трабл, я хочу добавить в массив ряд обьектов по другой модели модель:
{
_id: drugeoId,
body: text,
sozdal: userName
}
прочитал документацию, но не понял как именно добавить его в массив, который в глубоко засел в схеме, помогите плиз
>При чем тут VS Code? Тут в браузере упало. Если надо отлаживать под VS Code наверняка есть какие-то дополнения для него, хотя я хз вообще как ты это делаешь и зачем. Стек всегда полный, показывает трейс от и до все точки во всех функциях, через которые прошел упавший синхронный (а со специальным включенным параметром в Chrome и асинхронный) вызов функции. В любом нормальном языке список такой же. Не знаю считаешь ли ты Java нормальным языком, но там еще пизже показан трейс из вложений хуевой тучи абстракций, есть даже картинка как это все там выглядит, но искать я ее не буду.
прикол в том, что когда пишешь на шарпе, то в дебаге ты ползаешь по разбитому C# коду, а в JSe ты ползаешь по скомпанованному JS5 коду, который был скомпанован и преобразован из TSa/JS6+ бабелем и вебпаком. Т.к. оно все скукоживает, то у тебя в стеке всегда фигурирует используемые библиотеки.
В C# ты как правило смотришь на что писал именно ты, а используемые библиотеки можно включить отдельно в исключительных случаях. Мне было бы удобно смотреть только на свой код, т.к. я более чем уверен, что он хуже чем исходники того же реакта или какого-то дерьма из npm.
в смысле: ошибка в моем коде, а не в реакте, к примеру. нахуя мне весь этот лес, если я хочу смотреть лишь на свое дерьмецо?
В шапке же все есть. Флэнагана читай.
открой для себя source map, и больше не ползай по тому, чего не писал именно ты.
Для этого придумали sourcemap, ты будешь видеть свой красивый код ES6, а в браузере будет исполнятся код в ES3-5. Webpack умеет делать сорсмап из коробки.
вагон чая для гуру, соурс мап это лучшее изобретения для продакшн реди проектов
Взять бойлерплейт какой-нибудь типа next.js или писать все самому?
Я так полагаю, на том же Notepad++ или на любом другом текстовом редакторе?
spacemacs
Читай внимательнее.
Есть много текстовых редакторов с плагинами: Atom, Sublime, можешь настроить все под себя. Лично я рекомендую VS Code, необходимый функционал есть уже из коробки, плагины так же присутствуют. Если хочешь серьезную IDE, то бери Webshtorm, но для новичка она будет избыточно сложной.
новичек может тупо не понять что ему нужно для создания говнопроекта, реакт нейтив, или экспресс. С точки зрения новичка это вообще ахен какой-то. так что я лично тоже советую обычный редактор типа VS Code, м переход к IDE eже в зрелом образе кодера
Тяжелые задачи - это по-твоему, ажакс-запрос? Проблема с тормозами у тебя исключительно из-за ущербности подхода "на одно логическое действие генерится 15 ажаксов". Веб-воркеры оставь для майнинга битков.
В свою очередь, посоветовать могу переделать логику скрипта. Пусть раз в секунду опрашивает сервис и получает только число прогресса, которое ты визуализируешь в прогресс-баре. При получении ответа о полной готовности - загрузить все данные один раз и отрендерить их один раз.
Алгоритм: есть setInterval, который раз в секунду отправляет AJAX-запрос к PHP, а PHP делает запрос к API. PHP получает ответ в виде JSON, отправляет JSON к JavaScript. Но проблема-то блять не в том, что отправляется ajax-запрос, а в том блять, что приходит дохуя большой массив с данными от API, который нужно пройти 4 раза в т.ч. проверить, нет ли совпадений и распихать его по 4 разным более мелким массивам посредством .push(). У меня в одной функции происходит одновременно 4 мапа, 4 reduce, 4 forEach и 4 пуша. Это вызывает микро-лаг. Посмотри код этого дерьма и поймёшь, что я называю "сложной задачей" - https://jsfiddle.net/11kstb9u/ учитывая, что в одном ответе может прийти 120к строк
в вашей деревне про парсинг слышали? или вы там джсон от апи полностью используйте?
я просто прочитал первые 3-4 строчки, и понял что ты просто ебешь мозги. зачем так все усложнять, если тебе нужна сглаженность работы то перепиши код через async/await и транспилирую с помощью каких-то либов.
я просто не понимаю твоей проблемы, ты кодишь на пхп, и ожижаещь что твой айакс запрос пройдет до невозможного гладко. хочешь конкретного совета, делай так, чтоб JSON парсился в самом пхп, а айаксом просто получай оттуда данные
ты пойми, ты в браузере хочешь обработать обхект, длиной в 120к строк, это просто глупо
RxJS
Или любая иная либа для обработки потоков/ленивых вычислений.
Отталкивает то, что в том же неестественно абсолютно все спрятано от настройки. А пилить свой конфиг авторы не рекомендуют.
В том же нексте*
На словах все просто - диспатчишь экшен, меняешь стор.
А на деле без туторчиков нихуя не могу
Берешь код realworld, читаешь, делаешь по аналогии.
конкретно пидерастическая реклама вот на этом сайте: http://korrespondent.net/
но мне интересен сам принцип: профилирование, поиск ивентов по блоку и т.д.
з.ы. готов прочитать про гризманки с которым до этого дело не имел либо поприменять что-то загадочное из CSS3
Использую uBlock, фильтр easyList, никакой рекламы не пропускает. Или тебя интересует сам принцип удаления рекламы? Тогда читай про устройство adBlock'a.
for (a in obj) {
div.style.a = "xyi"
}
И почему в обратную obj.a не робит?
фу сука мудак, на такой хуйне наебнулся. Спасибо тебе, братишка
не, кокой-то гейний пограмирования убрал у меня возможность приспокойно влиять на рекламу посредством CSS, потому что тут срабатывает уже JS, который может сделать все.
Мне было бы интересно так посмотреть на страницу с таким набором инструментов, чтобы понять что именно происходит, в кокой момент и легко понять, как этому противостоять.
еще поможет на рандомном проекте быстро понять кто кого как имеет введу и че делает. полезный скил в работе
Я PHP знаю на самом низком уровне и у меня в проекте он используется по минимуму - только в качестве инструмента для запросов к API и получения ответов. Если я буду переписывать всю логику на PHP, то у меня это займёт куда больше времени + этот хардкодинг может вылиться в какие-то баги, правка которых займёт ещё столько же времени. Мне куда проще вынести эту функцию с кодом в отдельный поток каким-то скриптом.
Вообще как в жаваскрипте детектить, когда функция завершилась?
Например, я ставлю блоку высоту функцией, как мне узнать, когда высота элементу про ставилась?
Госпади, обрабатывать серверную инфу жсом - это просто верх уебанства. У меня аж глаза потекли, неудивительно что клиент тоже подтекает. Пишу бэк на пхп, а фронт на жс
Чувак, у тебя что-то в консерватории не так, если:
> приходит дохуя большой массив с данными от API, который нужно пройти 4 раза в т.ч. проверить, нет ли совпадений
> в одном ответе может прийти 120к строк
Чини проблему с другой стороны.
ontransitionend
>>>1045076
я думаю он имел ввиду пропарсить обхект так, чтоб он нахуй не 120к строк возвращал раз в секунду
Я имел ввиду возвращать с сервера объект меньшего размера, т.к. вряд ли там содержатся изменения в 120к строках, которые произошли за эту секунду. Дубликаты тоже можно на сервере удалять.
typeof window.jQuery === 'function' ? 'da' : 'niet
Я к серверу API не имею никакого отношения. Работа API устроена таким образом, что данные приходят кусками и их нужно запрашивать в течение 30-60 секунд с любой периодичностью, пока в ответ не придёт массив со специальным "заключающим" ключём. Может прийти 5к строк, может 95к.
тебе в детстве не рассказывали, что полученный от апи джсон можно манипулировать, перед тем как обработать? типа можно обрабатывать конкретные ключи из целых 120к строк, если ты знаешь что тебе нужно
Ещё если я печатаю и текст уходит правее курсора то он автоматически выделяется.
Если незачем, то с какой целью это сделано? И какая связь между if и использованием переменной внутри функции?
Как его применить ирл, а не писать тесты, проверяющие функции уровня split.
Вот у меня есть react+redux приложение, которое ходит в бэкэнд node+express+mongoose.
Хуячу стандартную форму добавления данных в табличку. Как это говно тестить?
Отвязывай логику заполнения и валидации формы от вызова метода сохранения API и мокай API в тесте.
Да какая там логика-то, пара инпутов? Вся же суть в том, чтобы говно оказалось в базе.
Что я делаю руками:
Пишу форму. забиваю в неё руками данные, дебажу, добиваюсь того, что она валидирует (просто делает сабмит на сервер, и обрабатывает получееный ответ в redux-form)все как надо, выдает ошибки там где они ожидаются (пустые поля, например).
После успешного сабмита, я ожидаю что в общем списке, куда идет редирект, должна появится новая запись.
Та еще говнина. Ну ок, а если не селениум, а тесты по проще, то как и что тестить?
ну или https://github.com/webdriverio/webdriverio
по поводу тестов хуй знает, на селениуме в основном ботов писал
Сторонний стейт менеджер либо использовать контекст вручную.
Юзаю. Через коннект завернутый родительский компонент. А свойство нужно прокинуть через 3 stateless компонента вниз.
Так это не TDD, а интеграционные тесты, которые проверяют, что у тебя фронт с бэком вообще работают.
Если у тебя сабмит посылает данные на бэк, а в листе данные подтягиваются только из бэка, то нужно писать два теста: данные уходят, данные приходят - в обоих случаях мокаешь запросы к бэку.
Если у тебя после сабмита данные идут и в список на фронте, и асинхронно на бэк, то отвязываешь в своем сабмите функцию посылки на бэк и мокаешь ее в тесте.
Ну так коннектить можно не только самый верхний контейнер, но и любой вложенный приконнектить прямо к стейту (или куску стейта).
Подробностей не помню, сам давно реакт/редакс не трогал.
Короч рекомендую получше с редаксом разобраться.
Не оче понял чего ты хочешь.
Например, функция принимающая строку и возвращающая функцию (уже без параметров) которая высрет эту строку в консоль:
let func = (str) => () => { console.log(str) }
https://jsbin.com/layejiwoba/1/edit?js,console
Читай про каррирование в js, если ты это хотел.
npm install -g @angular/cli
ng new myapp
cd myapp
ng serve
Каталог с созданными исходниками 156 МБ, совсем ебанулись что ли? У меня база на back end весит меньше.
func.bind(null, 'hello')
Аноны, думаю на курсы learnjavascript по node.js пойти. Их сертификат имеет вес при устройстве на работу? Стоит ли?
Есть объект myobj с некоторыми свойствами. В цикле for (var prop in myobj) в myobj добавляются одни свойства и удаляются другие. Гарантируется ли, что:
1)Цикл пройдет по всем свойствам объекта, включая добавленные внутри цикла?
2)Цикл не попытается обратиться к удаленному, если он был удален раньше чем его очередь пришла?
Даже если ты раскопаешь что говорит стандарт по этому поводу, лучше так никогда не делать, а замапить/отфилтровать/отредьюсить нужный объект.
Просто методы массива транслитом.
>Метод map() создаёт новый массив с результатом вызова указанной функции для каждого элемента массива.
В том-то и дело, что мне нужно применить функцию даже на элементы, которые появились в результате выполнения функции.
Скорее всего ты придумал хуйню. Ищи альтернативные варианты решения: рекурсия, несколько проходов, ...
Думал о проходах с пометкой уже использованного свойства, но это же куда дольше получится?
Конкретней по хуйне - я пишу в качестве тренировки простенькую пошаговую игру. Имеется ассоциативный массив для списка всех юнитов на поле вида айди_юнита -> объект юнита. В конце хода каждый юнит по очереди (с меньшим ID раньше) совершает свое действие, в том числе может порождать новых юнитов либо уничтожать имеющихся, и порожденный юнит должен иметь возможность сразу же задействоваться. Вот и пытаюсь реализовать.
Может, создавать в конце хода пустой массив, переносить туда юнитов после того как они совершают действие и удалять из оригинального, проходить по оригинальному пока число юнитов в нем не станет равно нулю, а потом приравнивать оригинальный к новому? Или я изобретаю велосипед, и есть решение уже?
Ну да, сделай просто очередь (массив), который в начале итерации равен списку всех сущностей.
> let queue = [...game.entities]
Затем проходишься по нему, добавляя в него объекты или отключая юнитов
Правильно. Для даунов можно собрать в es3 в проде.
Для поддержки даунов существует бабель.
Если дауны не приносят тебе деньги (прямо или косвенно), то да.
Двачую, через неделю пердолинга дропнул эту хуйню.
Сделал форму обычным контроллед-компонентом.
Правда быдлокод формы распух в два раза.
>а ты не знаешь что там такое и насколько это всё надёжно
Почему не знаешь? Ступудово там будет полно вирусов и троянов, братишка hacktask обязательно говна зальет или его последователи.
От сервера приходит ошибка в кастомное поле, под которое нет инпута. Как это залупу вывести?
На отправке сообщения с файлом кидает ошибку "Can't set headers after they are sent"
Что я делаю не так?
Блядская макаба, какого хуя она сабмитит то? Фурифоксо проблемы?
Всмысле блять ошибка в кастомное поле? Там где процесишь респонс пуш ерор в нужное тебе поле
Короче редирект ставит хедер, поэтому если ты что-то уже отправил, то новые поля уже нельзя добавлять.
И что мне с ним делать? Убрать, или что?
если ты прочел учебник и не можешь, то нет, это не норма, или если ты дебил, то да норма и тебе не дано.
Ну ты либо редирект делаешь, либо шлешь какую-то инфу. Какой смысл делать и то, и то?
У меня там с редиректом работает отправка текстовых сообщений. А вот уже на всяких файлах - затык
Ладно, на самом деле похуй, я сделал это через костыль, отправляя это в одно из полей. Но вопрос был в другом, как блять вытащить ошибки, не перехватывая их при получении из промиза?
Это еще почему? Понятие - необходимый информационный шум - тебе о чем-то говорит?
Не страдаю аутизмом
Не могу, они в глобал обжекте.
const getQueryParams = () => (location.href.split('?')[1] || '').split('&').reduce((p, q, i, arr, kv = q.split('='))=>(p[kv[0]] = kv[1], p), {});
Я конечно понимаю что ты написал, потому что сто раз парсил эти ебучие параметры в разных парадигмах, но тебе надо по ебалу дать за это.
Почему это, метод называется пиздато, делает свою работу, содержит минимум кода, да и не сложен если не даун. Импортишь юзаешь, наслаждаешь красотой.
Потому что твою дристню нужно будет отлаживать, или не дай бог исправлять, то это все равно что минифицированный высер бабеля править.
>Деды конпиляли и нам завещали. Деды конпиляли, бабки типы указали. Если не конпилятор, то кто? Раньше не было никаких интерпретаторов и люди нормально жили. Один тип для числа — это и есть ваша хвалёная свобода? Сегодня типы указывать не хочешь, а завтра память сам вычищать не будешь?
Вот у меня есть схема Parent { children: [ref: Child] }
Я хочу
1) Провалидировать обе модели
2) Засейвить обе, только если обе корректные
3) Если есть ошибки, смержить их и послать клиенту
Вот есть таблица с несколькими строками. Если мы напишем
var el = document.getElementById('row2');
el.parentNode.removeChild(el);
то строка с id = row2 удалится.
А если нам нужно добавить снизу ещё одну строку? Это возможно?
Это будет работать везде? Не только в ФФ?
Я не понимаю, как вставить произвольный html-код. В примере создаётся некий div, но у меня этот пример ничего не делает, даже ошибок не показывает.
>// Создаем новый элемент, который будем добавлять
>var nеwElement = dоcument.crеateElemуnt("div");
Кто будет? Код. Заголовок страницы "Интерфейсы веб API". Мало ли, вдруг это только для лисы?
Я впервые работаю с dom. Да и вообще не являюсь программистом, просто нужно поправить кое-что в готовом сайте (которому сто лет в обед и никто не знает, как он вообще работает).
>Я не понимаю, как вставить произвольный html-код. В примере создаётся некий div, но у меня этот пример ничего не делает, даже ошибок не показывает.
https://jsfiddle.net/mLbno8xr/
вот скриптик
https://jsfiddle.net/9xyopytv/
Вот паста: https://pastebin.com/m1GnmaPT
Мне нужно создать два объекта, которые бы не зависели друг от друга.
На вход подаем, например, неотсортированные числа и в функции их сортируем. Но так как две переменные, два объекта ссылаются на одну и ту же дату, то и меняться они будут одинаково.
А как мне запомнить начальную дату, чтобы потом менять ее и вертеть как угодно, а созданная basicData оставалась неизменной?
Какое-то реактивное программирование нахуй. В Джаве и крестах все не так
Потому что это устарелый хак для дедов. Новая нотация явно показывает твои намерения.
а все не надо. я понял, что обосрался
Ты путаешь жопу с пальцем. Человек пытается понять в каком случае функции вызываются асинхронно, а ты ему сахарок над промизами суешь.
>>1046625
Я только начинаю изучать асинхронность и там (место где изучаю) пока нет темы про async (она будет значительно позже), зато есть функция которая работает асинхронно просто с нихуя. Эта функция называется fs.readFile (из ноды что-то) и вот у нее точно такая же структура как и у моего примера, при этом эта функция работает асинхронно и я не пойму как это происходит. Вот вам скрин, чтобы немного прояснилась суть.
Очевидно за тем, что тайпскрипт это набор костылей, который улучшает жс добавляя убогие типы. А purescript делает из жса полноценный чистый яп с нормальной системой типов. Фреймворки типа pux или halogen намного более приятные чем ебаная лапша уровня react+redux, которую кстати спиздили с того же elm
Она из коробки асинхронно работает. Для своей асинхронной функции нужно применять всякие промизы и тому подобное.
Только оно все полузаброшено и без коммьюнити. Ну это ладно еще, но кто то объяснит зачем на фронте чистое ФП?
Чтобы не быть быдломакакой.
Если тебе React тяжело настраивать, то с Ангуляром вообще взвоешь.
А Vue годнота, рекомендую.
>>1046641
Вот асинхронность благодаря setTimeout мне понятна, интерпретатор как бы забирает функцию в некий отдельный контейнер и по прошествии таймера добавляет его в очередь (Event Loop). А вот с той функцией что на скрине (сообщение выше) я нихуя не понял как это происходит. Т.е внутри нее используется setTimeout или какая-то ещё конструкции которая приводит к такому результату (асинхронности) ?
Если я создаю простой div и ajax ом загружаю туда страницы, то да, все работает четко, но у меня не один фрейм, и каждый скрипт. который инициализируется потом отдельно для каждой страницы устраивает третью мировую с другими скриптами. Эм, ну я не знаю как еще объяснить. Короче. Мне нужно в iframe загрузить страницу ajax GET, что бы все стили и скрипты использовались из родителя, и самое главное, я мог использоваться во фреймах window.parent во всех проявлених.
https://www.youtube.com/watch?v=vB8cmdMu9iY
Говно.
1) Конпелится очень медлеено
2) Типов нет (прощай рефакторинг)
3) Даже макросы по сравнению с обычной кложурой сделали через жопу
4) Типов по прежнему нет
5) Купи больше памяти, потому что оно течет что пиздец
А ты видел redux? Там по сути чистое фп. Только без гарантий от компилятора.
Ок, а можешь показать пример сложного приложения на перечисленных тобой фреймворках? Если
> Фреймворки типа pux или halogen намного более приятные чем ебаная лапша уровня react+redux
правда, то почему же в продакшене по-прежнему react+redux? Пока что вижу только разглагольствование и болтовню.
А еще половина интернета работает на говноцмс на пхп, и что?
Вопрос не в том, почему все жрут говно, а в том, хочешь ли ты жрать говно, или ты готов терпеть меньшее комьюнити.
Некорректный пример, сайты на CMS создают как правило не программисты + CMS подходит только для типовых решений. Конструкторы вроде react+redux выбирают осознанно программисты. Вот есть у вас большой проект на purescript, как вы туда будете новичков вкатывать?
Выбор такого инструмента, подразумевает что ты нанимаешь тех, для кого писать код не только профессия, потому что ни одна пхп-макака не будет учить хаскель просто потому-что. А как ты будешь новичка учить реакт+редаксу? Понятное дело новичок нужен с головой. Если ты гугл, и у тебя есть только толпа индусов, то ты используешь го, который учится за неделю. Так что тут каждый решает сам для себя.
Что такое IO, не смог загуглить.
1) запускается функция asyncFoo и задается коллбек
2) далее начинает выполняться тело функции, т.е вычисления.
3) ниже в функции через setTimeout вызывается коллбек.
Но почему эта функция работает асинхронно и не блокирует выполнение последующих функций также как и все остальные функции? Ведь вызывая функцию, сначала начинают делаться эти "тяжелые вычисления" в цикле. Как так получается что они как будто игнорятся и выполняются потом? Ведь setTimeout находится на коллбеке, а не на этих вычислениях, почему они внезапно переносятся на "потом" ?
Цикл в нутри функции 'asyncFoo' происходит синхронно, оно только вызов колбека делает асинхронно.
Прочитай про ивент луп.
Ну я читал про Event Loop. Возможно я что-то упустил. Я понимаю что вызов коллбека делается асинхронно, и я об этом написал в конце предыдущего поста. Но почему тогда во время этих вычислений в цикле мы видим что сначала выводится второй console.log? Он ведь должен ждать пока сделаются вычисления.
Так... Пока я это писал - вроде бы понимание само пришло. Т.е вычисления всё также тормозят среду, потому что выполняются синхронно, а вот сам вывод делается асинхронно.
Он ждет вычисления, затем вызывается setTimeout, затем выводится "before" и после некоторой задержки выводится результат вычислений.
Есть пошаговая игра на клетчатом поле. На данный момент класс поля хранит список своих клеток (в виде двумерного массива, первый индекс это X, вторая Y) и список юнитов (у класса юнитов есть поля Х и Y).
Игровая механика требует возможность быстро находить как по клетке стоящего на ней юнита (например, жахнули метеоритом на несколько клеток, надо отнять хп у всех юнитов на этих клетках), так и по юниту находить клетку, на которой он стоит (например, если это минер, который срет под себя минами в начале хода).
Если вторая задача решается легко - взяли поля X и Y юнита, взяли Cells[X][Y]; то вторая сейчас требует перебора всего массива юнитов и сравнения параметров. Как оптимизировать этот момент?
У меня есть два варианта - превратить список юнитов в двумерный массив (что, по идее, сильно затруднит перебор всех юнитов, когда это нужно), либо хранить объект юнита в специальном поле клетки (а значит при каждом перемещении придется удалять этот параметр у старой и выставлять у новой). И тот и другой способ мне кажутся избыточными.
Гугли BSP и quadtree в частности.
мимоньюфаня
Добавьте в шапку серию книг "You don't know JS" (есть и на русском).
Про автокликеры знаю, но хотелось бы разобраться, как сделать подобное напрямую, а не эмулируя движение мыши.
Ебучий двощ 15 секунд грузится. Поясните че он там скрипты делают? Обезьяна майнер встроила чтоле сука?
ЖС - язык для пидоров, придуманный пидорами.
Чем оно отличается от testcafe?
нихуя ты, научишь?
function copy() {
var dst = arguments[0];
for (var i = 1; i < arguments.length; i++) {
var arg = arguments;
for (var key in arg) {
dst[key] = arg[key];
}
}
return dst;
}
Кароч ну вы в курсе да, эта штука объединяет объекты в один. Непонятка в строчке dst[key] = arg[key]; - то что эта залупа копирует значение я понимаю, а на выходе ж получается копируется пара ключ-значение. Каким хуем этот перебощик копирует сразу и ключ и значение, я смотрю в код блять и не вижу, объясните тупому плиз
var menu = {
width: 300,
height: 200,
title: "Menu"
};
for (var key in menu) {
// этот код будет вызван для каждого свойства объекта
// ..и выведет имя свойства и его значение
alert( "Ключ: " + key + " значение: " + menu[key] );
}
вижу что menu[key] это значение, то же самое что переборщик копирует dst[key] = arg[key];
Ключ блять каким хуем копируется?
Ты ебанутый?
> dst[key] = // в объект dst по ключу key положить
> arg[key]; // значение из объекта arg по ключу key
смотри в сторону selenium - он предоставляет апи для взаимодействия с контентом в браузере. А этот апи ты можешь дергать через nightwatch js, например, или через casper js. Или вообще не использовать JS для этого, а любой другой язык, хоть питон.
Хотя если тебе нужно что-то простое автоматизировать, то можно обойтись хром расширением, например.
А вообще, можно не упарываться этим говном, а напрямую слать данные на сервер. Например, сначала авторизируешься, получаешь куки, сохраняешь, и херачишь нужные действия с куками. Не нужно возиться с браузером вообще и пишется очень легко на любом языка, хоть на баше.
Только как понять когда стоит использовать ее функции, а когда можно обойтись нативными?
Твоё гугл-кунфу лучше моего.
<form method="POST" id='form' enctype="multipart/form-data">
<input name='file[]' id='file_field' type="file" multiple="true">
<p id='status'>Drag your files here or click in this area.</p>
</form>
document.getElementById('file_field').ondragover = function(){ document.getElementById('form').style.backgroundColor = 'gray'; }
document.getElementById('file_field').ondragend = function(){ document.getElementById('form').style.backgroundColor = 'white'; }
Ondrop, ondragover работают. Браузер Chrome.
Как получить куки? После отправки запроса мне должны выдать куку. В браузере firefox они появляются во вкладке "Куки" -> "Куки ответа". В ответе выдается сообщение об ошибке html. Когда всё ок там ничего нет.
У selenium есть ограничение. Он работает только в рамках одного сайта. Если бот должен ходить по разным сайтам, то selenium не подойдëт.
Лучше куки. Для остального есть MasterCard.
В node можно нормально разбивать код на несколько файлов с одними глобальными переменными?
Нет у него такого ограничения.
Ты можешь через апи открыть любой сайт и управлять контентом.
Спасибо за пример, мне стало понятнее и в итоге осилил нужные дествия.
Из экспортируемого модуля нет доступа к другим экспортированным модулям, а обращения к своим объектам через this или ещё какую поебень. А я хочу просто разбить файл на куски, так чтобы в основной вписать одну команду, запускающую код из другого файла и чтобы эту стрчку можно было без правок заменить на содержимое того файла.
Лично мне удобнее редактировать 5 файлов по 10 функций, чем один на 50, когда параллельно несколько функций надо править.
Решил начать с малого – запилить абстрактную фабрику конфигов, которая будет выдавать нужный конфиг по параметру.
Ну и где абстрактные классы, суки? Где интерфейсы?
Я не пойму как работает этот код, почему там spread? Оно что добавляет значения в новый массив?
https://jsfiddle.net/t7j1z51z/
ну он типа разворачивает твой объект в свойства, хз как объяснить, убери spread и сравни результаты
Уже разобрался оно разворачивает каждый объект изменяет свойство complete, и записывает в newItems.
Просто завтыкал что там return есть.
Пошел нахуй, жирный.
У примитивов нет методов, но они есть у объектов-оберток типа Number. Преобразование примитива в объект-обертку происходит автоматически.
Разделение окна. Чтобы один файл можно было смотреть в двух местах. В любом нормальном редакторе.
1) Нужно ли на первые линии файла писать #!/usr/bin/env node и #!-- coding: utf-8 --?
2) Потом прописывать require или определять функции?
2.1) Если сначала require, то где размещать функции? Почему Express-generator размещает их внизу?
Не то. Во-первых я долбоёб и люблю писать строки на весь экран а в половину вертикали ничего не помещается, во-вторых двух мест недостаточно.
Хочу в приложуху, в целом работающую по HTTP, впилить TCP-сокеты для чатрумов и прочих интерактивных хуйнюшек. Проблема в том, что комнат может быть много, и когда кто-то пишет в чат, нужно слать сообщение только тем клиентам, которые тоже подключены именно к этой комнате. Кроме того, для минимальной безопасности нужно проверять, что именно этот юзер совершил действие, то есть слать вместе с данными его токен.
Единственное решение которое я придумал - создать массив всех комнат rooms, при подключении юзера к серваку не делать ничего пока он не отправит roomID и userToken, после этого сверять данные (есть ли у него допуск к комнате, к примеру), и если все ок, то в массив rooms[roomID] пихать объект данного подключения. Далее, когда в комнате что-то происходит, в цикле рассылать всем подключениям из этого массива данные.
Не изобретаю ли я велосипед? Скорее всего, ситуация-то частая.
session, redis(+ mongoose), socketio documentations???
Ты пидр, кидай в песочницу, а не скрины.
mes += num убери в конце.
export const Location = {
create (data) {
Vue.http.post(`${BASE_URL}/locs/`, data).then(
response => {
console.log(response.data.id);
return response.data.id
},
error => {
console.log(error)
})
},
return перед Vue.http...
Столкнулся с проблемой. Передаю данные в модальное окно, окно открывается и там мне нужно получить от пользователя информацию и выплюнуть это в state vuex. Проблема в том, что после открытия модального окна код продолжает выполняться, а мне нужно, чтобы он продолжился после нажатия ОК в модальном окне.
//отправляю данные в модальное окно
this.$modal.show('loc-new-modal', {location: this.newloc_data, reason: 'new'})
//код дальше продолжает выполняться, а тут мне нужно дождаться нажатия ОК в форме
let a = this.$store.getters.locs[0].id
console.log(a);
Я уверен, что лучше минимизировать отправку данных с сервера и всю хуйню выполнять на стороне клиента. Но не будет ли размещение CDN выглядеть уебищно?
Наоборот! Если ссылаешься на популярные вещи на официальных ЦДНах — велика вероятность, что пользователи с ними уже встречался и закешировал. Ну или хотя бы грузиться быстрее будет из-за разных доменов, если у тебя ХТТП 1.1.
Смело вставляй ЦДНы.
Чтобы скрыться от Googla cтало невозможным
Вот пример с лернJS:
https://jsfiddle.net/5ee9tm8a/
Сама логика декоратора понятна, но в конкретном примере шел f через f. Чет нихера не пойму.
Помогите разобраться.
А то сразу с места в карьер - пишем require("http"), шо блять http, откуда оно его запрашивает, что за функция require, хуй его знает...
На язык, похуй можно и на англицком, только что бы для совсем даугичей.ПЛИЗКИ
>А то сразу с места в карьер - пишем require("http"), шо блять http, откуда оно его запрашивает, что за функция require, хуй его знает...
Это веб.
>>1049535
Изучаешь эту книжку (http://www.nodebeginner.ru/) от корки до корки. Потом зубришь, именно, сука, вызубриваешь статью от MDN (https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs). Когда напишешь свой первый сайт, по пути изучив SCSS и PUG, идешь пилить свою имиджборду. После этого у тебя должно хватить смелости самому выбрать себе книгу по Node.js, основываясь на усвоенных знаниях. Отсос хиккующих выблядков/просто неудачников типа PHP-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
Бобра тебе, анончик, и шоб хуй стоял.
This site allows you to read the first 19 pages of this book for free. The complete text is available as a DRM-free eBook (PDF, ePub and Kindle format). More info is available at the end of the free part.
Бля , жалко..
по ссылке перешел, где я еще могу откопать...
Ну я один хуй уже скачал полную версию на rutracker.
код в студию
если ты вызываешь this._foo.myMethod() и пишется, что не определено, то ты что-то проебал, но это легко находится. Можешь вывести, например, в консоли, что у тебя в this._foo находится - будет понятно, куда копать
Все просто. После первой строчки f уже равна function() { return func.apply(context, arguments); };
Дальше ты ей контекст меняешь на Петю.
Так не получится.
Простой вариант - вызывать функцию коллбек, когда пользователь закрывает окно.
var onModalClose = function() { ... };
Типа this.$modal.show('..', '..', onModalClose);
И вызывать onModalClose функцию в тот момент, когда окно было закрыто.
Консоль выводит: [Function: release]
При попытке вызова this._foo.release();
> TypeError: Cannot read property 'release' of undefined
И вот как с этой хуйней бороться не понимаю. Народ же как-то умудляется писать на ноде целые сайты с кучей SQLа, как избежать ебаного коллбэчного ада в этом сраном языке?! Пизда, нигде этого больше нет, в руби работа с БД синхронная, в PHP синхронная, в питоне и C# тоже, но язык поменять не могу, сук.
Поначалу меня даже вставила нода, но поняв весь цимес я понял что это ебаный пиздец
У тебя this._foo указывает на функцию, а не на инстанс объекта. this._foo() - вызовет эту функцию. Можешь еще в консоли вывести this._foo.toString(), чтобы понять, что за функция, если не догоняешь, откуда она взялась.
Хмм, спасибо, посмотрю в эту сторону. А к виду "res = sql.exercuteQuery(queryString)" это говно никак привести нельзя?
>в питоне синхронная
На дворе 2017 год, в питухоне уже даже в алхимию завезли aiopg в качестве энджена.
Можно привести к res = await sql.exercuteQuery(queryString) , если ты на ноде или твой браузер уже поддерживает awaitы.
Все равно, нужно для начала понять промисы.
Спасибо! А вообще что это за ебатека такая? Это я динозавр, что-то пропустивший в этой жизни, в то время как тру гуру пишут асинхронные авторизации или тут наркомания ноды, типо "ой, а давайте сделаем асинхронным ВСЁ"
Сидит один мужик, вся корпоративная хуйня запилена на дельфи лично им и он ее какбы поддерживает. Недавно начали переводить продажников на веб и этот старый хрыч встал комом в горле, свою хрень с DBF файлов из девяностых на MySQL переводить не хочет, упирается просто всеми лапами и нам приходится его упрашивать пилить API к его говну на получение и сохранение данных. Мужик умный и сообразительный, но не может поддержать разговор ни об одной технологии моложе чем шина ISA и турбо паскаль, хотели научить его отдавать нам данные POSTом, но в итоге уперлись в стену, и нам приходится возиться с его XMLом, который он отдает без всяких заголовков. Вобщем да, есть, но работать с такими не сахар. Человек уже почевает на лаврах своего опыта и не воспринимает новую информацию.
Я работал в инвестбанке, там таких было полно. И 50+, и даже 60+. Но они всю жизнь в финансах проработали.
Вот я потому и спрашивал, что одно дело учить по два React'a в день, когда тебе 20 лет и совсем другое, когда тебе за 50. А теперь в вебе такая скорость выхода новых технологий, что надо бежать из-за всех сил, чтобы остаться на месте.
щито я в 30 тока вкатился
саб няши, решил обмазаться UML диаграммами для проектирования ёба веб-сервисов на ноде, посоветуйте релейт like this: http://www.objectplayground.com/
еще заметил такой момент с вебом под ООП, таки что считать классом, если ты пилишь MVC проект?
например в модели, каждая таблица один класс, или же один супер класс со всеми абстракциями для всех таблиц?
или в хтмл-представлении, один виджет - один класс, и потом всё это объединять в страницу в другом классе, или же одна страница - один класс + класс с хтмл-шаблонами? есть ли тут какое-то золотое правило?
Главный вопрос заключается в том, учить ли новую хайпопарашу в надежде что через год-два она будет всем нужна или нет.
У меня на работе тех дир уже за 40, ездит по митапам, общается с молодыми разрабами, всегда в курсе всех новых технологий, активный, жизнерадостный. При всем этом женат, есть ребенок. Еще и марафоны временами бегает. Соображалка отлично работает.
>>1050014
>учить ли новую хайпопарашу
В них принципиально нового нет ничего, все в общем то следуют какой-нибудь парадигме из 80-00 годов. Что редакс тот же с реактом и компонентами, что всякие мвц рельсы.
но на модной хайпопараше нужно делать проекты, чтобы работодателю показать (например на работе эту хайпопарашу воткнуть некуда да и боишься все распидорасить или затянуть разработку), а это время и нервы. особенно учитывая, что тебе эта хайпопараша не интересна и ты в свободное время лучше бы поучил какой-нить хаскель
>охуительная идея сделать работу с файловой системой и базой данных на коллбэках и промисах?
Чтобы чтение файла или запрос с 2-3 джойнами не вешал все приложение к хуям собачьим.
Твой тех дир пишет код? Одно дело быть в курсе тенденций, и совершенно другое знать какие костыли и куда вкручивать чтобы модная молодежная свистоперделка таки сделала то, что тебе нужно.
>Твой тех дир пишет код?
Да. Сейчас на js под голосовое управление всякой фигней, до этого на obj под ios пилил и ревьюил.
>>1049869
в ноде таки вроде как всё асинхронно
соус https://medium.com/the-node-js-collection/what-you-should-know-to-really-understand-the-node-js-event-loop-and-its-metrics-c4907b19da4c
Я уже понял, но все равно спасибо
Изначально вся движуха для меня - была мне больше по фану.
Но я все больше и больше понимаю что моя основная работа (инф. безопасность) с ее миллионами бумажек мне остоебенила наглухо просто. Тошнит.
Пока что я не заработал ни копейки с помощью JS. Но и не угас к теме.
Просто дайте мне стимул, напишите мне что все я делаю не зря, и что со временем я смогу заработать своими новыми знаниями.
Короче, алмазный вопрос - какой доход у вас?
Я стеснительный нищееб, поэтому 150, без учета левака.
700k/в месяц remote front-end
Вероятно это нормально, когда в каждой второй либе документация пиздит. И после пары десятков фейспалмов, от того что нихуя не работает, а примеры вообще тут же вылетают. после нахождения костылей в недрах issues на гитхабе, хочется спросить, какого хуя блять?
Мне нихуя непонятно каким раком у этого говна 30к лайков на жидхабе, а оно блять такое убогое.
ты што ботов никогда не писал?
прокси стоят по 0.3 бакса, если брать оптом 30к сразу может и дешевле получится. а если собрать компанию друганов которым нужна раскрутка и всем скинуться на ботнет - вообще бесплатно почти
Пацаны помогите. Есть один реакт компонент, на нем стоит обработчик: на mouseover выставляется state.isHovered = true, на mouseout - false. И короче в зависимости от этого поля состояния должен рендерится один элемент компонента. Вроде все ок, рендерится, но блять какого хуя при наведении на этот элемент state.isHovered начинает прыгать туда-сюда и он соответственно мерцает! Такое ощущение что на этом элементе не срабатывает событие mouseover хотя он сука лежит внутри компонента.
>Такое ощущение что на этом элементе не срабатывает событие mouseover хотя он сука лежит внутри компонента.
upd: проверил, так и есть. Теперь вообще нихуя не понятно.
Используй mouseenter и mouseleave. Когда с нужного элемента переходишь на его дочерний, то mouseout тоже срабатывает на нужном.
>кому это надо
для большинства кач-во/популярность проекта соответствует кол-ву звезд на гитхабе. надо авторам чтобы срубать баблос на консалтинге
Ох уж этот полный тайн и загадок js. Спасибо, анон, заработало.
Последнюю неделю подтягивал знания js. Сегодня вот накатила какая то депрессуха. Смотрю на разбор архитектуры приложения по курсе и думаю что не понимаю. Т.е. вроде все понятно, но понимаю что сам в своем приложении не накачу такую же четкую архитектуру, а напишу говнокод.
Как бороться с низкой самооценкой?
Как вы поняли, что вы миддл дев? Вроде и знаю углубленные штуки типа замыканий, прототипов, функций-конструкторов, даже немного execution stack и как работают скоупы, но ссусь идти на фронта (умею верстать адаптивно).
С не менее божественным синтаксисом запросов RQL.
Школьник, нереляционные базы появились намного раньше SQL. Например, документно-ориентированные вроде Mongo.
тут не /hi, пердун
1. Надо/нормально ли передавать статичные данные (например, список фильтров или другой не меняющейся хуйни) в виде пропсов, а не хард-кодить в компоненте?
2. Нормально ли что mapStateToProps получается каким-то жирным, где дохуя всего извлекается из стейта + кое-где применяются селекторы? Просто в попенсурсных проектах все лаконичнее.
Недавно общался с мужиком. Ему 54. Ебашит на JS (реакт и нода), ему вполне гуд. А у меня он вызывает чувство уважения.
Пришло предложение от конторы, они используют одновременно Angular и React. Что это за хуйня? Зачем совмещают эти две технологии?
тогда наверн ангуляр с фронтом на реакте
хуй знает какой смысл в этом когда есть редукс/флукс, но думаю тебя ждут интересные приключения
ДИСКАЧ
<!-- SCM Music Player http://scmplayer.co -->
<script type="text/javascript" src="http://scmplayer.co/script.js"
data-config="{'skin':'skins/simpleBlue/skin.css','volume':71,'autoplay':false,'shuffle':false,'repeat':1,'placement':'top','showplaylist':false,'playlist':[{'title':'Заголовок 1','url':'Адрес трека 1'},{'title':'Заголовок 2','url':'Адрес трека 2'},{'title':'Заголовок 3','url':'Адрес трека 3'}]}" ></script>
<!-- SCM Music Player script end -->
Сама библиотека - http://scmplayer.co/script.js
Задача состоит в том, чтобы сделать анкор, который будет переключать проигрывание трека с произвольного на определенный. Единственное что я могу сделать - это изменять код подключения так, чтобы нужный трек оказывался первым, при чем делаться это будет просто заменой всего кода между див-ами на тот, что прийдет с сервера через jquery, хотя чисто логически понимаю что это можно реализовать парой строчек
Собственно поэтому я Ноду и забросил.
Очередная маня-идея по стилю программирования от молодых бодро начинающих вчерашних школьников сегодня программеров, на этот раз впихнуть функциональное программирование в JavaScript.
Чисто для интереса - объясните мне преимущество Express? Все то же можно делать и без него и разницы особой нет. По крайней мере в тех примерах, что на виду. Нахуя тогда этот Express нужен, как собаке пятая нога?
>умный и сообразительный
Вот это вот. Зачем ему под себя подкоп делать?
Это как пришел идиот, всё автоматизировал, всех включая идиота уволили.
> нереляционные базы появились намного раньше SQL.
>Например, документно-ориентированные вроде Mongo
Монго появилась раньше SQL? Да еще намного?
Вот так узнаёшь что-то новое на Дваче
ничего подобного. примитивы - это не объекты, даже если к их методам можно обращаться через точку, прост в этот момент на лету создается объект-враппер(типа String, Number) и уже на нем вызываются методы.
React Native
Подробности:
https://jsfiddle.net/k7a8y2bd/
Не хочет теряться контекст:(
params = Params({user: {email: 'bob@home', xyz: 1, addresses: [{street: 'my street', buildingNumber: 1}]}).require('user').permit('email', {'addresses': ['street', 'buildingNUmber']})
assert(params.user.email)
assert.not(params.user.xyz)
т.е. атрибуты указаные в require и permit пропускаются, что не указано, не пропускается. аттрибуты могут быть строками, объектами или массивами.
есть что нибудь такое?
В дропдауне есть несколько текстовых строк, содержащих цифры (вида: "текстЧИСЛОтекст"). Необходимо вернуть числовое значение выбранной строчке. parseInt и parseFloat не подходят, так как они сходу натыкаются на нечисло и присуждают строке значение NaN.
Как можно достать именно число из строчки? Спасибо заранее.
Попробуй разбить строку методом split на посимвольный массив, и проверить каждый элемент на число. А потом отсуммируй.
что -то не получается ничего:
<script>
'eweqwrfs 400 eewaa'.match(/\d+/) [0];
</script>
редактор ничего не выдает при исполнении этой строки.
строка выглядит вот так:
'линолеум 100 ₽ за м²'
т.е. тут есть пробелы и степень "2", которая не должная "учитываться"
ты умрешь гуманитарием. каким хреном 'редактор' куда-то должен что-то 'выдать' если нет ни одной команды указывающей что надо сделать с результатом?
двач, как сделать чтобы, когда вводишь количество треугольников, оно столько раз запрашивало переменные, и столько раз давала ответ (площадь теугольников?
где блять ошибка. не могу понять.
>хостить собственные изображения в другом сервисе, а не на собственном сервере.
Это не считается за костыль? Если сайт загружает изображения для отображения не с сервера, а с чужого сервиса, то как на меня посмотрят умные дяди?
Ну явно не хуже, чем на тебя мы сейчас смотрим. Погугли cdn например.
спасибо за помощь
Почитай чему равен this внутри обработчика события.
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/this
Он равен элементу на котором обработчик сработал.
То есть в принципе если метод вызывается вообще без контекста - ему принудительно передастся this получается?
п.с.
А так, если бы это был не обработчик, а допустим вызов из рандомной функции - то контекст потерялся бы?
Ты же ссылаешься на функцию. Так что js идёт в твою функцию и оттуда и приваивает this, всё логично.
В том примере в функцию alarm которая вызывает alert - можно передать разные значения.
https://jsfiddle.net/scn1c29k/
Но если тем же способом менять бекграунд например - то шишь.
ну все тогда я назначаю тебя тимлидом майлру с зп 300к в сек. приезжай завтра на лубянку в офис, усманов хочет с тобой побазарить
Если конкрентней, меня интересует требование знать много разных штук, а не ЗП. Как джун может знать столько всего? Знать хорошо? Если знает плохо, то нах просить, а если хорошо - то разве он не мид уже тогда? Я думал, для джуна HTML+CSS+JS+jQuerry достаточно. Или я хочу халявы?
Мимонуб
Есть мнение что много чего из этих требований пишут кадровички, содрав с других резуме.
Гдето мож и такие требования к джуну. А гдето может совсем иные. Не ссы пробовать.
Да, HTML+CSS+JS+jQuerry это не джун, это курсы в интернете посмотрели уже вошёл вайти. Без знания хоть каких-то фреймворков ты нафиг никому не нужен. Ну и без хотя бы базового понимания vcs тебя только в какую шаражку возьмут, 2017 на дворе.
Я просто уточнил.
Какие-либо вычисления данных, подготовка их к передаче в контроллер. Или не канон?
можно такое реализовать?
1)мне нужно переходить на каждую статью(их 1975) из алфавитного списка википедии(пик 1, 2)
2)из каждой статьи взять данные(именно те которые на пике 3)
3)и забросить их в эксель(в таком виде как на пике 4)
CSS селекторы знаешь? С регекспами знаком?
Попробуй casperjs.org. Ну или тупо делаешь список ссылок на страницы (с помощью document.querySelectorAll получаешь массив нод, в цикле вытаскиваешь аттрибут href), дергаешь их wget'ом, парсишь файлы регулярками.
Самое сложное будет вытащить непосредственно данные. Ибо каждая страница может быть свёрстана по-своему, у древних математиков не указан год рождения, а вместо этого написано "приблизительно в 5 веке до н.э.", и так далее.
За 2000 рублей сделаю.
let airport_list = $.map(data.airports, (value, i) => $.extend(value, {id: i}));
Хочу переписать его на нативном JS, дабы повысить производительность и скорость исполнения кода. Какие есть инструменты и функции в JS, чтобы продублировать этот функционал?
_stream_writable.js:263
var state = this._writableState;
^
TypeError: Cannot read property '_writableState' of undefined
at Writable.write (_stream_writable.js:263:19)
at Socket.write (net.js:695:40)
at dfs (b:\nwp\node\fstreedump\fstreedump.js:30:2)
at Object.<anonymous> (b:\nwp\node\fstreedump\fstreedump.js:50:1)
at Module._compile (module.js:573:30)
at Object.Module._extensions..js (module.js:584:10)
at Module.load (module.js:507:32)
at tryModuleLoad (module.js:470:12)
at Function.Module._load (module.js:462:3)
at Function.Module.runMain (module.js:609:10)
at startup (bootstrap_node.js:158:16)
at bootstrap_node.js:598:3
Напиши телегу свою. Я чуть позже напишу
Ваш JS взвешен и найден легким. Дни его сочтены. TypeScript уже взлетел, Dart на подходе, а в недалеком будущем появится доступ к DOM из WebAssembly - и все. Конец JS. Туда ему и дорога. Объектнонедоориентированное наркоманское уебище.
>TypeScript взлетел
Скайп и Виндус мобайл тоже взлетели. А ещё спиннеры!
>Dart на подходе
На отходе скорее
Перечислил сахарок, компилируемый в JS, и хоронит JS. Вот быдло!
так typescript это и есть javascript. там даже вроде типы в жаваскрипте планируются.
если бы майкрософт не взялся за жс, так бы наверное и писали сейчас на отсталом говне мамонта.
haskell
бамп
@sashaou напиши
async/await OR Rx.Observable.bindNodeCallback
Реквестирую ответы на свой ответ!
function bittexGrab () {
request({
headers: {}, uri: "https://bittrex.com/api/v1.1/public/getmarketsummary?market=btc-"+Currency[id], method: 'GET', gzip: true
}, function (err, res, body) {
if (err) throw err;
var Content = JSON.parse(body);
for (var i in Content.result){
var Exchange="Bittrex";
var MarketName = Currency[id]+"-BTC";
var Last = Content.result.Last;
var BaseVolume = Content.result.BaseVolume;
var Buy = Content.result.Bid;
var Ask = Content.result.Ask;
var date = new Date();
var hour = date.getHours();
hour = (hour < 10 ? "0" : "") + hour;
var min = date.getMinutes();
min = (min < 10 ? "0" : "") + min;
var sec = date.getSeconds();
sec = (sec < 10 ? "0" : "") + sec;
var year = date.getFullYear();
var month = date.getMonth() + 1;
month = (month < 10 ? "0" : "") + month;
var day = date.getDate();
day = (day < 10 ? "0" : "") + day;
fs.appendFile('trade.csv', [Exchange,MarketName,BaseVolume, Last, Buy, Ask, year+"."+month+"."+day,hour+":"+min+":"+sec].join(';')+"\n", function (err) {
if (err) throw err;
console.log('Saved!');})
}
})
}}
Господа, какого хуя передаются значения только последней валютной пары (adx), я же делаю запись внутри цикла?
function bittexGrab () {
request({
headers: {}, uri: "https://bittrex.com/api/v1.1/public/getmarketsummary?market=btc-"+Currency[id], method: 'GET', gzip: true
}, function (err, res, body) {
if (err) throw err;
var Content = JSON.parse(body);
for (var i in Content.result){
var Exchange="Bittrex";
var MarketName = Currency[id]+"-BTC";
var Last = Content.result.Last;
var BaseVolume = Content.result.BaseVolume;
var Buy = Content.result.Bid;
var Ask = Content.result.Ask;
var date = new Date();
var hour = date.getHours();
hour = (hour < 10 ? "0" : "") + hour;
var min = date.getMinutes();
min = (min < 10 ? "0" : "") + min;
var sec = date.getSeconds();
sec = (sec < 10 ? "0" : "") + sec;
var year = date.getFullYear();
var month = date.getMonth() + 1;
month = (month < 10 ? "0" : "") + month;
var day = date.getDate();
day = (day < 10 ? "0" : "") + day;
fs.appendFile('trade.csv', [Exchange,MarketName,BaseVolume, Last, Buy, Ask, year+"."+month+"."+day,hour+":"+min+":"+sec].join(';')+"\n", function (err) {
if (err) throw err;
console.log('Saved!');})
}
})
}}
Господа, какого хуя передаются значения только последней валютной пары (adx), я же делаю запись внутри цикла?
var Currency= ["GNO", "GNT", "ADX"];
Документация.
>Скайп и Виндус мобайл тоже взлетели
Лол, назови хоть одну современную(2010>) технологию, которой занимались майки и она сгнила? Тайпскрипт это будущее, так как за него серьёзно брался разраб C#.
Потому что байт-код весил бы больше чем скрипт JS, а интернеты тогда были медленными, штале?
Я знаю что скоро будет ВебАссемблер, но блять, ПОЧЕМУ НЕ 20 лет назад.?
Ведь даже если его и выкатят нормально через год - всё равно все кроме идейных будут стараться поддерживать старые браузеры ещё лет 15.
У меня пиздец горит. Всех этих проблем с поддержкой браузером новых костылей стандарта не было бы, если бы JS компилился в байт-код на сервере.
В ассеблерных командах же обычно нечего править/добавлять?
20 лет назад задачи под веб были уровня "скрыть вот этот блок при клике на кнопку". Никто не собирался писать полноценные приложения.
Спасибо, анончик!
mail.ru
Живу далеко за МКАДом, здесь мне за модный стек реакт+редакс платят 30к, это при том что я в компании уже год и два месяца.
Заебало нищенствовать.
Гиблая идея. Можешь попробовать, конечно, но я бы на твоём месте сходил на UpWork если тебя прям так сильно интересует Мурика/Гейропка. Там Реакт по количеству заказов обгоняет разве что ВордПресс. И, кстати, частенько компании хотят нанять React-кодера на долго, а не на разик-другой.
А почему гиблая? Мне в офисе норм, но переехать в тот же ДС пока не могу - денег на переезд нет.
>Чтобы чтение файла или запрос с 2-3 джойнами не вешал все приложение к хуям собачьим.
Мне кажется или если такие тривиальные серверные операции, которые разработчики привыкли выполнять синхронно (в контексте конкретного запроса конкретного клиента) не способны выполняться таким образом, или гипотетически способны, но вешая при этом к хуям собачим все приложение вообще и никто не удосужился сделать даже видимость синхронности то это значит что в качестве backend инструмента этот язык - говно как и сама идея асинхронного языка для сервера?
Вот просто пример, допустим, мне на сервер поступил запрос и мне надо дать на него какой-то ответ. На PHP я могу сделать так (названия функций на node абстрактны, потому что правильного названия я не знаю и не хочу знать):
$result = con->query("blah");
$row = $result->fetch_assoc();
return($row);
Все просто, логично и правильно, да еще и лаконично, а тоже самое на ноде будет вот так:
mysql.executeQuery('blah', function (result, err) {
result.getRow(function (row, err) {
response.write(row);
});
});
И это только один запрос, а если их будет пять? А их может быть пять если это не одностраничник дяди Васи, и что делать?
Хз, очень разочарован, синтаксис нравится, запилили бы многопоточность чтобы пришел мне реквест, я вынес его в отдельный поток и потом, обработав вернул бы ответ, вешая конкретно этот поток на столько на сколько это нужно для обработки запроса цены бы языку не было, а пока мое мнение говным говно, тупой порт языка на бэк без так нужного при этом пересмотра его философии. Для простеньких сервисов, для чего-то большого писать на нем себе дороже, можно конечно, но это будет как ходить в кроссовках с канцелярскими кнопками внутри, где каждая новая операция ввода - вывода это еще одна кнопка острием вверх.
async библиотечка решает твою проблему, а по поводу асинхронности, оно нужно для хайлода, в tornado/twisted воркфлоу сначала тоже диковатый после джанги а потом норм. Если ты запилишь мало-мальски посещаемую борду на пыхе в частности так как ты описал, то валяться она будет большую часть времени
Каждый имеет право запилить свою рулетку с гейшлюхами.
Ну если серьезно - вообще-то альтернативы Ноду - дело неплохое было бы... Это конечно не относится к данной клоунаде.
Не качайте - это троян!
Внедрись и разрушь. Приватбанк должен быть уничтожен.
з/п $400, куда там падать дальше - до 100$?
кармак разрешил статич типы
https://www.youtube.com/watch?v=1PhArSujR_A
надеюсь в ес8-9 завезут
MVC rаждый понимает по-своему, поэтому как напишешь так и будет. А какон реализовать невозможно.
Сдается мне, у Википедии есть API, причем биографии людей там представлены в формате vcard, где есть и даты рождения- смерти, и имена на разных языках и т.д.
>$.extend(value, {id: i})
Млять, а просто написать "value.id=i" - не?
Обязательно jQuery всюду впихивать?
У тебя this===undefined
Хайль Гейц
в гугл хром
Уф, я чет остыл немного и понял что был неправ наезжая на асинхронность как таковую, если она дает плюс к производительности пусть будет так, да и бугурт у меня же не от того как оно выполняется, а от того как оно записывается.
Просто я вижу как это можно было бы сделать чтобы программист не ебался с не нужными ему коллбэками.
Придумал вообще клевую фишку которая остудила бы много пуканов в мире. Суть такова (названия функций опять же абстрактны):
Если записано так:
function qwe()
{
data = File.ReadAllLines('qwe', callback(result) {
console.log(data);
})
//do something or nothing
}
то код выполняется так как сейчас.
Если же написано так:
function qwe()
{
data = File.ReadAllLines('qwe');
console.log(data);
//do something or nothing
}
то все то, что идет после строчки data = File.ReadAllLines('qwe'); оборачивается в так нужный js-у коллбэк, но не в коде, а где-то глубоко, очень глубоко в недрах движка, чтобы программист всего этого не видел. Удобная запись без всякой ебли с промисами и оборачивания функций руками.
Тебе, мудаку, уже 10 раз сказали, осиль промизы и async/await.
new Array(1e6).join('*');
Что такое "1e6"? Регулярно встречается оно "1e9". Это просто 486 и 489 соответственно? Или есть какой-то сокральный смысл? Почему, скажем, не "1b2"?
Вот так ты станешь сеньором-помидором без систематического образования и однажды внезапно обосрешься на глазах у публики.
Систематическое это какое? Сам от себя учусь, но оФФициального проФФильного образования нет. На тысячи км от моего зажопинска только один институт с одним программистским факультетом, и там забито блатными. Остальным доступны только злоебучие "информатики в экономике" и иже с ними на пару с самообразованием
Если можешь дать пару советов по прокачиванию прогр-скилла - выслушаю
https://www.youtube.com/watch?v=8OS8sPeYUaU
По программе учись, не читая бложики и спрашивая советы на двачах.
По собственной программе? Так и делаю, и все равно получаюсь сеньором-помидором.
Современное качество образования в РФ любом случае оставляет желать лучшего. Так что не ебите парню мозг, вышка только для корки нужна, особенно в его случае. Вот блять не рассказали бы ему в средневузе о e-нотации.
По какой собственной? Как ты можешь составить программу, если ты ничего не знаешь глубоко? Попадешь в хорошее место и твоя задница будет полыхать от чванства сеньоров с образованием. Ты же не умница Хантинг.
Спиздить чужую программу и заниматься по ней. Но не забывая, конечно, о хлебе насущном. Последнее все таки первично.
Не могу. У меня две вышки местного розлива. :3. Ну по крайней мере мне не надо лезть в интернеты, чтобы вычислить предел по правилам Лопиталя, или я не потеряю много времени на понимание такой статьи https://people.freebsd.org/~lstewart/articles/cpumemory.pdf
>Так пойдет?
Да, спасибо.
>зачем это нужно
Зашорткатить последний элемент, ведь [-1] не завезли, а перегрузить операторы вроде нельзя
Мне - нет. Но обсуждаемый субъект видимо еще очень вьюноша. Может быть попадет в хорошее место на западе. Где будет тушеваться перед инженерами закончившими Калтех или Йель. А вдруг?
Да прочитаешь пару книжек таненбаума, пару фундаментальных вещей и норм. Чтобы пить смузи много мозгов не надо.
>Придумал вообще клевую фишку
data = File.ReadAllLines('qwe');
console.log(data);
А что распечатает вторая строка?
Если это синхронный вызов - тогда понятно но будет стоп, пока ReadAllLines не отработает, а если вызов асинхронный, то от ReadAllLines сразу перейдет к console.log - а data еще не прочитана!
Если ты имел в виду что-то другое, то пояни подробнее.
А вот тут проблема. Помню, в моем говновузе преподавали паттерны. И предлагали читать "Банду четырех". Позже я пробовал. Так вот проблема в том, что мало того, что язык там примерзкий, так еще и все примеры С++. Который нам не давали. Теперь вопрос: изучать ли язык, который не собираюсь использовать, для понимания книжки, которая может не раз пригодиться
"Банду четырех" кусок говна. Не читай.
Кресты не тот язык, который нужно изучать чтобы стать лучше, потому что кресты это набор костылей тянущихся из неудачных решений 40 летней давности.
Учи сразу раст.
Да блин, я вообще верстальщик. Но из-за работодателей вынужден node.js изучать. Ибо нужно, чтобы я SASS и прочее юзал. Верстаю один. Натягиваю один. Но без sass-ов и стилусов прям обосраться, как нельзя. А тут еще раст...
А что myarray[myarray.length-1] - трудная конструкция, по сравнению с написанием и впиливанием нестандартной фичи?
Другие без офиц. опыта сложно найти. Вот, кстати, одно из более вменяемых по сравнению с остальными заданий
http://csssr.ru/jobs/pixel-perfectionist
Там еще ссылка на обязательно используемый помощник. Так туда видимо запихали все модули, которые найти смогли. По 5 минут компилируется. А без заебок предлагаемый макет верстается часа за 4. Но без заебок нельзя
Нет, но когда много раз c конца обращаешься заёбывает. Вот в питоне заебца сделоли, немногое, что мне в нём нравится
Эти требования, я так понимаю, с их рабочим процессом связаны, а не со сферическими паттернами в вакууме.
Ну а совместимости кода подумал?
Ради нее идут на жертвы. А так-то да - многое можно было бы впиливать.
Проблемы совместимости решаются. Например, можно в начало файла ебашить версию, как DOCTYPE HTML. Это если не найдётся пути сделать не сломав старое.
Я имею в виду, что куча нестандартных самописных наворотов создаст проблемы непереносимости и проблем поддержки кода.
Это просто вопрос общего стиля программирования человека.
Так в том и суть, что стандарт далёк от совершенства. А я пишу говноскрипты только для себя и переносимость абсолютно не важна.
Ок, но при этом ты приучиваешь себя работать на нестандартных либах - то есть будут проблемы когда надо быдет ваять что-то для других без этого сахара.
Да и чтобы выложить на тот же githib если захочется.
Адблок ебанутый и банит широкий список классов. Тот кто верстал страницу мог просто случайно заюзать что-то из банлиста.
перекат >>1052010 (OP)
перекат >>1052010 (OP)
перекат >>1052010 (OP)
перекат >>1052010 (OP)
Я не планирую работать жс-макакой. На свой гитхаб я могу выложить что угодно, кому не нравится - могут не пользоваться.
С выключенным Адблоком то же самое, что впрочем и так понятно было.
typescript не предлагать
Анон, есть вопрос. Пишу на node.js. Есть ли разница для работодателей, какой стандарт языка ты используешь?
Обычно это не указывают в вакансиях, но мб это само собой подразумевается?
В стране непрекращающийся кризис.
Это копия, сохраненная 20 сентября 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.