Задать вопрос
  • Как найти возможность в любой момент брать шабашки на 1000-2000 рублей?

    php666
    @php666
    PHP-макака
    Если перефразировать вопрос: я работаю удаленно, денег не хватает, нищеброд. Хочу такую работу, что бы ничего не делать и получать косарь рублей за установку цмс.

    Рональд Макдональд правильно написал - "Влажная мечта любого фрилансера"
    Объективно, айти - не та отрасль, где можно легко находить такие мелкие заказы.
    Такси, грузоперевозки или все, что связано с массовой востребованностью. Ибо на тысячу населения гораздо больше людей имеют потребность в такси, нежели в сайто-правках.

    В автосервисе за снятие/установку одного колеса берут рублей 100 или 200. Фрилансеры тоже хотят также - прилагать мало усилий и получать за это немалые деньги. Проблема только в том, что вас много, а заказчиков - объективно меньше. И раздутый пузырь фриланса терпит крах каждый раз, когда тут появляется очередная тема про фриланс, не состыковывающаяся с реалиями жизни.

    Чтоб покрывать непредвиденные затраты (поход в кафе, в гости, заправка авто, подарки... ) .
    Это не непредвиденные затраты, это ничто. Даже мужичок с завода может себе позволить кафе и заправить своё ведро. Куда деньги деваешь (если они у тебя, конечно, есть)?
    Ответ написан
    Комментировать
  • Как найти возможность в любой момент брать шабашки на 1000-2000 рублей?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Если вы действительно работаете над "хорошими проектами за большие деньги", и видимо что-то из себя представляете, то codementor.
    Рейт начинается от $60 в час, $100-120 - это уже хороший уровень, "шабашки" бывают на почаса - час-два, бывает больше.
    Это конечно не 1000-2000р, как вы хотите, а 3000-5000 но я готов принять от вас все излишки сверх 2тр чтобы вы получили именно то что спрашивали.

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

    @afanasiyz
    Javascript-разработчик
    Отвечу насколько знаю (и насколько понял вопрос), вопрос отличный, Автор - молодец.

    1. Таймеры, xhr запросы, четыре вида Observers: Mutation, Intersection, Resize, Performance Observers. Другие варианты асинхронных операций сложно представить (могу ошибаться, и их еще куча).

    2. смотря про какие стэки мы говорим - если со стороны движка и Web API - понятия не имею, в какие стэки он это все засовывают, подозреваю, что в зависимости от движка разные реализации этих операций, и они по разному работают с памятью (тут нужны сишники, которые знают исходники движков браузеров). Если мы говорим про стэки в javascript - опять же, зависит от того, какой стэк вы имеете в виду - стэк вызовов, очевидно, сохраняется от той функции, которая вызвала нашу асинхронную функцию, по памяти, я думаю, все располагается в общем стэке (с изоляцией, конечно).

    3. Промисы попадают в microtasks queue - выполняются один за другим, пока не закончатся микрозадачи, чтобы перейти к макрозадаче. Остальные асинхронные операции попадают в tasks queue, и там работают одна за другой, прерываясь на исполнение микрозадач, если они появились.
    То есть по приоритезации - микрозадачи приоритетнее макрозадач, как только макрозадача кончилась, движок смотрит, есть ли микрозадачи, и выполняет их, и лишь потом переходит к следующей макрозадаче.
    Ответ написан
    Комментировать
  • С чего начать разработку онлайн игры с использованием клиента сторонних разработчиков?

    profesor08
    @profesor08
    Тратишь такой годы, а потом придет правообладатель и ты удаляешь весь свой труд. Профит.

    Правообладатель заставил русского моддера удалить ...
    Ответ написан
    Комментировать
  • Офис или фриланс?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    В офис. На фрилансе без реального опыта делать особо нечего. Поучитесь в команде, приобретёте дополнительные полезные навыки
    Ответ написан
    Комментировать
  • Какие шаблоны проектирования js применяются на практике чаще всего?

    @DiGiTAll
    Hype Driven Development
    Ответ написан
    Комментировать
  • Как правильно варить многопоточность на тасках?

    @kttotto
    пофиг на чем писать
    Вы ошибаетесь. У Вас нет параллельного выполнения задач в методе GetStatistic().
    Вот это count.Result равносильно
    count = db.Image.CountAsync().Result
    Это обычное синхронное выполнение.

    Вот так Task.WaitAll(count, notReady); Вы запустили задачи параллельно, но результат из них так не получите.
    Если в цикле хотите тело цикла выполнять в разных потоках, используйте Parallel.ForEach
    Ответ написан
    7 комментариев
  • Насколько трудное данное тестовое задание и что полистать чтобы его решить?

    virtual_hack2root
    @virtual_hack2root
    .NET Core, JS, DevOps
    Это одно из тех заданий, где следует проявить фантазию, и нестандартный подход, а не умение гуглить решение.

    4d. фантазия на тему звезд.

    Во первых, это 3d. Во вторых, звезды движутся. Предположим, у звезд есть координаты, вектора скорости и кроме этого - релятивиское смещение, из-за ограничения скорости света, некоторые звезды могут к тому же двигаться со скоростями, близкими скорости света. Это потрясающая задача, а вы ее сводите к проблеме коммивояжера и backpack problem.

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

    Я так же допустил бы, что время разгона до крейсерской корости и торможения несущественны, при подлете к звезде и удалении от звезды, так так эти рассояния измеряются световыми годами, то есть на 5-8 порядков меньше расстояний между звездами, кроме того, в звездных сисемах есть кластеры и пустоты, что облегчает задачу, как таковую.

    Можно рассмотреть 4 способа решения задач: генетические алгоритмы, нейронные сети, машинное обучение, и стандартный поход - приближенное решение задач с краевыми условиями.

    Можно для простоты вообще отказаться от скоростей у звезд, и считать что коммивояжер перемещается с помощью телепортации, то есть зафиксировать время t0. Тогда я бы применил метод Монте-Карло, к примеру, так как никто не гарантирует, что задача будет на малом количестве звезд и из не будут триллионы, либо использовал какое-то условие, которо бы решало, как мы будем решать задачу, приближенно, либо точно.

    В любом случае, можно поиграть с 3d, попробовать использовать алгоритмы отсечения который разщработал Кармак в Quake, либо как-то еще выделиться и показать нестандартность мышления, в том числе, попробовать деревья бинарного поиска, самобалансирующие RB-деревья, и так далее.
    Ответ написан
    1 комментарий
  • Что сегодня подразумевается под веб-компонентами?

    @MadridianFox
    Web-программист, многостаночник
    Веб-компоненты - обобщающее название нескольких технологий, позволяющих создавать собственные элементы с инкапсулированными структурой, стилями и поведением.
    Т.е. вы создаёте один-два файла в какой-нибудь папочке, описываете в них разметку, стили и js-код и вызовом некоторых api-функций говорите браузеру - "вот мой собственный элемент с именем my-element, если встретишь тэг , то наполни его вот этим, стилизуй вот так и по событиям выполняй этот код".
    Технологии, которые это позволяют постепенно появляются в браузерах, но как обычно не полностью и не везде. Нужны полифилы.

    И да, веб-компонент мужского рода)
    Ответ написан
    1 комментарий
  • Переход с Angular на React. Тренд или нет?

    @dplsoft
    в следствии успехов маркетологов одного или другого лагеря.
    и смены моды.

    хотите совет от инженера ? "узбогойтезь" и прекратите искать смысл тараканьих бегов в головах приверженцев моды. мода на реакт уже проходит; фап на вуе закончится через год, сменившись очередным "откровением", которое в свою очередь подохнет вытесненное очередным фапом по новому откровению.

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

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

    ну так вот: разница между 99% фреймворков джаваскрипта - это куча чепухи и рассказов про то как тут все клево, прогрессивно, моложежно. и практически ничего технически обоснованного. да, структуры разные, апи разный, но эта разница отражает как правило только вкусовщину их авторов и весьма редко имеет под собой хоть какую то техническую необходимость.

    потому что это МОДА.
    "не пытайтесь понять тараканов".

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

    они всего лишь пытаются увеличить круг потенциальных соискателей и привлекательность вакансии в глазах неразумных.

    они надеются что модники следящие за трендами, но остаюшиеся на "старых технологиях" собласнятся сменить работу под обещание, что они плавно вольются в новый фремворк, на новой работе.

    ... ps: а jQuery при этом продолжает и продолжает выполнять 90% всей черной работы на 90% всех сайтов ;)
    Ответ написан
  • Переход с Angular на React. Тренд или нет?

    @msdosx86
    Реакт это библиотека, а Ангуляр - это целый фреймворк. Если вы работаете в сфере энтерпрайза, то легче выбрать ангуляр, так как в нём уже есть то, что нужно для создания архитектуры огромного веб приложения и для поддержки кода в дальнейшем. Когда же огромные приложения начинают писаться на реакте, то это выглядит как мешанина из кучи npm пакетов (тот же редакс, санки, аксиос, флоу, реакт-роутер). Не спорю, что на реакте тоже можно большие приложения создавать, но для этого потребуется больше усилий (при одинаковых знаниях фреймворков). Почему? Да потому что в ангуляре с тайпскриптом и архитектурой, которую ангуляр навязывает разработчикам, можно применять классические паттерны проектирования, которые до этого применялись в классических языках типа джавы или c#. Их в обычном js'е тоже можно применять, но толку от этого не много, так как классические паттерны завязаны на ООП и статической типизации. Зачем нужны паттерны? Для поддержания кода. У нас в компании проекты поддерживаются по несколько лет (знаю проекты, которые поддерживаются уже больше 5 лет) и на проект подключают других людей. Кого то убирают, кого то подключают. И когда нужно поддерживать код, то тут тайпскрипт и архитектура ангуляра в самый раз позволяет всё это делать безболезненно (при условии, что код пишут хорошо). Весь этот, не побоюсь слова, "высер", который написал коллега выше, в сторону ангуляра обусловлен тем, что у ангуляра порог вхождения выше, чем у остальных фреймворков. И поэтому людям кажется, что там происходит какая-то магия. И получается, что люди не понимают, что там происходит и жалуются, что слишком сложно, но зато в реакте всё просто. В реакте действльно всё намного проще. Чтобы писать на реакте вам в принципе хватит знаний es6. Чего не скажешь про ангуляр. Ибо там тайпскрипт и rxjs, который просто понять не получится, надо изрядно постараться, чтобы начать думать потоками и как с ними работать. Но когда ты начинаешь понимать как работает rxjs, как работает сам ангуляр (change detection например), то становится просто невообразимо легко писать код. Весь хейт в сторону ангуляра из-за того, что фронтенда изначально не существовало как такового. Ведь был пхп и он прекрасно работал с хтмл. Потом появились шаблонизаторы и jquery. Всё это делалось бекендерами и фронтенда как такового не было. И потом появились фреймворки типа ангуляра, которые бОльшую часть логики взяли на себя и бекенд превратился в REST API. Фронтенд не был сложным, Ангуляр значительную часть логики взял на себя и тем самым усложнил фронтенд, поэтому те, кто привыкли формочки верстать, не могут осилить эти тонны абстракций. На каком нибудь фрилансе или средних проектах нет смысла в ангуляре, поэтому там и используются реакт и вью, ну и жиквери, куда ж без него. А если проект уровня 50-100К долларов, то тут ни о каких жиквери речи нет.
    Ответ написан
    4 комментария
  • Какая должна быть реализация класса, чтобы выражение Base.x + Base.x === 3 && new Base().x === Base.x + Base.x было истинным?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Один x - свойство экземпляра, другой - статический геттер:

    class Base {
      constructor() {
        this.x = 3;
      }
    
      static get x() {
        return 1.5;
      }
    }

    Классом этой штуке быть не обязательно:

    function Base() {
      this.x = 3;
    }
    Base.x = 1.5;
    
    // или
    
    function Base() {}
    Base.prototype.x = 3;
    Base.x = 1.5;

    UPD. Наконец-то появились статические свойства, а свойства экземпляра стало необязательно инициализировать в конструкторе:

    class Base {
      x = 3;
    
      static x = 1.5;
    }
    Ответ написан
    1 комментарий
  • Как найти коллег для совместной разработки ПО?

    @kn0ckn0ck
    Продюсер
    1. Хакатоны.
    2. Друзья, друзья-друзей, знакомые друзей-друзей.

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

    @McBernar
    Ну просто выдавать токен без привязки к домену. И отправлять токен в заголовках при каждом запросе к API любого вашего ресурса.
    Ответ написан
    2 комментария
  • Как правильно написать авторизацию/аутентификацию?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    Есть два варианта хранения данных об авторизованном пользователе:
    1) В куки (так по умолчанию используется в асп.нет): необходимые данные (claims) шифруются machineKey и отдаются пользователю в http-only куках, таким образом при каждом запросе на сервер они присылаются, расшифровываются и далее можно проверить в необходимых местах.
    плюсы: полностью stateless, нет надобности обращаться к БД
    минусы: при необходимости "выбить" сессию со стороны сервера нужно поднимать более сложную логику и хранить флаги в промежуточном хранилище (проверять что если для такого-то пользователя требуется завершить, то такие действия, иначе другие);
    2) Ключ сессии: после успешной аутентификации авторизуем пользователя и claims храним на сервере в быстрой памяти или БД (key-value), где ключ - ключ сессии, значение - любые данные.
    плюсы: есть полный контроль состоянием авторизации (как и возможность завершить сессию со стороны сервера, так и сменить пользователю роль(или другие параметры) "на лету")
    минусы: организация доп. прослойки - кэша или хранение в БД (медленно), при перезапуске/падении сервиса сессии клиентам потребуется перелогиниться.

    1
    1.1 В куки писать или ключ сессии или шифрованные данные о пользователе, сессия - абстрактное понятие (это пара: ключ и данные), ключ должен быть защищенным, т.е. трудным к копированию (хотя бы зрительно трудно запомнить), уникальным (чтобы не возникло коллизий: двум разным пользователям выдался один и тот же ключ, т.е. это не должна быть хэш-функция от логина-пароля или IP или чего-то неуникального).
    1.2 В асп.нет существуют атрибуты авторизации (в которых можно расставлять проверки на требование таковой, роль, конкретный пользователь), в общем смысле логика такова: поступил запрос на сервер, далее нужно посмотреть к какому ресурсу идёт обращение (защищенному или свободному), если ресурс защищен, то проверить куки (ключ сессии или шифрованные данные), расшифровать/получить данные о сессии из кэша и предпринять решение: пускаем или не пускаем (отдаём 401/403 или отдаем 200/404/...).
    1.3 Завести на сервере (в кэше или БД) словарь , при алгоритме проверки сессии добавить условие проверки на наличие записи в словаре.
    1.4 С нескольких - словаря не нужно.

    2
    2.1 Даже если пользователь входит через ВК всё равно нужно отдавать свои ключи сессий/шифрованные данные, а вот внутри данных уже хранить access_token от вк-шной сессии, так очень маленькая вероятность, что токен ВК утечет, а если утек ключ сессии, то действия будут ограничены только функционалом сайта.
    2.2 После расшифровки куки или данных по ключу сессии делать доп запрос на сервер ВК с токеном, который сохранился при аутентификации (access_token), запрос простой, например получить имя пользователя, если ВК выдал что токен просрочен или ошибку, то сессию закрывать или куки с данными обнулять.
    Ответ написан
    3 комментария
  • Как можно оптимизировать данный код?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Смысл тут такой - не надо считать повторно то, что вы уже считали. А именно - все эти суммы степеней и сами степени. Каждая следующая сумма - это предыдущая сумма плюс ещё одно значение, следующая степень - произведение предыдущей и основания:

    function movie(card, ticket, perc) {
      let count = 0;
      let price = ticket;
      let sum = card;
    
      while (Math.ceil(sum) >= ticket * count) {
        count++;
        price *= perc;
        sum += price;
      }
    
      return count;
    }
    Ответ написан
    1 комментарий
  • Как создать скрипт работающий без участия пользователя?

    flexer1992
    @flexer1992
    Unity Developer
    Крон в этом случае плохое решение. По факту вам надо оперировать только таймерами. Начисление денег за время что не были в игре делается легко. Просто берете разницу между последним начислением и текущем временем и даете денег юзеру сохраняя время начисления. Увеличение атаки можно сделать следующим образом. Например у нас есть таблица с эффектами которые цепляются на юзера. Основная задача этой таблицы - хранить таймпштамп когда этот эффект будет не активен. При активации эффекта мы его добавляем в эту таблицу, а дальше каждый раз когда считаем урон просто проверяем не истекло ли еще время действия эффекта. Проверка будет происходить каждый запрос. Это будет сильно дешевле чем раз в секунду пинать крон, да и более правильно как по мне.
    Ответ написан
    2 комментария
  • Как добавить задержку к .css?

    Используйте css, вам здесь скрипты не нужны:
    .quadmenu-item {
        background-color: #000;
        
        -webkit-transition: background-color 0ms linear;
        transition: background-color 0ms linear;
        -webkit-transition-delay: 5s;
        transition-delay: 5s;
    }
    
    .quadmenu-item:hover {
        background-color: #f00;
    
        -webkit-transition-delay: 0s;
        transition-delay: 0s;
    }
    Ответ написан
    Комментировать