• Как и чем быстрее всего начать зарабатывать на программировании/веб-программировании?

    @CAMOKPYT
    Забудь про фриланс, сколько бы про него не говорили, это биржа ДЕШЕВОЙ рабочей силы со всеми вытекающими последствиями в виде кидалова, низкой зп, скучной работы, туда идут люди с серьезными проблемами вроде невозможности перебраться в город, социопатии, инвалидности, "утонченная личность", фриланс это почти всегда вынужденная мера. Вообще фриланс и стабильный заработок несовместимые понятия, просто потому что фриланс подразумевает постоянный поиск мелкой работы, никакой заказчик не будет давать большой серьезный проект фрилансеру никогда, потому что это большая ответственность, посмотрите соседние вопросы, пацики с рейтами 150баксов в час работают 10 часов в месяц, а остальное время ищут заказы, причем это люди с опытом и портфолио + отличный английский. Начинать карьеру с фриланса это 100% гарантия того что, все что можно сделать неправильно (техническая сторона), будет сделано неправильно, потому что работает, дедлайн вчера, а подсказать или сделать код ревью некому, никакие книжки тут не помогут, выбора не будет, ты либо читаешь либо работаешь. Так что не советую ввязываться в эту тему. Лучше начать работы в офисе под строгим надзором. Ну и конечно html+css+js это мало, нужно знать еще около программисткие штуки вроде систем контроля версий, багтрекеры, несколько ide/ текстовых редакторов, если это веб почти гарантированно надо иметь представления о http/https, ООП, возможно sql. Не то чтобы для 20к месяц все это нужно отлично знать, но как минимум иметь представление, чтобы не отвлекаться. Вот по фронтэнду. Для большой гарантии устройства на работу, как уже сказали выше, лучше сделать себе сайт, а еще лучше сделать небольшое портфолио и выложить на гитхаб, это сейчас очень модно. На изучения всего вышеперечисленного уйдет 1-2 месяца если сидеть по 8-4 часа в день примерно, свой сайт где-то неделю на разработку визитки и еще неделя на вылизывание, но оно того стоит, а в процессе поиска работы можно и на гитхаб по чуть-чуть кидать, хотя вряд ли получится много. Удачи.
    Ответ написан
    8 комментариев
  • Scrapy: как передать ссылку в функцию, чтобы она ее, в свою очередь, отослала в Selector?

    @WalterWhite
    Не нужно вызывать никакие методы у Request. Scrapy сам вызовет всё что нужно, и когда нужно.
    Паук от страницы может получить данные(Item) или путь(Request) или и то и другое одновременно. Вам нужно возвращать из методов последовательности из Request и/или Item.
    def parse(self. response):
        sel = Selector(response)
        # из стартовой страницы выдёргиваем список категорий (носки, трусы, рубашки...)
        for catalog_link in sel.xpath('// . . . . /@href'):
            # указываем что нужно будет запросить страницу по ссылке, 
            # а результат(Response) обработать в методе
            yield Request(url=catalog_link, callback=self.parse_catalog)
    
    def parse_catalog(self, response):
        # ответы сервера будут сыпаться сюда
        sel = Selector(response)
        
        # если сама категория представляет интерес то описываем её
        category = MyCategoryItem()
        category['name'] = sel.xpath( . . .                     # как называется
        category['count'] =  . . .                              # сколько товаров
        . . .
        # и выбрасываем из метода
        yield category
        
        # получаем список ссылок на конкретные рубашки
        for page_link in sel.xpath('//. . . ./@href'):
            # выбрасываем из метода
            yield Response(url=page_link, callback=self.parse_page)
    
    def parse_page(self, response):
         . . .
         item = MyGoodsItem()
         . . .
         yield item

    Но проще будет прочитать документацию.
    Ответ написан
    1 комментарий
  • Вопрос опытным Python'щикам и Scrapy'рам?

    Используйте GRAb.
    Вопросы какие-то странные у Вас. Все зависит от структуры сайта который парсите.

    Поведение вашего паука зависит только от того куда вы сами его направите.
    В вашем примере нужно написать всего 3 таска:
    1. Парсим категории
    2. Парсим категорию на подкатегории
    3. Парсим данные подкатегории.
    Почему это удобно в 1 файл? Да потому что все это взаимосвязано.
    Запускаем паука, он запускает таск1 и передает категории в таск2.
    Таск2 парсит подкатегории и передает в таск3.

    По поводу скорости, тут все зависит только от сайта который парсите. Мой паук в 200 потоков легко спарсил 5млн страниц менее чем за час.
    Ответ написан
    5 комментариев
  • XPath: как достать текст из тегов?

    mlnkv
    @mlnkv
    JavaScript Developer
    насколько я знаю, Python - серверный язык, и, как я понимаю, вы хотите спарсить страницу?
    Если так, то скорее всего, тега cufontext на момент парсинга не существует, он появляется после того, как страница обработалась в браузере и отработал js.
    В данном примере, попробуйте получить текст тега span с классом lightblue
    Ответ написан
    1 комментарий
  • XPath: получение текста

    @Dracontis
    Java Developer, Django enthusiast
    Попробуйте:

    ul/li/descendant::text()
    Ответ написан
    2 комментария
  • Как во фрилансе правильно рассчитать оплату за заказ?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    У заказчика спросите, во сколько он его оценивает. Или сколько он потратить готов.
    Если не получается - то считайте цену по часам, которые планируете затратить.
    Ответ написан
    3 комментария
  • Как во фрилансе правильно рассчитать оплату за заказ?

    @ELauD
    Be flexible. Назначьте цену, которую хотите + 20 % и скажите, что цену готовы обсудить. Дальше уже будет проще т.к. заказчик возможно Вам предложит цену без этих 20 % и Вы останетесь довольны в конечном счете :) Если проект действительно очень непонятный по срокам, то можно еще накинуть процентов сверху, да хоть + 100 %. Главное вниз цену не убавлять, потому что прибавить потом вряд ли получится, а опустить для Вас не проблема. Конечно, может получится, что заказчик скажет , что Вы загнули цену в разы больше, чем он ожидал и в таком случае придется принимать решение работать с ним или нет
    Ответ написан
    2 комментария
  • Как посчитать число добавленных строк в течении часа (mysql)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    С ходу только UNION из 24 SELECT'ов по часу каждый или предварительное дописывание ежечасной отметки. Но проще в программе переносить данные в обнулённый массив.
    Ответ написан
    1 комментарий
  • Варианты свободных логинов при регистрации. Какой алгоритм?

    @vagrand
    1. Мне кажется, что этот пункт будет при большой базе довольно затратным, особенно если искать так: WHERE login LIKE "%dima%".

    Как по мне лучше сперва создать список предложений, а потом проверить какие из них есть в базе: WHERE login in ('...', '...', ...)
    Ответ написан
    1 комментарий
  • Python Web: Multiprocessing vs Threads. Что лучше использовать для парсинга?

    zxmd
    @zxmd
    Одно хочу сказать про lxml - не используейт его parse с передачей URL в качетве источника. Лучше скачать страницу тем же request и загнать ее в lxml через document_fromstring - много себе нервных клеток сэкономите.
    Ответ написан
    3 комментария
  • Python Web: Multiprocessing vs Threads. Что лучше использовать для парсинга?

    Sardar
    @Sardar
    Можно использовать Scrapy. Вам тогда не придется думать о параллельных процессах, блокировках и IO в целом. Вы просто пишете логику разбора страницы. Сам проект на Twisted.
    Ответ написан
    Комментировать
  • Какие есть хорошие средства для совместной работы над файлами, с которыми можно работать удаленно?

    MikhailD
    @MikhailD
    Developer
    Пользуйтесь любой системой контроля версий, она не только облегчает совместную разработку, но и дает кучу других плюшек, например бекап вашего кода, возможность откатить любые изменения и т.п. Для облегчения слияний разбивайте код на модули и правьте разные модули не зависимо друг от друга.

    https://bitbucket.org/ - бесплатный сервис, позволяет создавать приватные репозитории, поддерживает git и hg.
    Ответ написан
    1 комментарий
  • HTML. Табличное отображение мертво?

    @antimind
    Для второго примера было бы так же удобней и логичней использовать "блочное" отображение. На мой взгляд тут такая логика: если данные имеют более-менее равную ценность (например прайс-лист, где однозначно важно значение поля с наименованием и поля с ценой) - то это делать таблицей, а если какое-то поле в таблице имеет большую ценность (как заголовок вопросов в ваших примерах) - то лучше визуально выделить это значение, а второстепенные значения сделать менее бросающимися в глаза.
    Ответ написан
    4 комментария
  • Вывод средств с odesk/elance?

    RitaPayoneer
    @RitaPayoneer
    Если у вас есть вопросы по Payoneer, пожалуйста, обращайтесь.
    Ответ написан
    7 комментариев
  • Путь фрилансера. Как найти первый заказ?

    buttersmai
    @buttersmai
    Пишу свое мнение про Odesk и Elance, ибо работаю на них.
    1. Насчет "наладить поток заказов"-важно знать, что Вы вкладываете в это понятие. Ситуация "заказчики стучатся сами, а я только выбираю и программирую", как мне кажется, не совсем возможна. Так что готовьтесь, что часть времени Вы будете продавать себя. С другой стороны, если продадите на долгосрочный проект, то счастье Вам обеспечено.

    2. По поводу первых заказов: я брал первый заказ за 5$(за весь проект) и делал его по-максимуму, чтобы у заказчика и в мыслях не было поставить рейтинг ниже 5*.
    Первый отзыв-важный этап. После того, как добились его, начинайте просить более-менее сносные цены. На втором проекте я уже работал по 10$/час.
    Все Ваши рейты потом будут видны в профиле, поэтому чем больше платят сейчас-тем выше Вас ценят потом. Я еще как-то просил одного из первых заказчиков вместо 5 часов по 15$/час посчитать 3 часа по 25$/час(я заранее оговорил, что работы на 5 часов). Сумма для заказчика одна и та же, а у Вас в профиле уже хороший рейт светится и люди видят, что Вам уже платили такие деньги

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

    4. По-моему, Вы зря используете "опытные фрилансеры" и "армия индусов" в одном предложении. Я месяц назад видел заказ, где было английским по-белому написано "only for native Russian speakers", где оставили биды один русский и два индуса.

    Чтобы конкурировать с ними, многие советуют оставлять заявку в числе первых. Для этого стоит организовать работу так, чтобы сразу видеть новые заявки по нужным ключевым словам в одном месте. Я для этого использую lancemonitor.com (возможно, это мини-PR, но я безумно благодарен автору за сэкономленное время). Сервис отправляет проекты по нужным Вам ключевикам на почту по мере их поступления: все собрано в одном месте и позволяет быстро реагировать

    5. Составляйте cover letter грамотно, под каждого заказчика, стараясь показать, что Вы вникли в проект. Можно задать 1-2 вопроса.
    Если на Odesk я первый проект делал за 5$, то на Elance первый был за 18$/час. Так что при хорошем профиле и подаче себя можно и без отзывов получить нормальный первый проект.
    Ответ написан
    Комментировать
  • Как правильно реализовать таблицу БД для создания тегов на сайте?

    HDApache
    @HDApache
    PHP программист
    Вы описали классическую связь многие ко многим через промежуточную таблицу, что тут еще придумаешь? Это и есть best practices... Только не забываем в mysql настроить ограничения foreign keys на промежуточной таблице.
    Ответ написан
    Комментировать
  • Google App Engine: облачная IDE для Python?

    @leclecovich
    GAE не "облачная IDE для Python". GAE - сервис хостинга сайтов и web-приложений. Поддерживается python 2.7 и довольно старая версия django. Для хранения данных есть Cloud SQL и NDB. И то, и другое можно аттачить к джанге.
    Для локальных разработки и дебага отлично подходит PyCharm + GAE SDK.
    Кроме того, не следует забывать, что у GAE есть квоты на трафик. Подумайте, подойдет ли он Вам, или, может быть следует подыскать другой PaaS/VPS-хостинг.
    Ответ написан
    2 комментария
  • Зачем программисту дискретная математика?

    Зависит от того, что вы вкладываете в понятие "программиста". Если, например, кодить сайты на битриксе то незачем.
    Ответ написан
    6 комментариев