• Можно ли уже выходить на работу фрилансером?

    kumaxim
    @kumaxim
    Web-программист
    Вам поможет техника БД "НТКЗЯ - Не Тяни Кота За Яйца". Идти и что-то делать можно в любой момент, главное чтобы Вы созрели для этого. Само видео с описанием этой техники от ребят из БМ гуглится без проблем.
    Ответ написан
    6 комментариев
  • Как грамотно настроить AWS Amazon?

    Deroy
    @Deroy
    Senior Developer, Software Architect
    касательно "закрытия" сетей можно глянуть этот официальный пример (референсный темплейт от AWS)
    https://github.com/awslabs/ecs-refarch-cloudformation

    он разворачивает VPC, Subnets, и ECS кластер в закрытой сети, все с балансингом и дублированием для отказоустойчивости на две зоны доступности - разобравшись можно развернуть вместо ECS кластера что угодно другое.

    касательно SQS - ну это все специфично - если вы решили "плотно" сидеть на AWS - тут просто вопрос интерграции под это самого приложения, если же не хотите вендор-лока - то разверните себе RMQ как обычно и всё.
    Ответ написан
    Комментировать
  • Какой выбрать эквайринг для ИП, чтобы работать с большинством стран?

    @laxikodeje
    Одной мало.
    Практически интернациональные сервисы имеют по 2, а то и 3 и больше варианта приема платежей.
    Ответ написан
    Комментировать
  • Как организовать full-stack (веб) разработку новичку?

    webinar
    @webinar Куратор тега PHP
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Одна из главных ошибок, это использовать тут или иную технологию, для того что бы использовать технологию. Технология должна упрощать что-либо или ускорять и т.д. Должен быть прозрачный и ощутимый эффект. Вы, я так понимаю, просто используете технологии ради технологий. Это не верно. Это возможно для обучения, но тогда вопрос
    К чему это все приведет, когда проект разрастется?
    не логичен. Не надо делать ерунду ради обучения на живом проекте. Освойте технологию, потом принимайте решение, стоит ли ее использовать в том или ином проекте.
    Вы сами сможете ответить на все свои вопросы, когда освоите эти технологии. Но не стоит это делать на рабочем проекте.
    Ответ написан
    2 комментария
  • Как организовать full-stack (веб) разработку новичку?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Вы не совсем понимаете стэк технологий, которые собрались изучать. Ваши рамки понимания фронтэнда и бэкэнда крайне размыты.
    Ваша первая ошибка в том, что вы, как вы выразились собираетесь заниматься компонентной разработкой с помощью php и gulp. Это в корне не верно, ибо gulp был задуман исключительно для сборки front-end части проекта.

    Постараюсь расписать вам примерный туду-лист на будущее:
    1. Бэкэнд разработка на PHP - Laravel.
    2. Фронтэнд сборка - Webpack + Laravel Mix
    3. Фронтэнд разработка - ES6 + Vue.js

    И никогда, ни в коем случае, как бы этого вам не хотелось - не смешивайте фронтэнд и бэкэнд, это совершенно разные области технологий и стэка, не занимайтесь порнографией.
    Ответ написан
    1 комментарий
  • Как хранят свои страницы крупные сайты?

    Stalker_RED
    @Stalker_RED
    Единая точка входа - один php файл, (обычно index.php лежащий в корне сайта), в который попадают все запросы ко всем страницам. Он запускает движок и вызывает router (маршрутизатор) - скрипт, который по url определяет какой раздел и какая страница запрошена. Ориентируясь на правила прописанные в маршрутизаторе он запускает нужный модуль (читайте про mvc). Там где-то происходят обращения в базу данных, какая-то бизнес-логика работает, и в итоге данные передаются в шаблонизатор, который выдает HTML код.

    Чтобы самому не изобретать всё с нуля можно взять набор готовых компонентов. Такие наборы называются фреймворками.
    Это все подходит не только для крупных сайтов, а для любых проектов, где больше одной страницы.
    Ответ написан
    Комментировать
  • Как поставить задержку во время парсинга?

    oh_shi
    @oh_shi
    Никак. Вы сделали запрос, получили ответ, распарсили. У вас видимо проблема, с тем что на странице еще есть js, который дополнительно что-то подгружает через ajax. Тут либо вытащить этот ajax запрос и парсить данные из него, либо использовать что-нибудь в духе Capybara + PhantomJS, чтоб имитировать поведение браузера.
    Ответ написан
    1 комментарий
  • Frontend(React) + Backend?

    gadfi
    @gadfi
    https://gamega.org
    Backend - REST API, ему плевать что у клиента - react/angular/нативное мобильное приложение или другой сервер, его дело данные обрабатывать и отдавать
    Клиент - плевать на чем написан backend, хоть на паскале

    их объединяет только документация, все остальное от лукавого
    Ответ написан
    1 комментарий
  • Что нужно для создания web-бота на Ruby?

    nbekseitov
    @nbekseitov
    Ruby developer
    Можно использовать связку гемов nokogiri + mechanize
    ruby.bastardsbook.com/chapters/mechanize
    Ответ написан
    Комментировать
  • Что нужно для создания web-бота на Ruby?

    oh_shi
    @oh_shi
    Обратите внимание на библиотеки, которые используются в тестировании для имитации действий пользователя, что и требуется от бота. Capybara + PhantomJS, и если результат нужно распарсить то Nokogiri. Я написал больше сотни краулеров на этом стеке.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы мой проект могли скачать через composer?

    по-моему композер вам совершенно не нужен. а нужно понять для чего он и как правильно пользоваться git'ом.
    Ответ написан
    Комментировать
  • Как гарантированно определить посетителя из Украины?

    Astrohas
    @Astrohas
    Python/Django Developer
    хм а почему бы не проверять со стороны клиента. Опа карты не загрузились, js загружает google карты. И к черту всякие проверки по ip и геопозиции
    Ответ написан
    8 комментариев
  • Занижают ли мне зарплату?

    lukoie
    @lukoie
    Может это я много хочу, или лучше валить с такой работы?

    чувак ты жжошъ!
    а поднять вопрос о более высокой ЗП для тебя вообще не вариант?
    то есть у тебя только два варианта(?):
    1 я слишком много хочу
    2 валить
    really?
    Ответ написан
    8 комментариев
  • Как учитывать стоимость своей работы на своем стартапе?

    copist
    @copist
    Empower people to give
    Ты когда инвестора в свой проект пускаешь, сразу оговаривай сколько процентов от компании он получает. Он инвестор, а не совладелец. Обычно ему доля 5-10%, а тебе - всё остальное. И при необходимости ты можешь своей долей делиться со следующим инвестором, если потребуется.

    Деньги и только деньги в итоге фигурируют во всех бумажках. Человеко-часы, киловатты умственной работы, частота вращения языком, давление попы на стул, литры кофе - это всё не учитывается. Твой труд - это мизер в перспективе выхода на окупаемость.

    Но конечно, когда продукт начинает приносить прибыль, можно назначить себе з/п, если устроишься на работу в свою собственную компанию. Бывает владельцы, которые там не работают, а только прибыль стригут.

    P.S. Выражаю признательность ответу пользователя Николай Чуприк: это очень точное и понятное объяснение, почему работа не является первоначальным вкладом и почему нельзя измерять свой труд банальной часовой ставкой - оценивать продукт надо исходя из стоимости аналогичных продуктов на рынке или его потенциальной прибыльности.
    Ответ написан
    4 комментария
  • Плохо ли создавать проекты с нуля? Что значит быть про?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Я понимаю, о чем вы пишите и почему. Ваш код работает, т.к. решает поставленные задачи и удовлетворяет потребности ваших клиентов. Имеет ли он право на жизнь? Да, но только в вашем отдельно взятом случае.

    Дело в том, что ваш код не гибок, в нем отсутствует масштабируемость, его невозможно поддерживать.

    Что если вам потребуется сделать блог, в котором нужно иметь комментарии, которые обновляются в режиме реального времени? И комментарии могут содержать HTML, но такой, чтобы ваш сайт не могли взломать?
    А еще комментарии короче 2000 символов по воскресеньям платные. Оплата через Яндекс.Деньги.
    Вы все это делаете, все работает.
    Затем заказчик вам говорит, я хочу запустить такую же систему другу, но с оплатой по понедельникам через WebMoney.
    Вы копируете сайт, переписываете функцию оплаты.
    Дальше ваш заказчик видит, что у друга больше денег, он просит добавить WebMoney к себе.
    Вы опять переписываете код. Добавляете условия.
    Потом к вам приходит друг заказчика и хочет другое оформление. Вы переписываете его функции.
    Затем он просит добавить поиск по названиям записей к себе на сайт. Вы делаете. Буквально на следующий день к вам приходит заказчик и тоже просит поиск, но не только по названиями, но и по телу статей и по комментариям. Вы делаете.
    Затем ваш заказчик видит, что дела у него идут в гору и он просит отменить платные комментарии и сделать просто платные аккаунты для всех. Вы переписываете.
    Тем временем друг просит вас сделать все тоже самое, но с его оформлением.
    Дела у заказчика идут в гору и сайт начинает тормозить. Вы делаете кэширование.
    Внезапно сайт заказчика попадает в топ и нагрузка резко увеличиваете настолько, что один сервер уже не справляется. Вы переносите все на самый мощный, но он его тоже мало.
    Нужно делать горизонтальное масштабирование.
    Для этого нужно переписать все функции, которые работают с базой данных. А их уже больше двухсот. И просто замена не подходит.
    Сайт открывается через раз, заказчик звонит вам каждые 2 часа и спрашивает, как там прогресс.
    И тут вам присылает письмо друг заказчика и говорит, что хочет перейти с MySQL на PostgreSQL.
    И вы понимаете, что вам надо будет переписать еще 300 функций, но на другом сайте. Вы его посылаете, поскольку вы и так в мыле.
    Друг жалуется на вас заказчику. Заказчик, не ставя вас в известность, нанимает другого исполнителя, у которого отваливается челюсть от того, что творится в системе. Он объясняет, что ему нужно будет потратить полгода, чтобы вникнуть в то, чтобы понять ваш код, но он может сделать все тоже самое за 4 месяца, причем для заказчика и его друга так, что это будет расширяемо и поддерживаемо не только им.
    Тем временем, спустя двое суток жизни на кофеине вы героически переписываете все функции заказчика и идете отсыпаться. После суток сна вы обнаруживаете на автоответчике сообщение, что вы уволены. А все потому, что забыли проверить функцию логина.

    А теперь разберем эту историю по частям. Почему же вас уволили?

    Незнание абстракций и шаблонов проектирования привело к тому, что вы вынуждены были поддерживать 2 разных проекта с практически одинаковой логикой.
    Например ORM смог вам помочь поддерживать 2 разные базы данных без каких-либо усилий. Сменить одну базу на другую стоило бы исправления конфигурации, а не переписывания 300 функций.
    Использование фреймворков позволило бы сократить время на реализацию подключений платежных систем. Многие из них имеют готовые реализации.
    Опять же в современных фреймворках, например в той же Doctrine реализован шардинг. В большинстве случаев ваши проблемы свелись к изменению настроек.
    Но даже если бы вы накосячили, то интеграционные тесты не позволили бы попасть говну в продакшен. А если бы оно и попало, ну накосячили вы с тестами тоже, то проблема была бы обнаружена на раннем этапе благодаря "сине-зеленому" развертыванию и она бы не затронула всех пользователей.
    И да, ваш код не прошел внешний аудит.

    Чтобы быть настоящим профессионалом, нужно не только знать, но и уметь применять на практике ООП, популярные фреймворки, шаблоны проектирования, тестирование и средства непрерывной интеграции, а еще пользоваться нормальными IDE и нести ответственность за сделанную работу.

    Когда пишете свой код, почаще задавайте себе вопрос: А если бы это был код для моего кардиостимулятора? Это поможет.
    Это вам для общего развития.
    Ответ написан
    5 комментариев
  • Зачем шифровать скрипты, например PHP с помощью ionCube 9?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    А если серьезно, то это у них вроде ускоряет загрузку скриптов. Что-то типа компиляции в байт-код.

    маркетинг шит 146%
    не может быть быстрее при как минимум еще одной обработке сверху в видел модуля для запуска закодированного кода. Ресурсов наоборот больше сожрёт, скорость в лучшем случае не упадёт.

    Объясните, зачем он? Когда применяется? Приведите реальный пример.

    когда продаешь самохостящийся продукт на php в котором есть проверка лицензии или просто супер гениальные алгоритмы которые не хочется раскрывать. Чаще конечно никаких гениальных вещей там нет и шифруют только ради проверки лицензии и отключения софта когда лицензия кончилась.

    Как правило все версии(кроме самых самых свежих) любого шифровальщика относительно легко раскрываются с помощью гугла/форумов DeZender'ов или даже онлайн сервисов.
    Вскрытие не всегда бесплатно естественно и не всегда прокатывает(точность не 100% при восстановлении, суть уловишь, но исходиники будут не рабочие).
    Суть вскрытия в удалении/обходе проверки лицензии.
    Т.к. особо там ничего не придумаешь, то проверка лицензии это зачастую просто запрос на сайт продавца из разряда
    $license_ok = file_get_contents("http://shopcms.com/check_license.php?domin=customer.com");
    if($license_ok) {
    //ok
    } else {
    die("Pay for license");
    }


    Поэтому обходится примерно так:
    Без изменения оригинального кода и работой с зашифрованынми исходниками(в случае если расшифровать не удалось до конца, но суть проверки лицензии понятна)
    1. Заворачиванием сайта продавца на локалхост с вечной лицензией. (прописать в hosts файл)
    2. Подменой глобальных переменных($_SERVER) чтобы проверялся домен на котором есть лицензия. (вставить в index.php или другое место где исходники открыты)

    Если исходники расшифровались правильно и работают
    3. Выпиливанием проверки лицензии из исходников.

    Лень искать, а точнее поиска нет по овтетам, но уже писал.
    Я считаю что шифрование никак не увеличит продажи или защитит от мамкиных хакеров.
    Кто очень хочет - он будет ломать, в случае неудачи просто не будет пользоваться.
    Кто адекватный - будет платить в любом случае за СЕРВИС/ОБСЛУЖИВАНИЕ. Т.е. получать обновления и поддержку разработчиков.

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

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

    PS. Забыл решение написать грамотное по моему мнению.

    1. Если у вас действительно супер-пупер секретный алгоритмы которые никто не знает или может повторить.
    Использовать исключительно модель SaaS или производить вычисления через ваш сервер(но продукт всё равно будет стоять на сервере клиентов).

    2. Если никаких алгоритмов взлома гугла/пентагона/игил/телеграма там нет.
    Просто отдавать открытые исходники для работы.

    3. Если вы пишите очень плохой код и вам стыдно или хороший код, но вы жадный.
    Используйте SaaS.
    Технологии позволяют привязать домен клиента к вам, создать ему отдельное рабочее пространство(виртуалку/сервер) и всё что только придумать можно.
    Ответ написан
    4 комментария
  • Как привлечь заказчиков на биржу фриланса?

    opium
    @opium
    Просто люблю качественно работать
    во первых стоит понять зачем работодателям приходить на вашу биржу?
    во вторых fl.ru слил миллион раз свою базу со скайпами и емайлами
    Ответ написан
    Комментировать
  • Как лучше хранить crontime в базе данных?

    vistoyn
    @vistoyn
    программист
    Используйте библиотеку mtdowling/cron-expression.
    Она умеет анализировать интервалы в стиле крон.

    Идея такая:
    1. Нужно вытащить из базы все записи.
    2. Для каждой записи узнать следующее время запуска.
    3. Если оно совпадает с текущей минутой, то выполнить задачу.
    Ответ написан
    1 комментарий