Задать вопрос
  • На чем писать маленький портал для тестирования сотрудников?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Используй Google формы: https://www.google.ru/forms/about/
    Ответ написан
    Комментировать
  • Что такое upstream в Git?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Гит — это распределенная система. Мы можем иметь много равноправных репозиториев и обмениваться информацией между ними. Тот репозиторий, в который мы сейчас коммитим, будет локальным. А другие репозитории, в которые отправляем (push) или из которых получаем (fetch), они внешние (вышестоящие, upstream, remotely)
    Часто говорят удаленные, но это не очень уместный перевод слова remote в данном контексте. Потому что появляются странные формулировки типа «удалить удаленный»

    Именем upstream ещё принято обозначать исходный репозиторий, от которого мы сделали форк на GitHub, так как имя origin уже занято и указывает на форк. Поэтому адрес исходного репозитория, при необходимости, сохраняем в переменной upstream. В данном контексте это просто традиция, и назвать ссылки на внешние репозитории мы вольны как угодно. Команда git remote лишь создаёт переменные, в которых мы храним URL внешних репозиториев, чтобы затем использовать имя переменной в командах, вместо того, чтобы писать длинный URL.
    Ответ написан
    Комментировать
  • Ошибка при JSON.parse как исправить?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    А вы можете объяснить, зачем вам здесь вообще JSON.parse?
    И почему нельзя написать просто
    var dataJSONArray = <?= json_encode($u,JSON_UNESCAPED_UNICODE) ?>;
    Ответ написан
    1 комментарий
  • Как быть с кэшированием файлов (css, js, svg...) при их изменении?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    ведь его браузер новые стили не прочитает
    Бразуер кеширует конкретный файл. Соответственно, для сброса кэша просто меняют путь к файлу.
    Простой вариант: добавить get-параметр, в котором будет содержаться время последнего изменения. Но этот вариант требует чтения с диска на сервере, чтобы узнать mtime (не велика беда) и работает не со всеми reverse proxy (некоторые криво настроенные могут игнорировать get-параметры).
    Поэтому уже лет десять существуют системы сборки фронтенда, которые прямо в имя файла подставляю хэш от его содержимого. Сейчас это есть для абсолютно любой системы - gulp, webpack, что угодно.
    Называется это Cache Busting, вот вам первая попавшаяся статья: https://www.keycdn.com/support/what-is-cache-busting
    А ещё, кэш - это не только "не запрашивай файл 365 дней", там много различных функций: https://jakearchibald.com/2016/caching-best-practices/

    при их изменении на стороне клиента
    Такая формулировка подразумевает, что это клиент что-то меняет. Я уж обрадовался: "о, какой интересный вопрос, есть над чем подумать!"...
    Ответ написан
    2 комментария
  • Как разбить строку через разделитель несколько раз?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Самый простой и лаконичный вариант
    $uuid_str = "392981414524f56f68d9f4a47e7072f2";
    
    echo join('-', sscanf($uuid_str, '%8s%4s%4s%4s%12s'));


    Ещё вариант через substr
    $uuid_str = "392981414524f56f68d9f4a47e7072f2";
    
    $uuid_dashed = 
        substr($uuid_str , 0, 8) . '-' . 
        substr($uuid_str , 8, 4) . '-' . 
        substr($uuid_str , 12, 4) . '-' . 
        substr($uuid_str , 16, 4)  . '-' . 
        substr($uuid_str, 20)
    ;
    
    var_dump($uuid_dashed);
    Ответ написан
    1 комментарий
  • Что такое Docker простыми словами?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Что такое Docker простыми словами

    простыми словами

    Если совсем прям простыми, то - это некая легковесная оболочка, которая способна изолировать приложение внутри себя от внешнего мира. Очень похож (по логике) на системы виртуализации VMware, VirtualBox, Parallels итп, но сам не является им.

    Возможности:

    - Контейнеризация: Docker позволяет паковать приложения вместе со всеми их зависимостями в контейнеры, обеспечивая тем самым их независимость от конкретной инфраструктуры.
    - Переносимость: Контейнеры Docker могут быть запущены на любом компьютере, который поддерживает Docker, независимо от операционной системы. Это делает распространение и развертывание приложений намного проще.
    - Изоляция ресурсов: Каждый контейнер Docker работает в изолированной среде и не влияет на другие контейнеры или хостовую систему.
    - Слоистая файловая система: Docker использует слоистую файловую систему для хранения данных, что позволяет существенно экономить дисковое пространство и упрощает обновление и распространение контейнеров.
    - Сетевые возможности: Docker позволяет настраивать сетевые параметры каждого контейнера, что позволяет создавать сложные многокомпонентные приложения.
    - Docker Hub: Docker Hub – это репозиторий, где можно хранить и делиться контейнерами. Это облегчает развертывание и распространение приложений.
    - Docker Compose: Это инструмент для определения и запуска многоконтейнерных - Docker-приложений. С помощью Compose вы можете использовать файл YAML для конфигурации служб вашего приложения, а затем с помощью одной команды создать и запустить все службы.
    - Docker Swarm: Docker Swarm предоставляет нативные возможности Docker для оркестрации и масштабирования кластера Docker.
    Ответ написан
    Комментировать
  • Онлайн-школа или личный ментор?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    На обучение денег не жалко, главное, чтобы был результат.


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

    Тем более, что вы уже делали какие-то попытки и начнете не с нуля.
    Пишешь много кода, парралельно читаешь что-нибудь системное (один учебник).
    И нет смысла искать самый-самый лучший. Ну вот вообще.
    Если бы был какой-то самый лучший учебник, он бы уже был единственным путем в мир разработчиков.
    А на деле - можно научиться разными способами.

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

    xez
    @xez
    TL Junior Roo
    Тут дело такое:
    1. Хороший "личный ментор", скорее всего, вам не по карману. З.п. старшего java разработчика / тим лида сейчас от 300к. Т.е. ставка около 2тр/час. Какая у такого специалиста мотивация чтобы с вам возиться?
    2. Профессия разработчика подразумевает непрерывное постоянное самостоятельное обучение. Не умеете сами учиться? Не хватает мотивации? Эта профессия не для вас.
    Работа програмиста на 80% - это чтение кода, изучение технологий, ковыряние логов, отладка и т.д. Рутины будет много (как и в любой другой профессии) и эту рутину нужно любить чтобы не сгореть еще стажером.
    3. Курсы вам помогут системным подходом к обучению, но вся информация в них доступна бесплатно в интернете, а так же в книгах за сравнительно небольшой прайс.
    Ответ написан
    6 комментариев
  • Онлайн-школа или личный ментор?

    ali5
    @ali5
    Не нужны ни менторы ни курсы,
    лучшее обучение тут 2 варианта -
    Институт по спецальности Разработка/it или Самому ТОЛЬКО по книгам (Авторов тех же Интститутов или уважаемых программистов с тонной опыта), а то как мой знакомый начитался на каком-то сайта по JS, а там была умышленно сделана ошибка чтобы курс их купили xd и ему на собеседовании из за этого отказали, обрывки в интернете эти могут на нет вообще обучение свести.

    всё. Курсы, менторы - деньги на ветер.
    Ответ написан
    1 комментарий
  • Как правильно просить повышения зарплаты?

    @ArgosX
    Из опыта все повышения ЗП что у меня были только после заявления на стол. Только это может подчеркнуть руководству серьезность твоих намерений и что это не блеф и не поддельный офер. И вот в этот момент и оценивается твоя реальная значимость для компании. Если нужен - предложат какой то вариант, если нет то отпустят. Да действительно в этом случае ты должен быть готовым уйти если пойдет не по плану, но с другой стороны стоит ли тратить свое время опыт и силы на такую компанию?
    Ответ написан
    Комментировать
  • Какой курс по тестированию ПО будет лучшим для человека, который учится с нуля?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Подскажите какую-нибудь книжку или бесплатный курс, где нет ничего сложного и лишнего, чтобы с полного нуля научиться диагностировать болезни и пойти работать врачом-диагностом начинающим.
    Ответ написан
    Комментировать
  • Как использовать AsyncThunk в middleware redux?

    @ArgeoMer Автор вопроса
    Next прокидывает action в следующий middleware или, если middleware больше нет, запускает action в редьюсер. По этому пути ясно, что acync Thunk не может быть обработан(он не встречает на этом пути необходимый DefaultMiddleware)
    Чтобы это исправить достаточно отправить асtion не в следующий middleware, а прокинуть его в начала пути через store.dispatch(asyncThunk)
    export const updateData: Middleware =
       (store) => {
          const dispatch = store.dispatch as AppDispatch
          return (next) =>
             (action: PayloadAction) => {
                if (action.type.startsWith('login/')) {
                   dispatch(fetchOffersAction())
                }
                return next(action)
             }
       }
    Ответ написан
    Комментировать
  • Разница между JavaScript и HTML5 игрой?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    На html игры не пишут. Их всегда пишут на javascript
    Просто так называют игры, которые для отображения используют холст (canvas)
    Такое название сложилось исторически, с тех времен, когда игры в основном писались на флеше. Вот чтобы их как-то обособить игры на js стали называть играми на html5 в противовес флешу.
    Ответ написан
    Комментировать
  • Почему возникает утечка памяти в php-fmp?

    @Vitsliputsli
    Утечка - это когда процесс не пользуется памятью, но и не высвобождает. По вашему описанию, php-fpm прекрасно использует память для других скриптов, а также высвобождает при необходимости. Т.е. это не утечка.

    Чтобы утечка проявила себя более явно установил memory_limit = 1G

    Выделение памяти операционкой это медленный процесс, поэтому при возможности выгоднее запросить побольше, вы выставили лимит в 1G, почему бы не зарезервировать сразу 18%.

    В общем, если без перезапуска php-fpm рано или поздно получите ошибку недостатка памяти, тогда можно будет говорить об утечке.
    Ответ написан
    6 комментариев
  • Как убрать уведомление темы в wordpress о переходе на платную версию?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Попробуй вот так:
    add_action( 'wp_loaded', function(){
    	remove_action( 'admin_notices', 'enjoyblog_notice' );
    } );

    Можно добавить в functions.php для быстрого теста.
    Ответ написан
    2 комментария
  • Как на сайте лучше разместить раздел вопросов?

    vabka
    @vabka Куратор тега Веб-разработка
    Почему бы не сделать и то и то?
    И раздел с вопросами на все темы, а в разделе с болгарками просто применять фильтр и выводить только вопросы про болгарки
    Ответ написан
  • Как правильно обновлять данные react после обращения к api?

    neuotq
    @neuotq
    Прокрастинация
    Изменения в UI до прихода данных с сервера - тн оптимистический подход (Optimistic UI updates).
    Советую следовать простому правилу: делать оптимистичные обновления в интерфейсе всегда, кроме случаев когда это критично для пользовательских сценариев(очень редко когда и где нужно). В таком случае ваше приложение будет ощущаться намного более отзывчивым, приятным и быстрым. Ошибки и откаты можно сделать потом, после прихода с сервера ответа с ошибкой.
    Советую погуглить "Optimistic UI updates", статей на этот счёт в разном контексте огромное число.
    Ответ написан
    1 комментарий
  • Как реализовать функцию,принимающую неограниченное кол-во объектов и возвращает новый объект,содержащий все поля со всех объектов?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    раз хочется именно с reduce() – то можно редьюсить массив аргументов до одного результирующего объекта:
    const mergeObjects = (...args) => args.reduce((acc, c) => Object.assign(acc, c));

    Использование:
    mergeObjects({a: 'A'}, {b: 'B'}, {c: 'C', a: 'AAA'})
    // { a: "AAA", b: "B", c: "C" }


    Или так, чуть почище, чтобы не менять первый исходный объект:
    const mergeObjects = (...args) => args.reduce((acc, c) => ({...acc, ...c}), {});
    Ответ написан
    7 комментариев
  • Что означает "/s" в конце комментариев на Хабре?

    Boomburum
    @Boomburum Куратор тега Хабр
    Местный
    Это означает, что комментарий был написан в режиме сарказма ) sarcasm mode on ... sarcasm mode off.
    Ответ написан
    1 комментарий
  • Литература по этапу инициации IT стартапа?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Учебники по маркетингу и экономике.
    Ответ написан
    3 комментария