• Как принимать необработанные данные?

    Robur
    @Robur
    Знаю больше чем это необходимо
    вы можете использовать Buffer.toString() с нужной кодировкой чтобы получить строку.
    например Buffer.toString('hex') выдаст вам '0117800196...', каждые две цифры - один байт.
    или другие кодировки попробуйте, если так не устраивает.
    но вообще работать лучше с данными в их первоначальном виде - с числами. вместо '\x01' вы берете первый байт и получаете 1. вместо "\x0386400604920000" вы берете байты попорядку и получаете 3 86 40 06 04 и тд.
    Это куда удобнее, чем пытаться разбирать строку, которая случайно получилась из этих данных.
    Если хотите прямо вот 1в1 как в nginx, то найдите как оно там форматируется и напишите такое же. Вопрос зачем конечно остается.
    Ответ написан
  • Как стать Software Engineer?

    Robur
    @Robur
    Знаю больше чем это необходимо
    нет особых сложностей, можно стать c++ software engineer всего за 21 день.

    5ef418763e1bd912829765.jpeg
    Ответ написан
    Комментировать
  • Как сделать кликабельный canvas?

    Robur
    @Robur
    Знаю больше чем это необходимо
    canvas.addEventListener('click', function() { })

    Естественно что мышка про круги которые вы нарисовали на вашем канвасе ничего не знает, или вычисляете самостоятельно, или используете svg где круг это отдельный элемент и на него можно повешать свой click обработчик
    Ответ написан
    8 комментариев
  • Можно ли укоротить код с сохранением смысла?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Можно.
    Ответ написан
    Комментировать
  • Как сессии работают под капотом?

    Robur
    @Robur
    Знаю больше чем это необходимо
    там всего 4 файла по 100-150 строк каждый (половина jsdoc). Зачем вам руководство если вы можете просто заглянуть и посмотреть? Комментарии есть, принцип очень простой.
    https://github.com/expressjs/session/tree/master/s...
    Ответ написан
    3 комментария
  • Как автоматически сгенерировать тесты для всех vue компонентов?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Посмотрите в сторону тестирования со снепшотами. Вроде jest умеет, не знаю, насколько это работает с vue.

    А вообще:
    Не проверять же полностью все приложение после каждой минимальной правки.

    Если у вас приложение написано грамотно, то минимальная правка в компоненте должна затрагивать только логику этого компонента (если вы не поменяли его внешнее api - тогда это затронет и другие, но шанс что это сломает уже их логику - минимален).
    Поэтому да - все не проверять, после каждой правки вам достаточно проверить только сам этот компонент. Если у вас компоненты не на 1000 строк, то скорее всего вы и так все проверите в процессе разработки.

    Если более формально - то есть storybook, где вы вообще девелопите каждый компонент по отдельности, изолированно и проверяете его по сути в процессе девелопмента. Он позволяет явно описать разные стейты компонента и быстро их проверить.

    Вообще важность тестирования для UI компонентов крайне преувеличена, имхо. Большая часть упавших тестов в юай - не потому что ими пойман какой-то баг, а потому что поменялась логика и надо править тесты. Это как раз тот случай когда тесты работают в минус и в юай его доля крайне велика.
    Ответ написан
    3 комментария
  • Хороша ли связка React,Redux + Meteor?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Для практики лучше такое не делать - много гемороя, но если сильно хочется -
    гугл по запросу "redux+meteor" выдает кучу ссылок на попытки других людей, код, всякие мидлвары есть, обсуждения и так далее. Не знаю что вы не нашли, может у вас гугл другой.

    Кроме *Express*, слышал что плохо с оптимизацией.

    Слухами земля полнится, если вы так выбирате технологии, то интерес к redux+meteor неудивителен.
    До того момента когда для вас будет иметь значение оптимизация в Express вы вряд ли дойдете ближайшие пару-тройку лет. Берите и все.
    Ответ написан
  • Доступ с множественных инстансов к методу?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Сохраняете состояние в run и при вызове проверяете.
    Например так:

    async run() {
         if (this.isRunning) return 'in process'
         this.isRunning = true
         await doTask()
         this.isRunning = false
    }


    Можно в isRunning использовать промис и возвращать его, тогда все кто вызывает run() смогут дождаться результата выполнения задачи.
    в конце isRunning или обнулять, если run() вызывается много раз, или так оставить, тогда все последующие вызовы будут возвращать тот же результат даже после того как запрос уже давно выполнен.
    Ответ написан
  • Как делать «Drag and Drop»?

    Robur
    @Robur
    Знаю больше чем это необходимо
    После чего выгружу и передам на фриланс программистам они смогут реализовать «Drag and Drop» на сайте ?

    Если найдете тех кто сможет такое сделать - то они смогут. ничего фантастического нет.

    Насчет стоимости - хз. Зависит еще от того насколько хороший или корявый код получится при выгрузке из webflow - я с ним не знаком.

    сложно ли научится реализовывать подобные элементы на сайте если ты не программист ?


    Если получится прикрутить какой-то готовый скрипт - то не сильно сложно. Если не получится - то придется стать программистом, а сложно вам будет или нет - хз.
    Ответ написан
  • Как правильно сделать чат?

    Robur
    @Robur
    Знаю больше чем это необходимо
    1. Возьмите react/vue
    2. прикрутите виртуальный скроллинг (это когда у вас 100 сообщений, но рисуются только 3 (или сколько влезет в окошко) которые видимые). Если будет 10000 сообщений - скорость будет такая же, так как рисуются все равно так же мало.
    Ответ написан
    Комментировать
  • Сколько стоит разработка?

    Robur
    @Robur
    Знаю больше чем это необходимо
    но хотя бы примерно сориентироваться было бы не плохо. Так же был бы рад услышать вообще общие рекомендации к тому как считать стоимость проектов?


    Если вы будете делать его этот месяц на полный рабочий день - то примерно и ориентируйтесь на то сколько вы считаете адекватным за месяц своей работы. Сколько вы хотите за месяц получить и считаете эту цифру адекватной?

    Общие рекомендации одни и те же - берете время которое нужно затратить и в цену ставите стоимость этого времени. Эту стоимость вам никто не скажет, потому что это то что только вы знаете (должны знать). Может быть где угодно от 20т до 200т за месяц работы. Основная ваша задача - узнать стоимость своего времени, тут самый простой способ - повышать и повышать цену пока не поймете что дальше уже никто вам столько не платит. Проверить можно только на практике, начните с любой цифры которая вам подходит и вперед, на 5-м проекте будете уже знать.
    Размышления заранее, и советы из интернета это просто эмоциональный онанизм, чтобы себя успокоить, для поиска этой цифры совершенно бесполезны.
    Ответ написан
    1 комментарий
  • Canvas 3d объекты?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Там скорее всего просто набор заранее отрендеренных картинок.
    А для настоящего 3д погуглите webgl
    Ответ написан
    Комментировать
  • Как правильно оценивать работу на верстку?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Как правильно оценивать работу на верстку?

    максимальная цифра за которую вы еще можете получать заказы.
    Если вам за 15к заказы дают а за 20к - не дают значит ваша оценка - 15к.
    Если вам за 15к дают, за 20к дают, за 60к дают, а за 65к уже нет - ваша оценка - 60к.

    Если у вас потолок 15к и он вас не устраивает то надо искать и пробовать, что сделать чтобы стоить больше. И это не только умение верстать - как вы ищете заказчиков, какая область, как общаетесь, как ведете проект, как фильтруете хороших от плохих, и много чего еще имеет большое значение.

    Для начала - выясните эту свою цифру. А то может зря вы там в депрессии сидите, надо просто цену поднять.
    Ответ написан
    Комментировать
  • Работа web-студии с конструктором - реально?

    Robur
    @Robur
    Знаю больше чем это необходимо
    вот это видео посмотрите: https://www.youtube.com/watch?v=nnoNoBKEz4s
    там чувак подобными вопросами задавался и поставил разработку на конвейер. Я давно смотрел, но насколько помню - как раз говорит о том что можно сделать на конструкторе, что нет, как выбирать проекты которые подойдут и все такое.
    Ответ написан
    Комментировать
  • Как понять конструкцию Function.prototype.call.bind(unboundSlice)?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Все это затеяно чтобы сократить строку slice.call(arguments);

    основное:
    тут происходит вызов функции call, в которой в качестве this будет slice.
    Соответственно чтобы привязать slice (который будет в this) к call, можно сделать

    const boundCall = slice.call.bind(slice);
    // теперь можно так:
    boundCall(arguments) //то же самое что slice.call(arguments)


    дальше уже несущественные вещи в которых вы запутались, slice.call - это Function.prototype.call, можно заменить одно на другое (но не обязательно):
    const boundCall = Function.prototype.call.bind(slice);
    // теперь можно так:
    boundCall(arguments) //то же самое что slice.call(arguments)


    Ну и что такое slice - это Array.prototype.slice, получаем:

    const slice = Array.prototype.slice
    const boundCall = Function.prototype.call.bind(slice);
    // теперь можно так:
    boundCall(arguments) //то же самое что slice.call(arguments)


    теперь переименуем переменные чтоб было как в mdn - slice в unboundSlice, boundCall в slice, получим

    const unboundSlice = Array.prototype.slice
    const slice = Function.prototype.call.bind(slice);
    // теперь можно так:
    slice(arguments) //то же самое что slice.call(arguments)


    Но все это просто переименование и замена одних букв на другие, что совершенно не меняет логику того происходит, то есть несмотря на громоздкие конструкции, там просто привязывание slice к call в качестве this.

    var slice = Array.prototype.slice;
    const shortSlice = slice.call.bind(slice);
    
    shortSlice(arguments)// то же самое что и slice.call(arguments)


    То что slice в свою очередь тоже функция, как видим, совершенно нигде не проявляется и не имеет значения. тут везде она выступает как объект переданный в this. Остальное - детали реализации call, и это ее дело что она будет с этим объектом делать.
    Ответ написан
    Комментировать
  • Как сделать Hook, для работы с query parameters?

    Robur
    @Robur
    Знаю больше чем это необходимо
    1. не понятен вопрос, какие эффекты, при вем тут useEffect? не хватает кода как вы это все используете и что за проблемы.
    2. updateUrl должна сохранять все параметры которые уже были в урл, и добавлять/обновлять новые. У вас все удаляется и ставятся только переданные.
    3. Золотой стандарт - использовать роутинг. Если не хотите или не подходит - то любой велосипед, ваш тоже подойдет.

    4. Вы точно хотите именно url? может вам localStorage больше подойдет?
    Ответ написан
  • Как исправить код?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Что значит "после завершения кода"? какого кода?
    Все у вас выполняется нормально и попорядку. А то что undefined какой-то выводится - так это где-то еще а не в этом коде.
    Ответ написан
    Комментировать
  • Нужно ли расчитывать при разработки сайтов на поддержку IE?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Вопрос: плюнуть ли на поддержку IE?

    тут два варианта ответа:
    1. да, если вам она не нужна.
    2. нет, если вам она нужна.

    проверьте условие в конце, какое подойдет, тот ответ ваш.
    Ответ написан
    Комментировать
  • Какие области IT сильно связаны с алгоритмикой и математикой?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Когда я в универе был олимпиадником (АСМ) тоже думал - главное - быстро и круто алгоритмы писать, это настоящее программирование, а не вот эти ваши формочки клепать.
    На деле, как вам уже сказали, олимпиадные скиллы хороши ровно в одной области - выигрывании на олимпиадах.
    И основное умение получаемое там - суметь очень быстро написать код который пройдет по жестко заданным тестам. В реальной жизни, к сожалению, это называется "малоподдерживаемый говнокод который проще выкинуть".
    Потому что "пройти тесты" - это только малая часть хорошего кода и правильной архитектуры и алгоритмов.
    Там есть время подумать и написать хорошо, придумать алгоритм лучше, проверить разные варианты и так далее. Это все умеет любой хороший профессионал.

    Проведу аналогию - есть спортсмен который отлично научился в бассейне быстро плавать по прямой. Он один из лучших и вообще молодец. Знает до деталей как двигать руками, как загребать воду максимально эффективно, какую шапочку использовать для уменьшения трения и так далее. И тут задался вопросом - а где я, такой молодец, могу работать? Ответ - в том же бассейне, тем же спортсменом. Потому что за пределами бассейна, оказывается, надо еще 100500 совсем других умений. Даже спасатель на пляже из него выйдет хреновый, потому что мало быстро доплыть до человека, его сначала увидеть, а потом еще и спасти надо. Профессиональные спасатели может и плавают медленнее чем он, зато знают куда смотреть, как понять что человек тонет, как к нему плыть как вытаскивать, откачивать и так далее. И при этом плавают-то не намного хуже. Наш спортсмен из бассейна ничего этого не знает и не умеет.

    В программировании все точно так же. Нет такой профессии "решатель алгоритмических задач" (за пределами спортивного программирования). Любой профессионал в первую очередь должен будет знать огромную всяких знаний из своей области и уметь кучу умений, и уже во вторую очередь - среди прочих навыков так же уметь решать алгоритмические задачи.

    Поэтому - хотите разрабатывать хорошие, серьезные программы которые реально что-то делают, вам придется этому научиться. Олимпиадная подготовка конечно чем-то поможет, процентов на 10, остальное придется учить точно так же как и всем остальным. Поэтому выбирайте область, которая вам сама по себе интересна, где применить навыки, уже найдется.

    Понятно что области разные, но вы думаете о том что будет через 5-10 лет, а этого никто не знает. Когда я выпускался с универа, программирование было уделом очкариков не от мира сего и какая-то тухлая тема, даже в нии программисты это был больше фарс и я пошел потому что просто нравилось, совершенно без всяких перспектив а оно вон как все повернулось - сейчас работа мечта.

    Так что выбирайте по области которая нравится. Пробуйте одно, другое. Информации - море, думаете про дата саенс - полгода проживите так будто туда собрались, читайте статьи, общайтесь в сообществах, участвуйте в вебинарах - конференциях, подпишитесь/задружите с теми кто там работает. Через полгода поймете точно - оно или нет. Поменять всегда успеете, у вас 5-6 таких заходов во время учемы, можно не спрашивать на тостере а просто попробовать всё. Возможно к тому времени как вы доучитесь в универе, появится пачка новых профессий которые вам отлично подойдут.

    Удачи в общем и не грузите себе мозги раньше времени зазря.
    Ответ написан
    2 комментария
  • Как убрать зависимость отрендереных методом .map компонентов друг от друга?

    Robur
    @Robur
    Знаю больше чем это необходимо
    1. они не зависят друг от друга, вы меняете стейт компонента и рендер вызывается заново. Это нормальное поведение.
    2. переменная message - одна на всех, если вы ее поменяете то во всех разом произойдет изменение - добавится или удалится "отправлено".
    Если у вас проблема в том что вы нажимаете отправить в одном компоненте, а "отправлено" появляется во всех - а хочется чтобы в каждом было свое "отправлено" то вам надо сделать для каждой строки отдельный флаг. Лучше всего - сделать то что внутри Grid отдельным компонентом и перенести message/setMessage туда.
    Ответ написан
    Комментировать