• Как и куда платить налог фрилансеры?

    syschel
    @syschel
    freelance/python/django/backend
    В стране проживания и оплачиваете налоги. Плюс есть понятие "налоговый резидент", относящийся к физическому нахождению в конкретной стране конкретный срок. В каждой стране это по своему, но как правило это в районе 6 месяцев.
    Ответ написан
  • Теперь это норма для фриланса?

    syschel
    @syschel
    freelance/python/django/backend
    Начнём с того, что Вы видать сами не поняли. MVP это считайте прототип, а дословно "minimum viable product — минимально жизнеспособный продукт — простейший работающий прототип продукта". То есть тут не требуется высококлассный законченный продукт. Уже есть почти на любом языке фреймворки/программы, которые позволяют создать на своём языке приложение, а потом нажать "сгенерировать под андроит, иос и т.д.". Да, работать они будут хуже чем писалось бы на нативных языках, особенно с логикой. Но ведь тут просят MVP.

    Клиентов которые НЕ программисты, тоже полно. Они могут шапочно знать какие-то "страшные слова", но сами не являясь специалистами в НАШЕЙ сфере, не понимают что пишут. Так же наверно и на медицинском форуме, народ обсуждает "клиентов", которые "пьют слабительное вместе со снотворным, перепутав рецепты". Часто видел клиентов, которые просто по незнанию написали "бред". Либо задачу ставил HR, вообще далёкий от темы и тупо скопировавший "похожие" объявления.

    Ну а клиентов которые хотят всё и сразу, при том за копейки (второй фейсбук за 100 долларов! сам бы сделал, да времени нет, делов на пару вечером), полно. При том за мои ~15 лет фриланса/офиса, это было постоянно. Уже даже не обращаю внимания на них, как на рекламные баннеры взгляд перестал цепляться. По этому ваше "удивление" мне не понятно. Такое было всегда, везде и будет так же всегда и везде. Просто отсеивайте.
    Ответ написан
  • Что лучше подойдет для моего сайта хостинг, сервер?

    syschel
    @syschel
    freelance/python/django/backend
    1. Хостинг - всё настроенно, права урезаны до минимума, одним ПК пользуется куча клиентов, один IP на кучу клиентов.
    2. ВПС(VPS виртуальный сервер) - как правило настраиваешь всё сам, права полные (root), одним ПК пользуется несколько клиентов, выделенный IP только для тебя.
    3. Выделенные машины - как правило настраиваешь всё сам, права полные (root), одним ПК пользуется один человек, выделенный IP только для тебя.

    Хостинг практически любой подойдёт для старта, пока раскрутишься до уровня серьёзной посещаемости, может пройти год или быстрее забросишь (очень мало проектов выстреливает без значимых бюджетов на продвижение). На хостинг размещаешь движок(ЦМС / код) сайта.
    Сами же видео ролики, то есть статичные файлы (видео, фото, музыка) - то что весит много, но не является исполняемым кодом, выносишь на сервисы хранения статики. Там можешь терабайтами хранить и платить только за трафик. Пример Amazom s3, MS azure, feralhosting. .
    ^ Это сейчас самая распространенная практика и выгоднее чем брать сервис который выполняет програмную часть(код сайта) и так же имеет кучу места под статику.
    Ответ написан
  • Как стать специалистом на фрилансе?

    syschel
    @syschel
    freelance/python/django/backend
    Думаю тебе стоит погуглить "Эффект Даннинга — Крюгера".
    sharikov-1.jpg

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

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

    А с чего ты взял, что чужой код, который видел ты, хуже твоего? Возможно он тебе не понятный, да, но не факт что хуже. Я в своё время, когда только начинал, тоже такое думал часто. Сейчас даже стыдно вспоминать то время.

    Самый лучший способ развиваться, это работать в команде. При этом ещё и общаясь с командой, а не просто безмолвно пулить в общий репозитарий.

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

    Вот один из примеров новичка. Обычно у них две крайности: писать всё самому (от ОС до фреймворка); вообще ничего не писать используя сотни готовых решений. У тебя второй вариант, порой решение кроется в 2-3 строчках кода, но новичок качает здоровенную библиотеку или целый фреймворк. При этом не редко бывает, что новичок берёт готовый фреймворк, решение задачи в 2-3 строчках кода в вызове базовых функций этого фреймворка, но нет, он будет искать отдельную библиотеку, так как почитать документацию по фреймворку не его.

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

    syschel
    @syschel
    freelance/python/django/backend
    Один из вариантов, взять модель товаров, сгруппировать их по категориям = список категорий.
    С родителями эту уже строить деревья. Выше ты получаешь все категории у которых есть товары, дальше смотришь есть ли родитель и если есть то лезешь по дереву вверх (если структура изначально не древовидная, а глубина категорий больше 2х).
    Ответ написан
  • Автоудаление, чистка записей в БазеДанных?

    syschel
    @syschel
    freelance/python/django/backend
    у меня 2 таблицы, в рдну я пихаю адреса зарегистрированных пользователей, в другую, адреса тех кто покупает без регистрации. таким образом адрес привязан только к этому заказу, как потом автоматически удалить его из БД? и правильно вообще так делать?

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

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

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

    syschel
    @syschel
    freelance/python/django/backend
    Ищешь уникальное значение (поле) которое есть у всех записей. По нему и сравниваешь. Если в базе есть с таким значением в этом поле запись - обновляем, если нет то создаём. В базе можно даже принудительно сделать данное поле уникальным, что бы ругалось при дублях.

    З.Ы. Не плохо бы указывать и базу данных и тип данных (хотя бы откуда они берутся), для нормального ответа, а не угадывания мыслей..
    Ответ написан
  • Upwork - как грамотно сдать работу и потребовать оплаты?

    syschel
    @syschel
    freelance/python/django/backend
    А какой тип контракта был?
    Если по фиксированной оплате. Тогда нужны условия:
    1) Клиент верифицировал свой паймент (в профиле добавил способ оплаты и подтвердил его работу).
    2) Клиент зарезервировал сумму за контракт или милестоун в апворке (с клиента списалась сумма и лежит на апворке замороженной).
    Если эти условия выполнены. То просто загружаем через апворк работу и жмём "отправить на проверку". Всё, теперь ждём. Отправлять нужно ТОЛЬКО через апворк, а не в скайпе/почте.
    Если почасовая оплата, то должен быть трекер и п1. из предыдущего варианта выполнен. Так же отправляешь работу через апворк на проверку.

    Почитай перед началом гайд(инструкцию) по апворку. Довольно много информации собранно именно фрилансерами, а не оф-правила биржи --> odeskconf.github.io/guide
    Ответ написан
  • Может кто-нибудь, как заказчик посмотреть профиль на Upwork (интересны скрытые отзывы если они есть)?

    syschel
    @syschel
    freelance/python/django/backend
    Нет скрытого отзыва, это миф. Вернее не так перевели/поняли. Клиент оставляя отзыв (который все видят) имеет ещё и вариант оценить "звёздочками" до 5, которые тоже все видят.
    А вот то, что многие называют "скрытый отзыв" который влияет на JSS. Это вопрос "Какова вероятность что вы порекомендуете этого фрилансера" и шкала от 1 до 10.

    З.Ы. Приватный профиль, означает что он просто скрыт от не зарегистрированных пользователей сайта. Не важно какой тип профиля.
    Ответ написан
  • Как можно формировать pdf документы на Django?

    syschel
    @syschel
    freelance/python/django/backend
    Мой пример функции генерации PDF на основании передачи html шаблона и контекста(данные из базы данных).
    xhtml2pdf
    from django.http import HttpResponse
    from django.template.loader import get_template
    from django.template import Context
    import cStringIO as StringIO
    import xhtml2pdf.pisa as pisa
    
    def render_to_pdf(template_src, context_dict, filename='contract.pdf'):
        """ Отдаю PDF файл """
        template = get_template(template_src)
        context = Context(context_dict)
        html = template.render(context)
        result = StringIO.StringIO()
        pdf = pisa.pisaDocument(
            StringIO.StringIO(html.encode('utf-8')),
            result,
            encoding='UTF-8',
            show_error_as_pdf=True
        )
        if not pdf.err:
            response = HttpResponse(result.getvalue(), content_type='application/pdf')
            response['Content-Disposition'] = 'attachment; filename=%s' % filename
            return response
        return HttpResponse(u'We had some errors!')
    
    def contract_text(request):
        text = ContractText.objects.filter(user=request.user)
        return render_to_pdf('pfd_template.html', {'text': text}, 'new_contract.pdf')
    Ответ написан
  • Как избавиться от дублирования информации в django?

    syschel
    @syschel
    freelance/python/django/backend
    Если все книги подвязаны к сериям, а все серии уникальны (нет дублей). То нужно выводить именно серии. А уже в темплайте(шаблоне) подциклом выводить книги данной серии.
    Ответ написан
  • В кого переквалифицироваться из программиста?

    syschel
    @syschel
    freelance/python/django/backend
    У меня было подобное. Когда делал штамповку и мелочёвку. Стоило перейти на более высокий уровень, с разработкой от полугода. Сразу всё пропало. Попробуйте сменить тип проектов(заказов).
    Ответ написан
  • В какой директории может лежать проект на Django?

    syschel
    @syschel
    freelance/python/django/backend
    Да уж, советчики.

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

    апач лежит тут
    /etc/apache2/
    а нджинкс тут
    /etc/nginx/
    Смотришь конфиги, как увидишь упоминание домена, ищи строки с путями. Они и будут указывать туда где лежит сайт.
    Ответ написан
  • Вопрос по запуску Django сайта на сервере?

    syschel
    @syschel
    freelance/python/django/backend
    leha78: Я обычно окружение конкретного проекта кладу рядом с проектом, но не в саму папку проекта
    - sites
     + project_name_one
        - env (тут окружение)
        - tmp
        - logs
        - source (тут весь код)
      + project_name_two
        - env (тут окружение)
        - tmp
        - logs
        - source (тут весь код)

    И в репозитарий и на вэб-сервер я переношу только папку source, хотя структуру и создаю однотипную. Окружение, логи, временные файлы создаю на сервере с нуля под каждый проект.
    Ответ написан
  • Есть ли сервис like: github + freelance?

    syschel
    @syschel
    freelance/python/django/backend
    Есть сервисы. Была статья на хабре и тут не раз давали ссылки. Только там не "как привлечь разрабов", а "как заработать". Ссылки уже не помню.
    Ответ написан
  • Можно ли вставлять ссылку на разработчика?

    syschel
    @syschel
    freelance/python/django/backend
    Ссылка на себя - это реклама. Реклама это привлечение дополнительного дохода. А привлечение дохода стоит денег. По этому ссылка входит в стоимость разработки.

    Условно говоря, сайт создать стоит 10 000 рублей. Ставим ссылку. Которая возможно принесёт ещё заказы, так же вешаем сайт в своё портфолио, что тоже принесёт заказы.
    Если клиент не хочет ссылку, то добавляем в стоимость 10-20% от базовой цены. Тогда уже сайт без ссылки будет стоить 12 000р. Сайт, который заказчик захочет не светить в твоём портфолио, тоже стоит дороже, на те же самые 10-20%. То есть сайт без ссылки и не показанный в портфолио, уже стоит 14 000р. Потому что ты, недополучишь прибыли, которую ты закладываешь в цену разработки с учётом своей рекламы (ссылка + портфолио).

    Все крупные веб студии это отдельно оговаривают в договорах. Что ссылка там обязана быть и в портфолио они имеет право размещать. И клиент, по договору. без согласия студии, не имеет права удалять ссылку. За удаление он обязан заплатить.
    Ответ написан
  • Какова вероятность получить проект на upwork'e с таким стэком?

    syschel
    @syschel
    freelance/python/django/backend
    1. Заходим на апворк и смотрим. https://www.upwork.com/o/jobs/browse/?q=laravel
    2. Заходим на апворк и смотрим https://www.upwork.com/o/jobs/browse/?q=laravel+backend
    3. Как договоритесь изначально или по факту. Главное, отобразить движение "сдачу" в самом апворке.
    4. Как договоритесь изначально или по факту.
    Ответ написан
  • Как добавить кастомное поле в админку Django?

    syschel
    @syschel
    freelance/python/django/backend
    ModelAdmin.list_display

    class CommentAdmin(admin.ModelAdmin):
        list_display = ('news__title')

    или своей функцией
    class CommentAdmin(admin.ModelAdmin):
        list_display = ('news_title_fnc')
    
        def news_title_fnc(self, obj):
            return obj.news.title
    Ответ написан
  • Имеет ли смысл backend игрового сервера на python?

    syschel
    @syschel
    freelance/python/django/backend
    Ну всем известная WOT от Wargaming использует много Python.

    Вот их канал на ютубе Wargaming CIS, очень много питона.
    Ответ написан