• Как лучше поступить с посредником?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    У Вас договор с посредником, проблемы его общения с первоначальным заказчиком и кинувшим его исполнителем Вас не касаются.
    При стандартных отношениях я бы приостановил работу до тех пор, пока не заплатят, а в дальнейшем не передавал бы готовый продукт до 100% оплаты, иначе слишком велик шанс что просто попытаются кинуть. Если не оплатят первый этап, лучше вообще не связываться с этой работой.
    С точки зрения конечного заказчика - если бы конечный исполнитель (или человек, представившийся им) попытался выйти на меня напрямую - просто послал бы, скорее всего. Работа с отдельными физлицами для компании часто намного сложнее и менее выгодна, чем заключение договора с юрлицом.
    Также отмечу, что очень подозрительный посредник, который не может выплатить 10к за первый этап выполненных работ, не такие это большие деньги для компании.
    Ответ написан
    1 комментарий
  • По DHCP раздается не та подсеть. Как решить проблему?

    semenenko88
    @semenenko88
    Системный администратор
    Да, если кто-то воткнул в вашу сеть свой dhcp, то так и будет.

    Клиент при включении отправляет широковещательный запрос, кто здесь dhcp сервер. Вот чей сервер первей ответит, тот и раздаст этому клиенту адреса.
    Ответ написан
    Комментировать
  • Сколько стоит час веб-разработчика-фрилансера?

    @deliro
    Ты веcь такой кругом молодец, то знаешь, это знаешь. А теперь представь себе среднестатистический проект, который должен приносить бизнесу деньги. За две недели работы ты едва напишешь хлипкий CRUD для данных, неправильно смаппив бизнес-сущности в объекты ORM, ещё через месяц натянешь какой-то слайдер на jQ, попутно захватив 2мб JS кривых библиотек, а через два заказчик поставит тебе плохую оценку, потому что твой ценник он оплатил не за то, что ему нужно, а потому что ты знаешь монады, которые ему даром не сдались.

    А теперь давай представим простого программиста. Из алгоритмов он с трудом вспоминает сортировку пузырьком, а двусвязный список — предел его знаний о структурах данных, и даже этим списком он пользовался два раза в жизни. Хаскель он никогда не видел в глаза, C++ учил только в школе, вместо этого пишет неэффективный код на PHP. И у него есть опыт. За день он распишет сущности, за второй сделает универсальный CRUD, на третий день поднимет фронт на React'е с SSR. Да, внутренности проекта будут "медленными". Вместо O(logN) что-то будет выполняться за O(N) или даже O(N^2), но всем похер. Пока всё работает на приемлемом уровне — бизнес радуется.

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

    * Оптимальный баланс между говнокодом и идеальным кодом
    * Оптимальный баланс между скоростью разработки и оптимизацией кода
    * Оптимальный баланс между поддерживаемым кодом и костылями
    * Умение использовать те инструменты, с которыми ты работаешь. Опять же, для того, чтобы писать быстро, при этом имея минимальное количество говнокода и обеспечивая максимальную поддерживаемость (в пределах сроков). Например, можешь выкинуть в помойку свой Vim, как бы круто ты себя не чувствовал, разрабатывая в консольном редакторе, если продукты от JetBrains позволят за это же время сделать что-то лучше или чего-то больше
    * Чувство "знаю больше менеджеров". Это то чувство, когда тебе кажется, что "вот эта фича скоро изменится" и надо сделать архитектуру заранее более гибкой. Или "вот эту фичу мы через месяц выпилим" и не надо тратить на неё силы — напиши костыль и через месяц с чистой совестью удали его
    * Знания, как сделать ту или иную фичу. Потому что фичи повторяются (немного видоизменяясь) от проекта к проекту. И если ты сделал что-то за два дня, в следующий раз ты похожее сделаешь за три часа

    Что касается инструментов, выбери любой полноценный фреймворк, который умеет решать 90%+ потребностей "из коробки": Symfony, Django, Laravel

    Всякие "минималистичные" поделия вроде Falcon, Flask (в PHP не знаю, я на питоне пишу) оставь хипстерам. Пусть они говорят: "Мой фалкон такой быстрый, он написан на Cython". Тебя это не должно волновать, потому что бизнес с твоей скоростью разработки уже заработал достаточно денег, чтобы купить ещё десять серверов, пока фалконисты неделю гуглили, как прикрутить миграциии и запустить юнит-тесты на VPSке за пять баксов.
    Ответ написан
    5 комментариев
  • Есть ли фриланс по анализу данных?

    svob
    @svob
    Фрилансер, текстовик широкого профиля
    Есть, но я бы не сказала, что много. И нужно как-то подтверждать квалификацию. Иначе вам предложат только место помощника вроде клавиатурной обезьяны. Типа не анализировать данные, а лазить собирать...
    Вы бы лучше по фриланс-сайтам и полазили, чем тут спрашивать. Кстати, навыки анализа как раз пригодятся. Смотрите два направления:
    1. Лента проектов. Очень часто выполненный проект не закрывается, а так и продолжает висеть. То есть вы можете отматывать ленту и на месяц, и на полгода... И смотреть, кого там ищут.
    2. Каталог фрилансеров. Выбираете интересующее вас направление, смотрите, какие у аналитиков навыки, как они опсываются, за что этих людей благодарят в отзывах. И чего лежит в их портфолио.

    Профит.
    Ответ написан
    Комментировать
  • Почему кол-во запущенных процессов в htop, pgrep, ps разнится?

    @neol
    htop показывает не процессы, а потоки ( F2 - Display Options - Hide userland process threads )
    pgrep по умолчанию ищет в имени процесса, а не в пути к бинарнику (pgrep -f firefox будет искать в пути), а ps выводит как-раз пути

    Раз в сутки я удаляю подвисшие процессы с помощью pgrep firefox | xargs kill -9

    Ну… У всех свои недостатки.
    Ответ написан
    4 комментария
  • В чём преимущества и недостатки установок через apt и snap?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Нужно понимать принципиальную разницу подхода:

    apt - установка из маленьких пакетов, вместе образующих большую и сложную систему, при этом софт может массово совместно использовать одни и те же файлы и библиотеки, благодаря чему экономится место на диске, оперативная память итд итп. Надо понимать, что apt - это пакетный менеджер для определённого вида пакетов (deb), хотя в своё время существовал вариант для rpm (может и сейчас существует, просто смысла в нём мало после появления yum).

    snap - установка большого приложения со всеми зависимостями, которые никак не использует остальной софт на этом же компьютере. Отсюда тратится лишнее место на диске и в оперативной памяти. Зато никаких проблем с зависимостями, плюс snap работает в любых системах и не завязан на конкретный менеджер пакетов и собственно пакетный формат.

    snap по большому счёту часто используют для установки тяжёлых приложений, которые может бысть сложно опакетить, особенно учитывая разнообразие присутствующих в мире дистрибутивов (debian/ubuntu и их клоны) разных версий. В то время как большинство штатного общеиспользуемого софта чаще распространяют в виде пакетов, идущих в составе дистрибутива или отдельно (в том числе в виде разных собранных под разные варианты систем пакетов).
    Ответ написан
    7 комментариев
  • Docker. Docker-compose. Запуск через cron. Как?

    Fernus
    @Fernus Автор вопроса
    Техник - Механик :)
    В общем победил...

    Дело было во флаге -T к команде docker-compose exec

    Для чего этот флаг читаем документацию.

    В итоге команда такая:
    */5 * * * * cd /home/USER/ && /usr/local/bin/docker-compose -f prod-compose.yml exec -T mariadb /usr/bin/mysqldump -u USER -pPASSWORD --single-transaction DB_NAME | gzip > /home/USER/BACKUP/DB.sql.tar.gz


    P.S.: Переход через cd обязателен...иначе не поедет...в случае, если в compose.yml пути везде относительные...а обычно так и есть...
    Ответ написан
    Комментировать
  • Как вы решаете ситуацию, если неправильно оценили стоимость проекта и поняли это уже по ходу?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Никак не решал, если я уже подписался сделать по некоторой цене, приходилось делать.
    Ответ написан
    Комментировать
  • Как сделать сортировку таблицы mysql?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Один из возможных вариантов:
    select 
    	* ,
    	case 
    		when role = 'boss' then 3
    		when role = 'admin' then 2
    		else 1
    	end as weight
    from gamers order by weight desc;


    MySQL fiddle

    или так:
    select * 
    from gamers 
    order by role = 'boss' desc, role = 'admin' desc;


    MariaDB fiddle
    Ответ написан
    Комментировать
  • Существует ли тенденция на неадекватные требования на позиции Automation QA?

    inoise
    @inoise Куратор тега Карьера в IT
    Solution Architect, AWS Certified, Serverless
    Это везде проблема где бизнес не имеет компетенции и ищет сотрудников. Это нормально
    Ответ написан
    Комментировать
  • Как правильно расчитать стоимость своего часа работы?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    По поводу стоимости часа поддерживаю 2 подхода выше:
    1. Изучить рынок, посмотреть ставки людей со схожими знаниями
    2. Поделить полную стоимость проекта на количество затраченных часов

    По поводу мелких задач. Я, например, никому не навязываю минимальный объём работ. Если задача реально мелкая и с клиентом хорошие отношения, то могу сделать бесплатно. Если мне пришлось ради этого сильно отвлечься, то могу округлить до 10-20 минут. Заказчику об этом не сообщаю. Просто говорю, что на выполнение задачи ушло столько времени. Мне кажется, заказчику приятнее думать, что вы работали 20 минут, чем знать, что вы работали 3 минуты и накинули 17.
    Ответ написан
    2 комментария
  • Как правильно расчитать стоимость своего часа работы?

    opium
    @opium
    Просто люблю качественно работать
    Рассчитать стоимость часа логично поделив стоимость проекта на количество потерянных часов, благо у вас есть оттуда данные взять

    Все мелкие задачи делать скопом раз в сутки если много или раз в неделю если свои

    Если человек хочет адхок решения то минимальный биллинг для этого у меня полчаса, плюс есть обязательная часть за то что я доступен. То есть скажем в месяц 200 баксов, и полчаса за каждую мелочь решению сразу то есть 15 баксов например, если час стоит 30. Если считать две минуты и отрыв из потока, и заказчик не согласен, я его всегда отправлять поискать человека который готов в любую минуту поднять жопу и потратить минуту времени на него.
    Ответ написан
    Комментировать
  • Какой жёсткий диск выбрать?

    opium
    @opium
    Просто люблю качественно работать
    1 ни о какой надёжности в разрезе одного живём идти речь не может, если говорить о надёжности надо иметь три резервные копии, в разных независимых местах
    2 все диски хдд примерно одинаково быстрые сейчас выдают около 200 мегабайт
    3 почитайте вики
    Ответ написан
    4 комментария
  • Docker как передать файлы с пк на docker через -v?

    ayazer
    @ayazer
    Sr. Software Engineer
    -v просто маунтит папку (а не копирует данные) с хоста в докер. судя по тому что я вижу - такая папка в докере существует, потому примаунтить не выйдет

    можете сделать /internalDB:/data/internalDB и потом просто скопировать куда надо
    Ответ написан
  • Как изолировать несколько сайтов без Docker?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Разнести по каталогам с разными владельцами и настроить разных пользователей у PHP-пулов. Вы, в общем-то, почти всё сами описали :)
    Ответ написан
    Комментировать
  • Как выжить джуну фронтенду в маленьком городке, при том что переезжать будешь не скоро?

    @aleks-th
    Удаленно работать - Можно.
    Дальше - Все зависит от вас.
    ---
    Брать задачи и делать их.
    Фриланс - любой популярный они все одинаковы плюс минус.
    После 100 выполненных заданий будешь точно знать в какую сторону интереснее развиваться.
    ---
    Ну или на работу удаленную устроится, чуть сложнее но тоже можно.
    Опять же все будет зависеть только от вашей выполненной работы.
    ---

    Универсального ответа что учить - нет.
    Только практическое выполнение задач, даст ответы.
    Ответ написан
    2 комментария
  • Как автоматизировать отслеживание работоспособности почтового ящика?

    fdroid
    @fdroid
    press any key
    Zabbix, парсинг ежедневного тестового письма с ящика, триггер по условию. Что-нибудь вроде этого. Конструкцию собрать можно, но мне лень бесплатно продумывать вопрос.
    Ответ написан
    Комментировать
  • Нужен API server для сканирования файлов на вирусы. Какую программу или сервис выбрать?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Virus total, drweb, кошмарский, симантек
    Ответ написан
    3 комментария
  • Нужен ли мне k8s?

    idegree
    @idegree
    Senior Workaround Developer
    В случае с кубиком советую много раз подумать. Это только кажется, что жизнь станет проще. Для деплоя ваших сервисов уже недостаточно будет написать Dockerfile и docker-compose.yml. Придеться дописать кубиковских конфигураций для каждого сервиса, либо helm-чартов. Плюс он будет жрать дополнительные ресурсы от ваших VPSок. Плюс нужно будет разобраться со всеми его сущьностями и подводными камнями. Изучить kubectl. В общем если вы не собрались в настоящие облака (amazon, google, azure) дико масштабироваться и вот это вот все - я бы кубик не рекомендовал. Больше гемороя будет.
    Ответ написан
    3 комментария
  • Как резолвить private Route53 zone через VPN?

    @romancelover
    программист C++ под Linux
    Можно поставить на стороне клиента локальный DNS-сервер, который может резолвить одну зону с определённого сервера, а остальные с сервера по умолчанию. Стандартный резолвер ОС так не умеет, зато так умеет dnsmasq.
    Из dnsmasq.conf:

    # Add other name servers here, with domain specs if they are for
    # non-public domains.
    server=/localnet/192.168.0.1
    server=8.8.8.8
    Ответ написан
    Комментировать