• Каковы максимальные рейты на Toptal?

    neatsoft
    @neatsoft
    Дмитрий Евграфович, почему размер торговой наценки составляет около 25%? Рынок. Более низкие ставки не позволяют покрывать издержки, более высокие приводят к падению оборота. То же самое касается и агентств. 30% забирают продажники, от 40 до 60 процентов идет на сопровождение проекта, покрытие рисков, и прибыль агентства, от 10 до 30 процентов получает исполнитель. Фактический размер комиссии агентства исполнителю, как правило, неизвестен.
    Toptal обладает всеми признаками агентства - они старательно скрывают финансовые договоренности с заказчиками от исполнителей, запрещают исполнителям обсуждать условия работы, и всегда подчеркивают что исполнителей нанимает сам топтал, а не заказчики. Самое гадкое, что при обсуждении ставок они всегда сравнивают их с зарплатами "в вашем суходрищенске", при том что фриланс и удаленка - это глобальный рынок, и местонахождение, чаще всего, никакого значения не имеет.

    Многие заблуждаются, считая Toptal чем-то вроде Upwork, но круче. Это совершенно не так. Toptal - это обычный аутстаф. Если комплексов или проблем с коммуникацией нет, связываться с подобными барыгами не стоит.
  • Могут ли два разных пользователя Linux иметь одну и ту же домашнюю папку?

    neatsoft
    @neatsoft
    Два разных пользователя Linux могут иметь "одну и ту же домашнюю папку" если они братья/сестры.
    Папки (folders) - в винде. В линуксе каталоги/директории (directories).
  • Чем отличается бесплатный ssl сертификат от платного?

    neatsoft
    @neatsoft
    xmoonlight: "А вот про доверие к ресурсу, у Вас - ни слова" - лучше создать отдельный вопрос, это будет гораздо эффективнее.
    Комментарии мало кто читает просто так, а уведомления приходят только тем, кто ранее отметился в этой ветке.
  • Чем отличается бесплатный ssl сертификат от платного?

    neatsoft
    @neatsoft
    xmoonlight: https://myaccount.payoneer.com/ - через этот сайт регулярно проходят миллионы долларов, сертификат обычный, domain validated. Достаточно убедительный довод что EV вам не нужен?
  • Где найти сайт с арендой большого диск. пространства и абузоустойчивостью?

    neatsoft
    @neatsoft
    Понятно что облачные сервисы Amazon (и аналоги, типа Azure) в некоторых случаях могут быть довольно удобным решением (если проект совсем небольшой или если бюджет на хостинг не имеет особого значения), но как это сочетается с абузоустойчивостью?
  • Где найти сайт с арендой большого диск. пространства и абузоустойчивостью?

    neatsoft
    @neatsoft
    Wtapd: чтобы понять сколько это будет стоить, нужно знать пиковую нагрузку в секунду (requests-per-seconds + bandwidth) и сколько запросов в секунду ваш бэкенд переваривает на каком-то эталонном железе. Именно пиковой нагрузкой определяются требования к каналу и производительности сервера.

    Главная проблема абузоустойчивых сервисов - чаще всего они располагаются в экзотических датацентрах, в которых и цены существенно выше, и поддержка не на высоте. В то же время в "белом" интернете есть провайдеры, у которых значительный запас пропускной способности, и они предлагают очень вкусные цены на серверы с емкими накопителями, широким каналом, и неограниченным трафиком. На online.net, например, хостится meduza.io ( https://www.youtube.com/watch?v=S4thMW8GgEY ), обслуживание 5 миллионов читателей и 100 терабайт трафика обходится им менее чем в $500 в месяц. Они используют несколько серверов и dns round robin для распределения нагрузки между ними. В вашей ситуации, по понятным причинам, такой вариант не сработает - французы категорически против любого сомнительного контента, аккаунт довольно быстро заблокируют. Но если не светить "голым задом" в интернет, а использовать сервер исключительно для хранения данных и размещения бекэнда, то никаких проблем не возникнет. Чтобы сделать этот сервер доступным для конечных пользователей, потребуется один или несколько абузоустойчивых серверов (в зависимости от того, какой из вариантов окажется выгоднее) для размещения reverse proxy на базе nginx. Все входящие запросы эти сервера без обработки будут перенаправлять на скрытый сервер, и точно так же возвращать ответы. Объем дискового пространства, количество IOPS, объем оперативной памяти, и производительность процессора (в разумных пределах) для этих серверов абсолютно не важны - можно брать самые дешевые, лишь бы хватало пропускной способности канала (которая будет складываться при использовании нескольких серверов), и предельного объема трафика. Суммарная стоимость этого зоопарка будет существенно ниже емкого и производительного абузоустойчивого сервера, а надежность - выше.

    Конфигурация nginx в режиме reverse proxy - всего несколько простых и понятных строк ( https://www.nginx.com/resources/admin-guide/revers... ), запрет входящих соединений на скрытом сервере от любых ip кроме reverse proxy - элементарная задача ( ufw allow ssh && ufw allow from xxx.xxx.xxx.xxx && ufw enable ).

    TL;DR

    user <-> reverse_proxy_server <-> hidden_server

    reverse_proxy_server - маломощный но абузоустойчивый
    hidden_server - емкий, производительный, дешевый, но не абузоустойчивый
  • Какой выбрать VPN?

    neatsoft
    @neatsoft
    Erelecano Oioraen: "что я делаю не так" - не предпринимаете попыток использовать Hulu по прямому назначению - www.hulu.com/embed.html?eid=frNjGcFvaEyoh-FohBnGDQ
  • Какой выбрать VPN?

    neatsoft
    @neatsoft
    Erelecano Oioraen: проблема в том, что за эти $5 будет доступен всего один IP, который на многих крупных сайтах отмечен как прокси и заблокирован (спасибо за это любителям использовать VPS-ки для скрэпинга). VPS это более универсальное решение (т.к. его и для хостинга можно использовать), но менее пригодное для "открытия всех сайтов" чем классические VPN сервисы - нет возможности выбрать страну, нет возможности сменить IP, если он оказался заблокирован. Хулу через DigitalOcean или OVH доступен не будет (как и многие другие сайты), а через хороший VPN (типа expressvpn) отлично работает.
    Человек спросил где купить холодильник, а вы посоветовали ему купить мебельных щитов, собрать из них ящик, и выставить на мороз. Не у всех есть желание собирать ящики, не везде подходящая температура на улице, не для всех продуктов этот вариант подходит. В большинстве случаев нужно просто сходить в магазин, купить холодильник, и забыть о проблеме. Хотя собирать ящики это круто, интересно, и весело.
    Это не наезд, а обсуждение недостатков предложенного вами решения. Заглянул в ваш профиль - думаю нам интересно было бы пообщаться, много общих интересов. Но в данном случае вы не правы.
    Свой вариант ответа не предлагаю, т.к. опыта работы с недорогими VPN у меня нет - пользуюсь качественными.
    ps. DigitalOcean - помойка, для реальных проектов лучше использовать Linode. Не будет проблем с почтой (у DO почти весь адресный диапазон в антиспам фильтрах), реализована возможность более гибкой настройки, качественная поддержка. У OVH все что касается регистрации, биллинга, и оплаты - прошлый век. Но многие компании/клиенты вообще ничего кроме амазона не рассматривают, т.к. стоимость хостинга это в большинстве случаев незначительная часть расходов.
  • Какой выбрать VPN?

    neatsoft
    @neatsoft
    Hulu через ваш "сам себе впн-провайдер" можно будет смотреть? Это я не к тому что VPS это плохо (во многих случаях он лучше подходит), а к тому что условие "открывались все сайты" выполняться не будет.
  • Поиск заказов. Как вы находите что-то достойное?

    neatsoft
    @neatsoft
    "серьезная биржа Toptal" - это обычный агент: половину выручки они оставляют себе, работать нужно в команде клиента. Их главная задача побольше взять с заказчика, и поменьше заплатить фрилансеру. Реальные расценки - секрет (который совсем не секрет если у вас есть знакомые и среди работников, и среди заказчиков). Очень низкий потолок для разработчиков из России (который не зависит от знаний и опыта). При этом у них конская комиссия за переход на работу к клиенту - $30000 (для сравнения, в Upwork opt-out fee составляет $2500). Если есть амбиции - лучше использовать для поиска заказов upwork.com или freelancer.com. При должном упорстве достаточно быстро появятся и постоянные заказчики, и серьезные проекты.
  • Поиск заказов. Как вы находите что-то достойное?

    neatsoft
    @neatsoft
    Добавь скайп в свой профиль - скину контакты серьезного клиента. Нужен фронтендер со знанием React.
  • Как получить данные с Wii Balance Board?

    neatsoft
    @neatsoft
    если требование Visual Studio не строгое, вот описание решения, которое отлично работает - https://www.stavros.io/posts/your-weight-online/
  • Как получить всех людей начинающихся с перечня букв?

    neatsoft
    @neatsoft
    WebDeveloper2016: active - пример дополнительного условия, предполагается что у модели есть поле с таким именем
  • Как получить всех людей начинающихся с перечня букв?

    neatsoft
    @neatsoft
    Макс Полетаев:
    Мне решение с regexp тоже нравится своей лаконичностью, но нужно понимать границы его применимости. На больших таблицах запрос с десятком лайков на проиндексированном поле выполняется моментально, regexp - с ощутимой задержкой:

    like * 10:
    20746 строк - '0:00:00.016564'
    77826 строк - '0:00:00.014466'
    363406 строк - '0:00:00.015869'

    regexp:
    20746 строк - '0:00:00.072798' (в 4 раза медленнее)
    77826 строк - '0:00:00.154604' (в 10 раз)
    363406 строк - '0:00:00.656853' (в 40 раз)

    сервер - E5-2670 v2, 32GB
    таблицы - InnoDB, с реальными данными

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

    neatsoft
    @neatsoft
    Roman Kitaev:
    - в соответствии с PEP 8 оба способа импорта являются равнозначными - https://www.python.org/dev/peps/pep-0008/#imports , но в python 2 "from functools import reduce" приведет к переопределению встроенной функции reduce, поэтому в данном случае "import functools" является предпочтительным способом (functools.reduce и просто reduce - разные функции)
    - фильтрация результатов - типичная задача, пустой фильтр - типичная ситуация, граничные значения нужно проверять всегда
    - у "и пошёл дальше фильтры навешивать" есть название - модификация QuerySet
    - за конструкции типа "lambda x,y: (isinstance(x, Q) and x or Q(name__istartswith=x)) | Q(name__istartswith=y)," нужно бить по рукам, т.к. это уродливо и нечитаемо
    Не жалко тратить время на разведение срача в комментах и попытки поучения более опытных коллег?
  • Как получить всех людей начинающихся с перечня букв?

    neatsoft
    @neatsoft
    Во многих ситуациях regex незаменим, но в данном случае он может привести к существенному падению производительности. При использовании postgresql запрос будет выполняться вдвое медленнее, при использовании mysql - в разы (т.к. mysql не умеет использовать индексы для оптимизации regex). Если таблица небольшая, этим можно пренебречь, но лучше использовать более универсальное решение.
  • Как получить всех людей начинающихся с перечня букв?

    neatsoft
    @neatsoft
    оба примера вызовут исключение при letters = ''
  • Как получить всех людей начинающихся с перечня букв?

    neatsoft
    @neatsoft
    Гвидо ван Россум исключил функцию reduce из стандартной библиотеки более 10 лет назад - www.artima.com/weblogs/viewpost.jsp?thread=98196 , вместо нее необходимо использовать functools.reduce
  • Как получить всех людей начинающихся с перечня букв?

    neatsoft
    @neatsoft
    WebDeveloper2016: пример запроса, который формирует ORM:
    >>> print Item.objects.exclude(active=False).filter(reduce(operator.or_, (Q(name__istartswith=l) for l in 'abc')))[40:60].query
    SELECT `appname_item`.`id`, `appname_item`.`name`, `appname_item`.`slug`, `appname_item`.`image`, `appname_item`.`active` FROM `appname_item` WHERE (NOT (`appname_item`.`active` = False) AND (`appname_item`.`name` LIKE a% OR `appname_item`.`name` LIKE b% OR `appname_item`.`name` LIKE c%)) ORDER BY `appname_item`.`name` ASC LIMIT 20 OFFSET 40
  • Как получить всех людей начинающихся с перечня букв?

    neatsoft
    @neatsoft
    Roman Kitaev: 1. в актуальной версии python нет функции reduce, вместо нее нужно использовать functools.reduce; 2. если список букв пуст, то reduce вызовет исключение, поэтому требуется дополнительная проверка; 3. автора вопроса интересовало как можно задать дополнительные условия, в моем ответе эта тема раскрыта.