• Блокировка DigitalOcean?

    @ynblpb_spb
    дятел php
    Тоже попал под блокировку в DO

    Выход простой
    Топаете в любого отечественного хостера, покупаете самую дешевую VDS с хорошим каналом и настраиваете reverse proxy на nginx приблизительно с таким конфигом:

    server {
            listen                  80;
            server_name             domain.ru;
            
            location / {
                    proxy_pass http://111.111.111.111:80;
                    proxy_connect_timeout                           60;
                    proxy_send_timeout                                      60;
                    proxy_read_timeout                                      60;
                    proxy_redirect                                          off;
                    proxy_buffer_size                                       4k;
                    proxy_buffers                                           4 32k;
                    proxy_busy_buffers_size                         64k;
                    proxy_temp_file_write_size                      10m;
                    proxy_set_header        Host                    $host;
                    proxy_set_header        X-Real-IP               $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            }
    }

    где 111.111.111.111 это IP адрес вашего дроплета в DO

    и для https сайтов

    server {
            listen                  443;
            ssl                     on;
            server_name             domain.ru;
            ssl_certificate      /etc/nginx/ssl/domain.ru.crt;
            ssl_certificate_key  /etc/nginx/ssl/domain.ru.key;
            ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
            ssl_ciphers  "RC4:HIGH:!aNULL:!MD5:!kEDH";
    
            location / {
                    proxy_pass https://111.111.111:443;
                    proxy_connect_timeout                           60;
                    proxy_send_timeout                                      60;
                    proxy_read_timeout                                      60;
                    proxy_redirect                                          off;
                    proxy_buffer_size                                       4k;
                    proxy_buffers                                           4 32k;
                    proxy_busy_buffers_size                         64k;
                    proxy_temp_file_write_size                      10m;
                    proxy_set_header        Host                    $host;
                    proxy_set_header        X-Real-IP               $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            }
    
    }


    такая вот у нас замечательная, страна, конечно...
    Ответ написан
    11 комментариев
  • Важна ли корочка при устройстве на работу?

    @Chekhoved
    Важна, если это корочка хлеба. Вдруг придется в очереди ждать, будет чем перекусить.
    Ответ написан
    2 комментария
  • Как должен вести себя нормальный PM?

    @Phantomrus
    Project Manager в крупной финтех компании
    Добрый вечер!

    Для начала обращу внимание, что при подобной текучке на проектах, можно считать, что PM вообще отсутствует и хаос ожидаем. Проблемы, которые всплывают: недочеты в управлении орг структурой и, собственно, некачественное управление проектами.

    Если пройтись по конкретике:

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

    2) После оглашения оценки по задаче всегда можно ждать справедливого вопроса "Почему так много?". Для таких случаев надо уметь (а лучше уже иметь готовую) декомпозировать задачу на составляющие, оценку для которых легче аргументировать или обосновать на основании исторических данных. Всегда можно попробовать убрать неопределенность в требованиях, если это поможет снизить оценку. Если оценка даже после уточняющей беседы (к примеру заказчик может более четко описать задачу) не изменилась, то можно попробовать предоставить варианты в духе "Если мы откажемся от фишки X, то я сделаю эту задачу на два дня быстрее", чтобы дать понять, что оценку можно менять, согласившись на урезание требований.

    3) Как было замечено выше, хорошим решением будет начать пользоваться трекером, который будет показывать текущую загруженность и планы на ближайшее время. Также по нему можно будет отслеживать историю выполнения задач и использовать её в качестве подкрепления для оценок.
    В идеале, трекером должны начать пользоваться и пиэмы, чтобы можно было в рамках него проставить приоритет по проектам и задачам. Но в крайнем случае можно начать пользоваться им единолично и даже это поможет улучшить ситуацию. Часть времени будет уходить на управление своими задачами, а не их реализацию, но даже несмотря на это, структурирование задач очень поможет. Даже если трекером начнете пользоваться только Вы, всегда можно направлять менеджеров в него для мониторинга ваших текущих задач.

    4) В описанной структуре между несколькими менеджерами проекта и программистом явно не хватает промежуточного слоя. Это может быть и ИТ-менеджер и куратор разработчиков и тимлид. Понятно, что в некоторых компаниях не могут позволить себе нанять отдельного сотрудника, координирующего действия. В таком случае явно возникает (а точнее уже возникла) проблема в оргструктуре, когда один разработчик должен выполнять работу для нескольких менеджеров.

    5) В случае, когда менеджер перестал доносить до Вас желания заказчика, виноват, естественно, он. К сожалению, исправлять его косяки кроме Вас больше некому. В таком случае можно смело в любой отчетности указывать, что срыв сроков произошел ввиду отсутствия у Вас актуальных требований заказчика. Если вовремя это не проговорить, в конце виновным сделают Вас и доказать что-либо будет намного сложнее. В случае с трекером будет явно видно какая задача была поставлена на реализацию.

    6) Однозначно надо описать сложившуюся проблему (она же риск нереализации проектов в срок) вышестоящему руководству. Не надо думать, что им всё равно. Речь об их деньгах и им предлагают митигировать риски.

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

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

    modestguy
    @modestguy
    full-stack web developer
    1) Ничё не понятно. Но я так понимаю, Вам репозиторий надо поднять: https://git-scm.com/book/ru/v1/Git-%D0%BD%D0%B0-%D...
    2) https://github.com/kemayo/sublime-text-git (из консоли наверное и то привычнее будет работать)
    3) Заставьте ваших разработчиков писать вменяемые комментарии ко всем классам, методам и т.д. в соответстветствии phpDoc. Подробности тут:
    manual.phpdoc.org/HTMLframesConverter/default
    Ответ написан
    Комментировать
  • Создание роутера php. Другой способ разборки url?

    @mr_ko
    Javascript, Node.js. React.js, Vue.js, Wordpress
    А не проще ль не городить велосипедов и взять какую то готовую библиотеку? Наприме https://github.com/nikic/FastRoute
    Ответ написан
    Комментировать
  • С чего начать алгоритмическую торговлю?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Для начала спросите себя, действительно ли вы этого хотите? Во-первых, вероятность того, что кто-то даст торговать реальными деньгами на реальном рынке стремится к нулю. Окей гугл, форекс кухни. Во-вторых, какие-бы современные алгоритмы не были бы использованы, всё таки по-настоящему эффективных алгоритмов нет. Почему? Нет, серьёзно задали этот вопрос? А вы действительно всё ещё хотите в финансы? Ну ладно, банально потому, что достаточно (не идеально, а лишь достаточно) эффективный алгоритм лишил бы работы бОльшинство трейдеров. Как бы нам не хотелось верить в деньги из воздуха (хотя технически деньги и правда из воздуха, так как при изготовлении используется органические соединения, содержащие углерод как основной компонент, источник которого - атмосфера, углекислый газ точнее - фотосинтез; простите, не удержался)... В общем, как бы нам не хотелось верить в деньги из воздуха - спекуляции - зло, необходимое зло свободного рынка. По той простой причине, что роль санатора рынка они выполняют как нельзя плохо (рисковые вложения сегодня ну очень популярны), стабилизацией они тоже занимаются посредственно (благо агенства вроде Bloomberg строят рейтинги, ограждая крупных игроков, да да - игроков, рынка от излишне спекулятивных операций), ну а что до материальных благ, то и тут они ну совсем не создают; сродни голодным волкам, бросающимся на любой кусок мяса, даже тот, который их кормит. Но! Даже к этим голодным волкам вас не допустят - мало денег. Нет. Ну очень мало денег. Капля не в море, но в океане. Контракты на миллиарды и триллионы долларов заключаются еженедельно, ежедневно, ежечасно. С целью получить выгоду хотя бы в тысячу долларов. Единственный удел простого смертного - кухни, разной степени никчёмности. Выиграть тут можно, но знайте одно - владелец кухни всегда, всегда в плюсе. Те крохи, что останутся трейдерам поделят самые удачливые. А потому, что не дадут вам поиграть на адекватных плечах, ибо 1:20 - самый нереальный максимум, что может себе позволить опытный трейдер. Риск, штука которую можно рассчитать. Но выбирая плечо больше - есть неиллюзорная вероятность потерять ВСЕ вложения.

    Ну ладно, если всё ещё желаете попытать счастье здесь, то напомню. Алгоритма нет. Да не потому, что никто не делится. Если бы был алгоритм - это сразу бы заметили. Есть лишь жалкие попытки, тучи систем анализа данных, но серьёзные решения всегда принимает человек.
    Вообще, существует грубо три варианта работы алгоритма. Первый, кибернетический - анализ сигнала. Точнее - сигналов. Кибернетика - наука об обратных связях. То что в мире финансов они есть - абсолютно точно. В какой-то степени - самый результативный способ. Если смотреть по прошлому. Сколько-нибудь далёкое будущее предсказывать ну абсолютно не умеет.
    Второй, алгоритмический. Датамайнинг сложным конечным автоматом. Без построения систем диффиринциальных уравнений, а банальным множеством захардкоженных условных переходов. Можно точно сказать, таким пользуется абсолютное большинство.
    Ну и третий, нечёткие алгоритмы, генетика, нейронные сети. В общем и целом, самое перспективное направление. Суть - создать ИИ, или хотя бы его подобие. Проблемы две - сугубо философская "имеем ли мы право" и сугубо техническая "возможности". В остальном - флаг в руки. Однако стоит понимать, что ИИ здесь нужен тот, который будет не принимать решения, а рассчитывать риски. Решение может и решка принять. А вот подсчитывать риски - основная задача здесь - не умеет никто, даже человек считает их весьма и весьма грубо. Просто кто-то чуть более удачлив, ибо рассуждая об успешных трейдерах мы забываем упомянуть про миллионы погоревших его коллег. Не потому, что они тупые или не прозорливые, нет, просто потому, что им не повезло.
    Ответ написан
    21 комментарий
  • Как использовать ASP.NET Framework PHP программисту?

    @Kokcuk
    Как использовать ASP.NET Framework PHP программисту?

    Боюсь что никак, ASP.NET это legacy технология microsoft и что бы ее использовать нужно быть c# программистом.
    Технология своеобразная и с веб разработкой общего имеет мало, это попытка перенести Web forms в веб.
    Был бы asp mvc - было бы немного проще, он местами и архитектурой похож на symphony2

    Если вы не знаете c# и не знакомы с asp на уровне 1-2 летней практики, то естественно поддерживать их сайты на Asp.net вы никак не сможете.
    Но это все не важно,
    говорят любой php программист сможет легко в этом разобраться
    asp.net
    битрикс

    лучше просто бегите оттуда.
    Ответ написан
    7 комментариев
  • Клиент много задает вопросов, как быть?

    opium
    @opium
    Просто люблю качественно работать
    Отвечать на них.
    Ответ написан
    Комментировать
  • Клиент много задает вопросов, как быть?

    newross
    @newross
    Product owner
    Отвечать на эти вопросы, если это занимает немного времени.
    Хуже когда клиент не задает вопросов. Скорее всего он начнет задавать их после окончания работы и перед оплатой.
    Ответ написан
    Комментировать
  • Для чего нужна ORM?

    Вы не путаете ORM с DBAL? ORM это не технология замены SELECT * FROM goods WHERE cost < 100.00 на $db->select()->from('goods')->where('cost < 100.00'). ORM это способ задания связи объектов и РСУБД. По сути позволяет абстрагироваться от способа хранения объектов вообще, с лёгкостью переходя от SQL к NoSQL, memcache, файлам или REST/RPC API на удалённом сервере, оперируя на уровне модели (если говорить о MVC и т. п.) простыми plain old objects, а их персистентность отдать контроллеру. Не $db->select()->from('goods'),, не mysql_query('SELECT * FROM goods'), а $goodsRepository->findAll(), а уж будет репозиторий формировать SQL запрос, читать файлы или память, а может стучаться на Гугл и парсить его вывод — его, репозитория, личное дело (а также разработчика(ов), отвечающих за подсистему хранения).

    Кроме того ORM, как правило не исключает обращение к БД на уровне произвольных SQL запросов, оно лишь преобразуют результаты этих запросов в объекты модели предметной области (и наоборот), которые ничего не знают (в идеале) о таблицах, WHERE, HAVING и т. п.

    ORM это не только инструмент архитектурного разделения областей ответственности объектов и классов приложения, а также инструмент облегчения разделения труда разработчиков: кто хорошо шарит в SQL вообще и особенностях конкретного движка в частности — работает по «ту сторону» ORM, оптимизирует его как хочет, может нормализовывать и денормализовывать, например; кто хорошо разбирается в дебетах и кредитах — работает с plain old objects в терминах предметной области и может вообще ничего не зная об SQL, ему лишь нужно знать, что он всегда может получить объект или их коллекцию обратившись к методам вроде findById() или findAll() и сохранить результат работы методом save() или flush().
    Ответ написан
    3 комментария