Задать вопрос
  • Где можно хранить js скрипты?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    Гитхаб, любой cdn, любой из своих серверов где будут сайты.
    Ответ написан
    4 комментария
  • Можно ли разместить бэкенд с API и веб-приложение на одном сервере?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    В локкйшене прописываете location /api/mapapi/ и проксипасс до вашего апстрима . По необходимости добавляете кастомные заголовки. Посмотрите статью kestrel on nginx там описано подробно, но это действует для любых связок

    Конфиг для nginx c бэкендом apache, проксированием net core api, и vue SPA
    server {
            server_name test.com;
            ssl_certificate "/var/www/httpd-cert/www-root/test_com_le2.crtca";
            ssl_certificate_key "/var/www/httpd-cert/www-root/test_com_le2.key";
            ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4;
            ssl_prefer_server_ciphers on;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_dhparam /etc/ssl/certs/dhparam4096.pem;
            charset off;
            index index.php index.html;
            disable_symlinks if_not_owner from=$root_path;
            include /etc/nginx/vhosts-includes/*.conf;
            include /etc/nginx/vhosts-resources/test_com/*.conf;
            access_log /var/www/httpd-logs/test_com.access.log;
            error_log /var/www/httpd-logs/test_com.error.log notice;
            ssi on;
            set $root_path /var/www/www-root/data/www/test_com/public;
            root $root_path;
            location / {
                    location ~ [^/]\.ph(p\d*|tml)$ {
                            try_files /does_not_exists @fallback;
                    }
                    location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|                                                                                                                                                                                                                                             zip|gz|bz2?|rar|swf)$ {
                            try_files $uri $uri/ @fallback;
                    }
                    location / {
                            try_files /does_not_exists @fallback;
                    }
            }
            # тут хранится статика SPA  
            location /mks/ {
                           root /var/www/www-root/data/www/test_com;
                    }
             # Прокси для api
            location /api/mapinfo/ {
                proxy_pass         http://localhost:5010/api/mapinfo;
                proxy_http_version 1.1;
                proxy_set_header   Upgrade $http_upgrade;
                proxy_set_header   Connection keep-alive;
                proxy_set_header   Host $host;
                proxy_cache_bypass $http_upgrade;
                proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header   X-Forwarded-Proto $scheme;
            }
            location @fallback {
                    proxy_pass http://127.0.0.1:8080;
                    proxy_redirect http://127.0.0.1:8080 /;
                    proxy_set_header Host $host;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header X-Forwarded-Proto $scheme;
                    proxy_set_header X-Forwarded-Port $server_port;
                    access_log off;
            }
            listen 123.123.123.123:443 ssl;
    }
    Ответ написан
    Комментировать
  • Как бы вы решали данную задачу?

    New_Horizons
    @New_Horizons
    Бред:
    Я правильно понимаю, что Вы пытаетесь показать номер заявки, которая ещё не была создана с помощью LAST_INSERT_ID или типа того?
    Если так то это странно конечно. Банально, если два пользователя откроют форму, у них будет одинаковый номер ещё не созданной заявки.
    Можно при открытии формы создавать "пустую" заявку, выводить её id. А уже при отправке формы заполнять эту заявку. Периодически чистить "пустые" заявки, старше определённого времени.
    Но это похоже на бред, не понимаю зачем такое нужно)
    Ответ написан
    1 комментарий
  • Сервер периодически выдает 500 ошибку + каждые 4 минуты перезагружается MariaDB - есть идеи?

    alfss
    @alfss
    https://career.habr.com/alfss
    Кто-то рестартует сервак, смотрите крон, может какие программы крутятся незнакомые, может, что-то в systemd базы дописано, в логах нет падения.

    Очень интересно откуда столько сессий рута
    Ответ написан
    3 комментария
  • Как в ZOOM провести тайное голосования?

    kawabanga
    @kawabanga
    Это для ваших проектов каких то?

    варианты которые проскочили в голову, но учтите, что zoom я отдаленно знаю только.
    1) 2 qr кода у главного окна, в виде распечатанных картинок, и человек, трекает тот qr, который ему нужен.
    Но тут минус - необходим дополнительный девайс.
    2) сделать ссылку на голосование, и там любой общедоступный сервис анонимного голосования, либо прикрутите ваш бэкенд. Этот вариант в течении часа можно сделать.
    Ответ написан
    1 комментарий
  • Расходуются ли ресурсы на try catch?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Закономерный вопрос.
    Не научившись толком отличать 0 от false, и не научившись правильно писать elseif, каждый нуб в обязательном порядке озабочивается Вселенской Проблемой Производительности.
    "Как же так" - проснувшись одним прекрасным утром думает он - "Как только мой сайт достигнет пиковой нагрузки два посетителя в час, то начнутся стрррашные проблемы с производительностью! И надо срочно, забыв все на свете и теряя на ходу тапки, кидаться их решать!!!1111"
    Дальше выбирается любой рандомный оператор и появляется ВОПРОС: "А не слишком ли медленно ли он выполняется?!"

    И что характерно, чаще всего, как и сейчас, сам по себе оператор является бессмысленным, и вопрос должен быть не "не слишком ли он медленный?", а "на кой он вообще здесь сдался?"

    Наличие операторов в коде должно быть продиктовано не пубертатными фантазиями про "потребление ресурсов", а алгоритмом. Где оператор на своем месте - там он и должен стоять.
    В данном случае никакой трай с кетчем тут сто лет в обед не сдался, поэтому просто убрать его совсем. И всё сразу начнет летать, конечно же.

    Вот кстати я всегда говорил: то что для нормальных людей анекдот, для похапистов - суровая реальность. Каждый второй вопрос на тостере - это анекдот про "у таракана уши в ногах". Или анекдот про срочное обрезание - типичный пример XY problem. Ну или сейчас:

    Идет мент. Смотрит - фонарь стоит, под фонарем лужа, в луже мужик сидит.
    - Чё здесь делаешь?
    - Да вот, часы потерял. теперь ищу.
    Ну, мент думает - дай помогу. Искал-искал, весь перемазался - нету часов.
    - Слушай, мужик. Нету тут никаких часов!
    - Да я знаю. Я их вон там, возле забора потерял.
    - А ЧЕ ТЫ ИХ ЗДЕСЬ ИЩЕШЬ???
    - А тут светлее!


    То есть вопрос тут такой же - ставить трай кетч не там где нужно по логике, а тем где "быстрее"!
    Ответ написан
  • Почему много людей в IT недовольны своей работы?

    Потому что идут в IT как правило молодые и шутливые, которым все легко. Есть и исключения, но в любом случае поначалу это новый, таинственный и загадочный мир, в котором написал hello world и уже практически счастлив. Это если направление привлекает само по себе. Если не привлекает - то будешь почти счастлив, получив зарплату в 2 раза выше, чем твоя зарплата кассира в евросети.

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

    IT - это CRUD и рутина, которая рано или поздно надоест. А интересных и крутых проектов 24\7 тебе никто не даст никогда. Достигнешь точки, на которой тебе интереснее будет карточки миддлам в джире тасовать, чем что-то разрабатывать. И вот на этой точке уже точно пора уходить.
    Ответ написан
    16 комментариев
  • Почему много людей в IT недовольны своей работы?

    php666
    @php666
    PHP-макака
    отговаривают всех сюда идти,
    а что надо делать? Выйти в центр города и кричать "все идите в айти тут зп от 100 000!!"? Плодить конкурентов?

    но почему никто не уточняет что это он делает 12 часов 6 дней в неделю. Либо по суткам как работал мой знакомый. Почему никто не уточняет что часто заработанные деньги нужно пускать на починку машину. И разве это так легко каждый день стоят столько часов в пробках, стараться по быстрее дойти от точки А до точки B каждый день. Почему никто не уточняет что в этом деле о перспективах можно и забыть. Ты работаешь, получаешь деньги и всё. И кэмон ребята, они получают как средний программист с небольшим опытом работы. Зарплаты которые получаются ITшники с 5+ летом работ, им далеки.
    почему ТЫ не уточняешь, что:

    - 90% программистов с опытом в 5+ лет имеют вполне среднестатистическую зарплату по отрасли, никто с жиру не бесится и на мерседесах не разъезжает (вопреки рассказам некоторых о зарплатах в 200/300/400 "не напрягаясь"). Не знаю и не знал ни одного программиста, кто бы в 30/35/40 лет ездил на крутой тачке или имел бы уже купленное жилье.

    - что работают по долбанному графику 5/2, при котором в день если тратится от 2 до 4 часов на дорогу на работу, то в сумме принадлежат сами себе лишь ДВА дня в неделю. В отличие от мента или таксиста со сменным графиком.

    - что вся жизнь заключена в коробке монитора 30х40 и кроме долбанного кода в жизни ты не видишь ничего. День сурка длинной в карьеру.

    - что профдеформация влияет на характер, умение общаться с людьми, коммуникабельность и тп.

    - что сидячий образ жизни просто негативнейшим образом влияет на организм. Самое безобидное - ожирение. Посмотри на коллег-айтишников, в большинстве случаев любой охранник/мент выглядит в физ. плане лучше. Сидеть на стуле 10+ лет не проходят без последствий. И тут не поможет никакой спорт, просто сидячий образ жизни априори противоестественен для любого живого существа.

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

    - что перспективы у рядового программиста примерно такие же, как и у любой штатной офисной единицы. Можешь стать чуть повыше, а можешь и не стать. В любом случае ты такой же легко заменяемый винтик, как и таксист. Засиделся на работе на Н лет дольше и не успел выучить очередной фреймворк? Летишь на мороз. Офигенные перспективы!

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

    Сам уже года 2 как работа в IT сфере в Full time
    Когда у тебя будет юбилей в 10 лет - приходи и расскажи, как изменится твое мнение. 2 года - это ничто. Средний срок работы опытного программиста на одной из работ.

    почему люди вроде с большим опытом а мыслят так
    потому, что у них большой опыт, да. И поработав в 10/15 компаниях за жизнь они уже всего насмотрелись и не испытывают щенячьего восторга от коробки монитора и кода. Они видели, что все в целом похоже, понимают суть этой работы и, в целом, смотрят на мир без розовых очков.
    Ответ написан
    31 комментарий
  • Почему много людей в IT недовольны своей работы?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Почему никто не уточняет что часто заработанные деньги нужно пускать на починку машину

    Ну да, у IT-шников ведь проблем со здоровьем не бывает и они заработанные деньги на лечение не тратят.

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

    Сразу оговорюсь, что это моё субъективное видение и не претендует на абсолютно правильный ответ. Работа в IT (разработке, так как в другой сфере, касающейся IT, я не работал) предполагает, что ты этим "горишь". На стройку ты пришёл к 9, ушёл в 18 (образно) и пошёл пивка попить в бар с товарищем. И не думаешь о работе до 9 утра следующего дня.
    В разработке не так (лично у меня). Вот я официально удалённо работаю, с 10 до 19. 5/2, отпуск, праздники, выходные, все дела. НО! Я не могу просто встать в 19 часов и переключиться на дела семейные. Ну вот не получается. Особенно если не удалось доделать какую-то задачу и завтра надо продолжать.
    Бывает сидишь, разговариваешь с женой/другом, а в мыслях решаешь как бы половчее написать компонент, чтобы меньше копипасты (утрированный пример). И так почти постоянно.
    Если к этому нет тяги, то я считаю, что и начинать не надо. Идти в IT только польстившись на зарплату не стоит. Помимо денег работа и удовольствие приносить должна.
    Ответ написан
  • Почему много людей в IT недовольны своей работы?

    @RaGe22
    1) IT это интернет - поэтому всё нытье очень легко увидеть(поэтому делите его на 10)
    2) в IT больший процент инфантильных людей - отучился в ВУЗе делая что нравится, устроился на ЗП которое не светит 90% других работяг, начитался всякой новомодной "психологии" и начал ныть что он "не меняет мир"/"всё бессмысленно" а поработав месяц таксистом/строителем быстро побежал бы опять в айтишечку ибо к такому говну его жизнь не готовила.
    3) Перегоревшие люди - которые не жалели себя за просто ЗП а не за процент прибыли а потом поняли что занимаются херней только здоровье физическое/психологическое уже пошатанное
    Ответ написан
    1 комментарий
  • Почему много людей в IT недовольны своей работы?

    У каждого своя причина. Кто-то выгорел, кто-то просто устал. Со временем понимаешь что зп это не главное, да и зарплата в IT не такая уж и большая. И что ты каждый день сидишь по 14, 16 а иногда по 18 часов в день перед монитором. Никакой физической активности. Решаешь какие-то странные хочухи клиентов. Результат твоей деятельности мало кто увидит, большая часть твоего кода уйдет на помойку. Что каждый день выходят новые языки, фреймворки. Что количество данных, которые нужно пропускать через мозг, растет с каждым днем. А мозги только стареют. Помнишь Ваас рассказывал про безумие? Так вот, это оно. Каждый день ты залипаешь перед монитором, пытаясь решать кем то придуманную проблему. У тебя уже искривление позвоночника, зрение -5, туннельный синдром где-то не за горами. А ничего, кроме как пялиться в монитор, ты не умеешь.
    Ответ написан
    31 комментарий
  • Господа, какие умеренные по оплате но действенные мощные курсы по программированию почти с нуля для бэкенда и фронтенда с наставником?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Пишите на питоне и баше.
    Тем более что в техподдержке возможно есть смысл что-то автоматизировать - это как раз языки для этого.

    На баше писать следует, чтобы изучить *никс, ибо в баше только половина баша, остальное - gnu tools и понимание как работает система.
    На питоне - как на языке программирования, который вдобавок часто используется как универсальный и кроссплатформенный скриптовый язык, как полноценный язык разработки, как язык для сбора метрик в мониторинге.

    Дорасти за полгода до уровня уверенного стажера/неуверенного джуна, а там возможно еще javascript подтянуть хотя бы базово.
    Ну и потом смотришь список вакансий поблизости и потрать еще полгода уже развиваясь под конкретный набор вакансий одного языка программирования, который ты выберешь через полгода с уже некоторым опытом разработки и почитав требования в вакансиях.
    Ответ написан
    Комментировать
  • Где почитать про создание страницы по id?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Загуглите что такое php-роутер и как написать его самому. Роутер это именно то, что вам нужно, для решения задачи.
    Ответ написан
    Комментировать
  • Как правильно реализовать обработку одновременных запросов к бэкенду?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Это вы серезную проблему на самом деле затронули.
    варианта два
    - либо сделать блокировки на уровне БД, где над такой проблемой подумали бородатые дядьки и придумали разные решения (и вам нужна будет нормальная БД)
    - либо поменять систему так чтобы такой проблемы вообще не было - обеспечить обработку только одного заказа в один момент времени, если у вас скрипт работает в единственном экземпляре, то вы можете приостановить обработку всех остальных заказов, если уже какой-то один обрабатывается. Например завести очередь, при поступлении заявки класть ее в эту очередь, брать и обрабатывать по одному от начала и до конца, и когда один заказ полностью завершился и сформирован, брать следующий, обрабатывать его.

    городить какие-то свои блокировки поверх гугл-таблиц - гиблое дело, вы уменьшите вероятность, но не уберете ее полностью.
    Ответ написан
    3 комментария
  • Как лучше продемонстрировать проекты потенциальному работодателю?

    Zoominger
    @Zoominger
    System Integrator
    тоит ли заморочиться и по каждому проекту снять видосик с демонстрацией основных функ.возможностей ( ~2 минуты )

    Никто это смотреть не будет.

    Иил заморочиться еще больше, подключить статику, перебросить порты с роутера на старый ноут и развернуть на нем все проекты?

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

    1. iotop -okaво время таких фризов
    2. переведите режим работы процессоров с энерджи сейв в перфоманс cat /proc/cpuinfo | grep MHz все процессоры должны иметь или максимальную частоту или близкую к ней.
    Когда процессор "холодный" то ему нужно время поднять частоту, и получается что он быстрей иногда отрабатывает под нагрузкой чем полностью пустой но с 800MHz
    3. не забывайте что php+sql один и тот же запрос могут выполнить с разной скоростью, притом эта разница нифига не в 1% а порой доходит до 300% и усугубляется очередью как в sql так и на любом этапе.
    4. Могу вам сказать что по факут является самым распространенным

    а) i-o диска особенно HDD ( nvme) можно даже не тестировать.
    б) sql параллелит свои запросы но один запрос делает на 1 ядре, в результате 128 ядерный камень по 2Ghz может работать медленней вашего офисного Corei3 поскольку такт на ядро у него больше.
    в) кеш php кешируйте все что только можно и грамотно, как правило в этом месте можно ускориться раз в 10-30, даже не оптимизируя запросы в бд
    г) находите самые тяжелые запросы в бд и оптимизируйте их.

    Теперь что скорее всего происходит
    у вас встает очередь запросов в бд, например идет тяжелый хит скажем каталог с 5 фильтрами, в это время остальные запросы встают в очередь, и даже мелкие из них выполняюются медленно поскольку пред ними стоит тяжелый товарищь.
    ТАк вот к примеру когда делается 1 тяжелый запрос встало еще 300, и они вместе начинают лезть и выполняться.
    В результате получается то - же самое что выделить 10000 файлов в винде на hdd и скопировать параллельно а не последовательно
    I-O проседает многократно порой до десятков тыс раз.
    Пример утрированный но тем не менее.
    В результате у вас затык на пустом месте, когда LA системы 5 I-O 10% sql=100% на 1 камне.
    Как правило ситуация дальше осложняется по следующей схеме
    занимаются все камни тяжелыми хитами, тем более с каждым разом это становится легче, поскольку ресурсы других камней уже заняты, в результате раз в день база начинает тормозить, и ее рестартуют по крону.
    ;)))
    Но все индивидуально.
    Ответ написан
    6 комментариев
  • Какой MacBook выбрать студенту Технического ВУЗа?

    Zoominger
    @Zoominger
    System Integrator
    Любой, на который хватит деньги.
    Ответ написан
    Комментировать
  • Как научиться выделять смысл?

    @alexalexes
    Попробуйте в двух словах сказать (лучше оперировать голосом, а не мыслю), что говорится в первой абзаце текста, и отдельно - во втором.
    Потом, чем они отличаются по содержанию. Сравнивайте 2 и 3 абзац. В таком духе двигайтесь дальше по тексту.
    По окончании текста подведите итог, о чем он и как развивалась мысль от начала и до конца.
    Так вы научитесь сжимать текст и выделять смысл, и никакие карточки вам не понадобятся.
    Ответ написан
    Комментировать
  • Писать свой автозагрузчик или можно использовать из composer?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    > Знакомлюсь с темой автозагрузки классов, пока не очень понятно.

    Надо написать свой, тогда станет понятнее.

    а дальше просто:
    если в проекте используется композер, то разумеется использовать его автозагрузку
    если не используется, то тащить композер только ради автозагрузки как-то глупо
    Ответ написан
    8 комментариев