• Как контролировать работу удаленного программиста?

    customtema
    @customtema
    arint.ru
    Для начала, не надо было пытаться так экономить. Судя по тому, что на решение задачи тратятся месяцы - вы искали самого дешевого программиста, и с вами согласился сотрудничать новичок. Он сейчас скорее всего жалеет о том, что с вами связался. Простите, но вы сами виноваты. Семь шапок из одной овцы не выкроишь никак.

    Любая задача решается не более, чем за одну неделю. Подавляющее большинство программ выпускаются в бету за 2-3 месяца. Если дольше - нужно бить тревогу. Или неправильное планирование, или проблемы в команде.

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

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

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

    С консультациями, как с сексом. Хотите, чтобы было качественно? Тогда нужно хорошо подготовиться. И вести себя прилично. Всегда. Хотите хорошие ответы? Продумайте свои вопросы.

    В состоянии потока любая хрень может отвлечь и нарушить рабочее состояние. Особенно - вопросы. Особенно - глупые вопросы. Глупые не с вашей точки зрения, а с точки зрения разработчика. Программист работает циклами по 2-4 часа. Если нарушить цикл (например, задав глупый вопрос или позвонив по телефону) - теряется ПОЛОВИНА ДНЯ.

    Поэтому мое второе замечание - проверьте, а не мешаете ли вы ему работать?
    Ответ написан
    3 комментария
  • Как вы используете git при разработке в одиночку?

    Adamos
    @Adamos
    Для себя одного git, как мне кажется, нужен только как "машина времени" и "обратный роадмап".
    То есть, чтобы иметь возможность посмотреть более ранний вариант кода и чтобы в потоке коммитов найти, когда были какие-то конкретные изменения.
    По большому счету, ничего, кроме коммитов в мастер, тут и не требуется. Разве что желательны мелкие коммиты с осмысленным написанием изменений, а не куски того, о чем сам не вспомнишь через неделю.
    Ответ написан
    6 комментариев
  • Какая программа делает авто-скриншот экрана программиста?

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

    Оплачивать нужно сданную в срок работу, а не время ее выполнения, даже если 51% времени программист не занимался кодированием непосредственно, он мог обдумывать задачу "на фоне".
    Ответ написан
    8 комментариев
  • Как реализовать sphinx поиск товаров с динамическим курсом валют?

    Добрый день.
    Можете реализовать так:
    1. В индекс занесите только цену в исходной единице и поле отвечающие за тип валюты.
    2. В запрос к сфинксу передаём текущий курс:
    SELECT 
     (IF(PriceFlag=0,Price*cursDol,IF(PriceFlag=1,Price*cursUE,Price))) AS PriceRub
    FROM Index
    ORDER BY PriceRub


    Или можно создавать глобальную переменную сервера(а точнее для каждой валюты)
    SET [INDEX index_name] GLOBAL @user_variable_name = (int_val1 [, int_val2, ...])
    И в запросе его использовать:
    (Это происходит раз в 10 минут)
    SET GLOBAL @cursDol=50
    SET GLOBAL @cursUE=70
    
    --Запрос
    SELECT 
     (IF(PriceFlag=0,Price*@cursDol,IF(PriceFlag=1,Price*@cursUE,Price))) AS PriceRub
    FROM Index
    ORDER BY PriceRub
    Ответ написан
    Комментировать
  • К чему привязаться при создании базы городов?

    ruskar
    @ruskar
    Conflict Intelligence Team
    Дополню ответ rasstroen. КЛАДР уже давно ушёл в прошлое и вместо него появился более адекватный, полный ФИАС. В нём вам нужна таблица ADDROBJ. Имеющие для вас значения поля в этой таблице:
    AOGUID — уникальный идентификатор объекта в БД
    PARENTGUID — уникальный идентификатор родительского объекта (т.е. AOGUID региона, области)
    AOLEVEL — уровень объекта по иерархии, в соответствии с документацией. Вам нужен AOLEVEL = 4 — это города. Но учтите, что Москва и Питер имеют AOLEVEL = 1, ибо это города-субъекты РФ.
    REGIONCODE — код региона (не соответствует автомобильному, учтите)
    ACTSTATUS — отбирайте только записи со значением actstatus = 1. Все прочие — уже недействующие записи, сохранены в базе для истории изменений.

    Также можете взять таблицу SOCRBASE — там расшифровки сокращений, используемых в базе (г — город, пгт — посёлок городского типа и т.д.)
    Ответ написан
    5 комментариев