• Преобразование угла (0-360) в точки x1,y1,x2,y2 и обратно?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    Исправил под Вашу ситуацию

    // получаем угол в радианах
    var angle = Math.atan2((x1*100/obj.width)-50,(y1*100/obj.height)-50); 
    
    // или в градусах
    var angle = 180*Math.atan2((x1*100/obj.width)-50,(y1*100/obj.height)-50)/Math.PI;


    PS: немного теории на примерах

    преобразование декартовых координат в полярные
    есть некая точка, заданная координатами x,y в декартовой системе координат. для вычисления ее полярных координат используем формулы
    // угол между осью X и отрезком, заданным координатами (0,0)-(x,y)
    var angle = Math.atan2(x,y); // в радианах
    var angle = 180*Math.atan2(x,y)/Math.PI; // в градусах
    
    // длинна отрезка (сежду точкми 0,0 и x,y)
    var radius = Math.sqrt( Math.pow(x, 2) + Math.pow(y, 2) );


    преобразование полярных координат в декартовы
    есть некая точка, заданная координатами angle, radius в полярной системе координат. для вычисления ее декартовых координат используем формулы
    // угол angle задан в радианах
    var x = radius*Math.cos(angle); 
    var y = radius*Math.sin(angle);


    векторные преобразования (самая малость)
    вариант 1. есть некий отрезок (вектор) заданный декартовыми координатами точек (начала и конца) x1,y1 и x2,y2 соответственно.
    // угол между осью X и отрезком, заданным координатами (x1,y1)-(x2,y2), он же направление вектора.
    var angle = Math.atan2(x2-x1,y2-y1); // в радианах
    var angle = 180*Math.atan2(x2-x1,y2-y1)/Math.PI; // в градусах
    
    // длинна отрезка, заданного координатами (x1,y1)-(x2,y2), он же длина (размер) вектора
    var radius = Math.sqrt( Math.pow(x2-x1, 2) + Math.pow(y2-y1, 2) );


    вариант 2. есть некий отрезок (вектор) заданный декартовыми координатами точки (начала) x1,y1 и полярными координатами точки конца - angle и radius, указывающими направление отрезка и его длинну, относительно точки начала x1,y1.
    // находим декартовы координаты точки конца. угол angle задан в радианах
    var x2 = x1+radius*Math.cos(angle); 
    var y2 = y1+radius*Math.sin(angle);
    Ответ написан
    23 комментария
  • Во сколько обходится валютный контроль?

    @Stalinko
    PHP'шник и фрилансер до мозга костей
    Если зарабатываем $1000 по новому контракту:

    1. 20% от $500 + 10% от $500 = $150
    2. $30 - wire transfer
    3. ~$15 комиссия банка посредника. . Везде по-разному: в Модульбанке 15 евро, Тиньков банке ноль.
    4. Для тех, кто работает по УСН: 6% от оставшихся денег т.е. 805 * 6% = $48,3
    Я работаю по ПСН, поэтому для меня в этом пункте ноль :)
    5. Комиссия за валютный контроль: 300р ($5) в моём случае.

    Остаётся ~$751,70
    Я бы сюда ещё заложил стоимость обналичивания/обмена этих денег на рубли. Это сильно зависит от банка и тут много вариантов.

    Выводы:
    - выводить реже и большими суммами сразу
    - работать дольше по одному контракту
    - использовать ПСН, если доступен патент по адекватной цене и стабильный доход
    - комбинировать способы обналички/обмена на рубли

    Бонус: не забываем, что есть ещё куча фиксированных платежей: тарифный план банка, патент если работаешь по ПСН, фиксированые платежи для ИП (~31т.р. в 2018г), оформление паспорта сделки для тех, кто работает давно и стабильно.
    Ответ написан
    43 комментария
  • Почему перебор массива через for быстрее, чем .map()?

    lazalu68
    @lazalu68
    Salmon
    Во-первых, у вас тест с map неправильный, гляньте в консоль.

    Во-вторых, for это цикл, в котором 1) сначала выполняется initialization, 2) потом перед каждой итерацией проверяется condition, 3) выполняется тело цикла, 4) а после итерации выполняется final-expression, вот и всё. А map включает в себя еще некоторую логику, как минимум сборку нового массива, и неизвестно что еще; map это сложная функция.

    Бтв, вот версия теста чуть корректней: разделены процедуры создания массива и итерирования по нему.
    var b = new Array(1000000);
    for (var i = 0; i < 1000000; i++) {
      b[i] = i;
    };
    
    console.time('simple');
    for (var i = 0; i < 1000000; i++) {
      b[i] *= 2;
    };
    console.timeEnd('simple');
    
    
    var b = new Array(1000000);
    for (var i = 0; i < 1000000; i++) {
      b[i] = i;
    };
    
    console.time('es6');
    b.map((_, i) => i * 2);
    console.timeEnd('es6');
    
    // simple: 5.100830078125ms
    // es6: 161.93994140625ms

    Ответ написан
    Комментировать
  • Возможен ли план самообучения WEB разработке?

    @programrails
    А я думаю, что настоящее развитие может быть только по плану. Однако, ваша самая главная задача сейчас - это хорошо учиться в школе. Выучите веб, но ценой завала школы - глупость неимоверная, преступная. Не надо так спешить, детство даётся один раз в жизни. Не вебом единым жив человек. Не следует думать в отношении некоторых школьных предметов, что "это мне не понадобится". Понадобится всё. Начать с веб можно и с 18 лет - вполне достаточно. Если уж так неймётся - то забросьте пока до 18 лет к чёрту всю эту веб-разработку и основной упор сделайте на изучение английского языка. Станьте асом в английском языке и тогда ваши (российские) конкуренты (со временем) останутся далеко позади - потому что подавляющее большинство российских разработчиков позорно плохо (до смешного плохо) знают английский. Хороший английский - это секретный ключ к успеху в программировании. Не имея навыка смотреть американский фильм с оригинальной дорожкой и понимать (на слух) хотя бы половину - хорошим программистом не стать. Во-первых, бОльшая часть веб-документации - только на английском. Во-вторых - никогда не читайте англоязычную документацию в русском переводе (книги, статьи) - ничего не поймёте правильно - только в оригинале. Потому что перевести такое невозможно - можно только заново написать на другом языке. В-третьих - будете в Турции/Египте летом - сможете больше пообщаться при необходимости.

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

    Когда вам исполнится 17-18 - вообще забудьте про веб и все силы бросьте на поступление в ВУЗ. И лишь после поступления можно начинать с вебом. Да, и забудьте про компьютерные игры. Прямо начиная с сегодня. Совсем. Навсегда.

    Все предыдущие советы даны без учета возраста задающего вопрос. Эти ответы рассчитаны на человека от 18 лет возрастом. Мой же ответ - именно для 14-летнего.
    Ответ написан
    26 комментариев
  • Как с помощью async выполнить n-ое количество параллельных запросов?

    SPAHI4
    @SPAHI4
    реактовцы - это не девы, а прокидыватели пропсов
    await Promise.all(data.map(i => request(i)));
    Ответ написан
    Комментировать
  • Как стать Junior Java Developer, имея немалый опыт разработки на этом же языке?

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

    Пишешь резюме, указываешь свой опыт, идешь на собеседование:

    1) Либо тебя берут
    2) Либо тебе говорят, что бы безрукий мудак (уточняешь почему).

    Учишь, тыкаешь то, где у тебя были проблемы - повторяешь снова.

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

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Есть ли какие-нибудь прописанные стандарты требований для Front-End разработчика на уровнях Junior, Middle, Senior?
    К сожалению, ни для одного разработчика (не только фронтэнд) таких стандартов нет. Есть довольно общие представления на эту тему:
    • Junior - специалист которому всегда или довольно часто нужна помощь в ряде вопросов
    • Middle - специалист которому помощь уже не нужна, он чётко знает свою тему и вопросов либо не задаёт совсем, либо почти совсем, обычно - полностью владеет тематикой с которой работает (например, HTML-вёрстка + 1 (один) JS-фреймворк, знает хорошие и плохие варианты решения на уровне "на чём пишу, то и знаю"
    • Senior - не задаёт вопросов, знает не только профильный предмет (с которым работает) но и не редко целую пачку технологий (например, фреймворков), хорошо знаком с темой на более низком уровне, то есть разбирается в вопросах не просто уровня "какую функцию вызвать" а как эта функция вообще работает, вплоть до исходного кода движка браузера/JS/и т.д., может предложить дюжину решений почти любого вопроса и обосновать какое из будет лучше для конкретно данной задачи и почему. Так же не редко существует вне пространства конкретных языков, т.к. знает стек и воспринимает любой язык не более чем инструмент


    Дополнительно к этим требованиям, в зависимости от компании - может быть ряд других требований, в т.ч. по знаниям английского и так далее (вплоть до "всего чего угодно"). По русски эти "звания" можно обозначить как - "младший программист", "программист" и "ведущий программист" - это вносит чуть больше ясности в происходящее, остальное зависит от фирмы в которой Вы работаете или собираетесь работать. Думаю, объяснять, что должность ведущего программиста, как и требования к нему в каком-нибудь "ООО "Тяп-ляп и в продакшен" и какого-нибудь "Yahoo!" (условно) - могут быть кардинально разными.
    Ответ написан
    2 комментария
  • Переход с постоянки на фриланс, стоит ли игра свеч?

    @McBernar
    У вас скромный рейт. Хотя, возможно, для Чехии это нормально.

    Я работал и работаю на фрилансе уже много лет. И в штате много лет тоже работаю.
    Поэтому могу кое-что сказать.

    Минусы

    1. Все байки про фриланс — правда.

    2. Нужно иметь железную дисциплину, чтобы работать в строго отведенные часы, а в другое время отдыхать. И чтобы вставать вовремя, а не спать до обеда.

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

    4. Очень много мудаков среди клиентов. Со временем научишься их определять с первых же слов в переписке. Но до этого придется некоторое количество раз обжечься.

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

    6. Хорошее описание проекта, хороший продукт сам по себе — на фрилансе этого мало. Повезет, если получится удаленно вписаться в команду, которая делает или большой проект или делает много проектов на потоке. Если же это разовые проекты, то будь готов к задаче вида "ну мне вот сайт нужен с формой, сообщениями и робокассой, а ну вот еще там корзина, да".

    7. Забудь про стабильность. Сегодня ты заработал двойную зарплату, а в следующем месяце процентов 50. Нет никого, кто строго раз в две недели будет тебе перечислять деньги на карту.

    Плюсы

    1. Свобода в выборе задач и проектов. Это прям кайф.

    2. Есть возможность заниматься своими делами, потому что за проекты отвечаешь ты и только ты. Соответственно, можно брать выходные, когда тебе удобно, а не когда они на календаре пришли.

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

    4. Есть возможность учиться. Не вечером после работы, днем, когда голова свежая.
    Офис эту возможность сильно ограничивает.

    5. Есть много времени и сил на свои проекты. То, до чего не доходили руки целый год офисной работы, может быть сделано довольно быстро.

    Где работать
    Попробуй везде. И на фл и на апворке есть свои плюсы и минусы.
    Но самые лучшие клиенты — это, конечно, которые приходят напрямую.
    Ответ написан
    3 комментария
  • Как сделать прерывистой линию рисования svg?

    RadCor
    @RadCor
    Если мой ответ вам помог, отмечайте его решением.
    Делается это так:
    https://jsfiddle.net/bg1ru9rv/

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

    В вашем случае так и вышло. + у вас ещё была заливка.

    Повторюсь, использовать нужно только линии.
    Ответ написан
    2 комментария
  • Как правильно использовать svg-иконку в коде?

    Лучше делать ссылку на иконку:
    <div>
    <svg pointer-events="none" height="30" width="20">
        <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon"></use>
    </svg>
    </div>

    и потом в футере или в отдельном файле svg координаты:
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="position: absolute; width: 0px; height: 0px;">
       <symbol id="icon" viewBox="0 0 15 30">
           <path stroke="currentColor" d="M13.5 1.5l-11.5 13.5 11.5 13.5"></path> 
        </symbol>
    </svg>
    Ответ написан
    3 комментария
  • Что нужно сделать с этим блоком что бы получить такой же эффект?

    @kahi4
    Уберите все Scale из вашего tr класса и добавьте только
    transform: perspective(600px) rotateY(-30deg) translateX(10%);


    Ну и вот пример накидал https://jsfiddle.net/43dLfce8/
    Ответ написан
    4 комментария
  • Photoshop, notepad++ и бочка кофе в придачу, что ещё поможет верстать сайты быстрее и с меньшими затратами нервов?

    sim3x
    @sim3x
    1) После каждого обновления кода я перезагружал страницу, нет веб-разработки в реальном времени?
    так никто не делает. До написания кода ты уже должен видеть, как оно будет в браузере. Никто не запрещает использовать normalize сразу в макете

    2) Photoshop, пока использовал только пипетку, прямоугольник и лупу, ещё как использовать сию программу?
    csshat.com
    rafaltomal.com/a-web-developerss-guide-to-photoshop
    www.slideshare.net/akella/ss-33709531

    3) Чем вы ещё пользуетесь?

    emmet / dzen-coding -- 80% всего ускорения тебе даст именно он

    сборщики -- гульп, грюнт, вебпак, позволяют в любой момент времени получать продакшен реади продукт
    снипетты (live templates) в IDEA-like продуктах
    sass/less/slylus

    Как-то так верстают профи cssing.org.ua/2014/03/11/coding-live

    А быстро верстать ты начнешь после того как попрактикуешься пару лет :)
    Ответ написан
    Комментировать