• Upwork - Конфискация всех заработков. Как избежать?

    @iSergios
    Python-разработчик
    Однако Вы себе напридумывали. Давайте разберемся по-порядку.
    Внимание! Будет многабукав и много юридической информации.

    Итак, как к нам поступают деньги от клиентов Upwok?

    1) Клиент передает деньги Upwok'у. Ну тут как бы все чисто, никаких проблем. Деньги-то не у нас. Де-факто (и де-юро тоже) деньги перечислены на счет в банке или иной кредитной организации, который принадлежит Upwork.

    2) Upwork зачисляет деньги на наш "счет". [s]И тут Вы впадаете в панику.[/s] Давайте начнем с того, что деньги, как таковые, никуда не двигались. Они как лежали на счету Upwork'a в банке, так и продолжают там лежать. Upwork лишь рисует небольшую циферку у Вас в профиле и все. Ни юридически, ни фактически эти деньги Вам не принадлежат*. Upwork не является ни банковском, ни кредитной организацией, ни фондом ни иным лицом, уполномоченным производить операции с чужими денежными средствами. Все денежные средства, поступающие на его счета от заказчиков становятся денежными средствами Upwork. А то, что Upwork выплачивает эти суммы Вам - это он распоряжается принадлежащими ему деньгами. Т.е. выступает не просто посредником, который передает деньги из одних рук в другие, а промежуточным собственником. Как если бы вы купили автомобиль у одного товарища, оформили его на себя, а потом продали/переоформили его другому товарищу. То, что в Вашем профиле отражаются какие-то суммы с обозначением валюты, это не отражение состояния какого-то пресловутого счета - у Вас его на Upwork'e нет и быть не может - чисто юридически это просто обещание Upwork'а выплатить Вам сумму, эквивалентную указанной. И все. К этому моменту Вы еще не собственник этих денег, вы не можете их потратить.

    3) Upwork "выводит Ваши деньги" (а де-юре просто перечисляет на Ваш счет из своих), и вот тут возможны варианты:

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

    3.2) Upwork перечисляет деньги на Ваш счет в небанковской кредитной организации. Опять варианты:

    3.2.1) Это PayPal или иная небанковская кредитная организация, которая официально зарегистрирована на территории РФ и включена в соответствующие реестры - проблем нет, все чисто. Эти организации имеют право осуществлять операции с валютой (при наличии лицензии, при ее отсутствии они автоматически переведут эти средства в национальную валюту, т.о. доллары Вы не получите).

    3.2.2) Это Skrill или иная небанковская кредитная организация, которая на территории РФ не зарегистрирована. Проблем нет с точки зрения нарушения отечественного законодательства. Upwork перевел принадлежащие ему деньги на некий счет, который по документам незарегистрированной на территории РФ организации принадлежит Вам. Т.е. именно Вы никаких валютных операций не совершали. К слову, доказать само существование, а равно принадлежность такого счета Вам в случае с иностранной организацией очень непросто. Ваши деньги приобретают довольно интересный статус кво - вы можете ими управлять, но в правовое поле РФ (а равно под действие предусмотренных законами ограничений) они как бы не попадают.

    И да, статья 15.25 КоАП РФ фактически запрещает расчеты в валюте на территории России в обход банков. Вот и все.

    _____________
    * В соответствии с действующим отечественным законодательством (что, кстати, полностью согласуется с общепризнанными принципами и нормами международного права) право собственности включает в себя 3 элемента: владение (фактическое обладание, включая принадлежность депозита), пользование (возможность извлекать из вещи пользу) и распоряжение (возможность определять дальнейшую юридическую судьбу вещи; применительно к деньгам - тратить их). Нет хоть одного из элементов - нет права собственности. Нет права собственности - нет проблем.
    Ответ написан
    Комментировать
  • Объясните разницу и понятия модулей node.js?

    mak_ufo
    @mak_ufo
    1) module - это глобальный объект. Прописывая exports.hello = hello, выполняется module.exports.hello = hello. Соответственно, если вам нужно их модуля экспортировать больше одного модуля, используйте exports.func = func. В противном случае пользуйтесь module.exports = func

    2) как хотите. Но логичнее функции для работы с датой, например, хранить в одном файле, для работы с БД - в другом

    3) функции
    есть у вас файл functions.js:
    const hello = (string) => {return 'Hello ' + string;}
    exports.func = hello;


    Чтобы воспользоваться этой функцией в другой файле выполните:
    const api = require('./functions.js');
    api.func('name');
    Ответ написан
    Комментировать
  • Как попасть в коллектив фрилансеру, при этом заниматься своим делом?

    Chipr
    @Chipr
    UX/UI designer
    Как насчет всяких конференций, фестивалей, хакатоны и прочее. Их по СНГ великое множество. И города посмотрите, и пообщаетесь с интересными людьми, может даже найдете будущего партнера.
    Ответ написан
    4 комментария
  • Можно ли отследить загрузку изображения, установленного через background-image?

    riot26
    @riot26
    <:З )~~
    Можно таким костылём.
    А для чего нужно?
    Ответ написан
    Комментировать
  • Зачем прописывать border-radius для всех браузеров?

    Grigory90
    @Grigory90
    Странный вопрос. Если вам не нужна поддержка старых браузеров то префиксы и не нужны.
    А если нужна то caniuse.com/#feat=border-radius
    Ответ написан
    2 комментария
  • Как обернуть тэгами код в phpstorm?

    pashted
    @pashted
    тыжпрограммист
    8afb701e3ecd40ebaa1a7a7ff6848346.jpg
    1ce4c9b40860494583405ac3e4d40431.jpg
    fc9cabd758a2476ab3e6f681f98a5f13.jpg

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

    обратите внимание на подчеркивания в меню ctrl+alt+j. если нажать на клавиатуре первую букву аббревиатуры шаблона, будет применён конкретный шаблон из списка. так что название выбирайте так, чтобы было удобно нажимать его первую букву.
    Ответ написан
    3 комментария
  • Как собрать статистику скриптом?

    Sanasol
    @Sanasol Куратор тега JavaScript
    нельзя просто так взять и загуглить ошибку
    2. В коде же прям первая переменная идет реферер.
    3. пиксель приёмник, что вы хотите передать и куда обратно?
    4. обход кеша
    Ответ написан
    3 комментария
  • Как коротко прописать условие if( ) чтобы var key не равнялся 2-мя значениям?

    alsopub
    @alsopub
    Что-то типа:
    var allowedKeys = [37, 39];
    
    if (allowedKeys.indexOf(key) === -1) {
      // неприемлемое значение
    }
    Ответ написан
    6 комментариев
  • Как спарсить вот такую json a:4:{s:3:"RUR";s:1:"1";s:3:"UAH";s:3:"2.7";s:3:"USD";s:4:"39.5";s:3:"EUR";s:4:"49.8";}?

    @Kraky
    Это сериализованный массив с данными на php. Чтобы распарсить данную строку вам необходимо вернуть с сервера десериализованный json. Например, обработать так:
    php:
    json_encode(unserialize($string));
    Это будет уже json, которым вы можете пользоваться на клиентской части через js.
    Ответ написан
    Комментировать
  • Нейросети - как можно использовать для квестов?

    @azsx
    Если прекратить верить рекламе, то надо отметить, что нейро сети - это просто один из компьютерных алгоритмов. Нейро программирование крайне не эффективное и очень ресурсоёмкое. Однако, если у вас есть возможность нанимать десятки людей на обучение системы и в ресурсах вы не ограничены, то нейро сети - ваш выбор.
    Теперь Вам не кажется странным, что тексты для доров обычно генерируют иначе?
    Ответ написан
    2 комментария
  • Почему партнерские программы дают меньше 50%?

    m77x
    @m77x
    Консультант
    вот вы сразу поставили два тега: реферальная программа и парнерская программа
    Все смешали вместе. Для того, чтобы понять разницу я вам объясню:
    Партнерская програма - это филиал какого-т сервиса, допустим хостинга. Вы не можете накручивать более 75% от отпускной для вас цены, следовательно ваш максимальны доход составит 25%. Это обусловлено нормами бухгалтерской отчетности пр...
    Реселлерская программа проще - вы покупаете скажем сервер (арендуете) по одной цене и независимо от того, сколько у вас клиентов оплачиваете его сами. А за сколько и и какому количеству клиентов вы продадите часть сервера, - это уже ваша прибыль они может достигать и 2х и 4х - все зависит уже от вас. Но не забывайте подавать налоговую декларацию, если ведете бизнес ))
    Реферальная программа - это вид маркетинговой стратегии для привлечения еще большего количества пользователей. Собственно вместо расходов на рекламу выплачивается вознаграждение реферу. Оптимально затрачивать на рекламу не более 10-15 % от прибыли. От уровня реферальной системы зависит и вознаграждение. Если увидите больше - смело можете проходить мимо - это очередная МММ.
    Ответ написан
    4 комментария
  • Почему передачу arguments делают через apply?

    romy4
    @romy4
    Exception handler
    > Почему передачу arguments делают через apply?
    чтобы поменять контекст для this

    f(a,b) ожидает, а передаёте f(arguments) — это по-вашему правильно?
    f получает (arguments, null) -> return arguments+null;
    что будет?
    Ответ написан
    5 комментариев
  • На каком уровне системный архитектор должен знать технологии?

    Дисклеймер: я не системный архитектор, и даже не знаю, кто конкретно должен так называться, наверное это что-то вроде технического директора.

    Или у меня чрезмерно идеалистические представления о роли архитекторов в разработке?

    Да, чрезмерно. Архитекторы (как вы их называете) не боги и даже не "вторые после бога".

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

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

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

    А надо уметь главное выделять. Ну к примеру, вот позавчера анонсировали докер на винде на нативных контейнерах. Что нужно знать хорошему техническому директору? Что в 2016-й винде есть контейнеры (причём двух видов, настоящие и поверх hyper-v), что докер теперь будет их использовать со всеми вытекающими. Само собой нужно представлять что такое контейнер и чем от отличается от ВМ. Вот и всё что нужно знать, ну и посматривать за отзывами первых, кто осмелится опробовать технологию в деле.

    Ну или вот возьмём TypeScript. Не обязательно писать на нём или знать его досконально. Достаточно понимать, что такое статическая типизация в языке, и уже можно будет представить разницу между использованием в большом проекте ES5/ES6 и TypeScript. Достаточно принять решение опробовать его у себя (как сейчас делаем мы) на небольшом куске проекта, и сделать вывод о дальнейшем использовании.

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

    Техническому директору проекта ("архитектору") гораздо важнее уметь правильно обрабатывать информацию, уметь снимать маркетинговую шелуху (вроде той, что была и есть с NoSQL от всех проблем и несчастий), спокойно реагировать на модные баззворды, и собирать библиотеку доверенных людей и информационных ресурсов. И важно знать о вещах, которые с течением времени не меняются, или меняются медленно и неохотно:
    • для каких задач подходят функциональные языки, а для каких - ОО;
    • что графовая СУБД как правило быстрее обрабатывает запросы на поиск с большой длиной цепочки;
    • что утверждение из предыдущего пункта неплохо бы проверить на практике с конкретными СУБД;
    • что веб-фреймворки бывают толстые и тонкие;
    • какие сегодня есть вариации паттерна MVC;
    • что сборка мусора это всегда накладные расходы и иногда не вполне предсказуемое поведение;
    • что данные от пользователя нужно фильтровать, иначе в вашей системе найдут машину Тьюринга не там, где надо;
    • что в информационной системе есть компоненты с разным уровнем доверия, равно как и сотрудники;
    • что транзакции в СУБД придумали не для того, чтобы учебники стали толще.
    Ответ написан
    4 комментария
  • GroupBy из lodash как выгдядит на js?

    mmmaaak
    @mmmaaak
    в документации к лодашу у каждой функции есть ссылка source, она ведет на гитхаб и по якорю точно покажет реализацию данной функции, не благодари
    Ответ написан
    1 комментарий
  • Что значит последовательный участок памяти?

    @Mercury13
    Программист на «си с крестами» и не только
    Один последовательный участок памяти — это значит «последовательные адреса памяти». Таковыми будут массив простой и динамический, строка традиционного устройства, и все структуры памяти, что на них основаны. В том числе простейший стек и кольцевая очередь.

    Для чего это нужно?
    1. Это ближе к железу: проще код, лучше работает кэш, а значит, быстрее.
    2. Некоторые функции, особенно нешаблонные, для своей работы требуют именно последовательных ячеек памяти.

    Но если я реализую стек через список, разве это не будет противоречить сказанному?

    Совершенно верно, будет. Отсюда и знаменитая ошибка «переполнение стека» — непонятно, как наладить стек вызовов бесконечной ёмкости и относительно простого устройства. Потому, если нужна очень глубокая рекурсия (например, при обходе сетей), стек вызовов приходится эмулировать.
    Ответ написан
    7 комментариев
  • При обработке элемента this с методами jQuery возвращают is not a function?

    Fett
    @Fett
    Разработчик
    Судя по контексту, у Вас ths - HTML DOM Input Text Object, оберните его jQuery
    var self = $(ths);
    Ответ написан
    Комментировать
  • Какие интересные методы или способы авторизации на сайте вы знаете?

    In4in
    @In4in
    °•× JavaScript Developer ^_^ ו°
    Авторизация должна быть не интересной, а удобной и быстрой.
    Добавьте возможность авторизоваться на вашем ресурсе через аккаунты других сервисов (тех же соц. сетей). Этого будет достаточно.

    P.s (ответ по теме): можете за место паролей поставить нечто вроде электронных подписей =)
    Ответ написан
    Комментировать
  • Отказаться от group by и sort by?

    При этом "узким горлышком" производительности веб приложений как правило является именно БД.

    Логично, ведь большинство веб-приложений это выборка с некоторой простой обработкой. А БД не все умеют хорошо спроектировать.
    Имеет ли смысл сортировать и группировать результаты выборки с помощью ЯП, чтобы убрать сортировку и группировку из запросов?

    Это имеет смысл только если у вас вообще нет индексов, и по каким-то непостижимым причинам вы не можете их добавить. Чтобы отсортировать быстрее СУБД, нужно построить индекс самому, а вы вряд ли сделаете это лучше СУБД, еще и так, чтобы покрыть расходы на передачу данных. Группировку имеет смысл только если агрегирующая функция вычислительно очень сложная, но такое вы скорее всего в SQL запросе писать и не будете.

    Даже если у вас sort и group действительно занимают основной процент времени, перенос этих операций в код приложения врядли вам поможет. Иначе говоря, пока вы добьетесь приемлемого результата от такого решения, вы добрую часть алгоритмов СУБД перепишите заново (сначала вы напишите индексы для поиска или сортировку слиянием, потом, как заметил Сергей Савостин у вас всё равно данные не будут влезать в ОЗУ и вы захотите писать их на диск, тут же вашу копию данных в приложении нужно будет синхронизировать и вы начнёте писать примитивную репликацию и так далее..)
    Ответ написан
    Комментировать
  • Случайное добавление в список с проверкой на одинаковые элементы, как это правильно сделать?

    @fireSparrow
    Я правильно понимаю, что вам нужно из имеющегося списка взять случайное количество случайных слов?

    Тогда это можно сделать гораздо проще, без цикла:

    import random
    
    WORDS = ["kot", "maga", "lada", "sobaka"]
    
    rand_num = random.randint(1, len(WORDS))
    new_words = random.sample (WORDS, rand_num) 
    
    print(new_words)


    PS: И кстати, в питоне термин "словарь" имеет особый смысл. Не надо этим словом называть просто последовательность слов.
    Ответ написан
    2 комментария