Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
zoonman

Philipp

⋆⋆⋆⋆⋆
  • 670
    вклад
  • 34
    вопроса
  • 941
    ответ
  • 30%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как сделать симуляцию движений мыши?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    https://docs.microsoft.com/en-us/learn/modules/pad...
    Ответ написан 26 июл. 2022
    Комментировать
    Комментировать
  • Как можно красиво убирать элемент списка со страницы?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    https://developer.mozilla.org/en-US/docs/Web/CSS/t...
    https://developer.mozilla.org/en-US/docs/Web/CSS/a...
    Ответ написан 25 июн. 2022
    3 комментария
    3 комментария
  • Что лучше использовать в локальной разработке веб-проектов на Mac OS? MAMP Pro или Docker?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    Про то, что Docker умирает пишут малообразованные.
    Docker очень даже живет, просто он изменил политику предоставления услуг и стал предоставлять свои технологии за денежку.
    На мой взгляд Docker единственный приемлемый вариант для развертывания разного рода сервисов с разветвленной архитектурой. Вкупе с Docker Compose вообще идеальный вариант.
    Ответ написан 17 мая 2022
    Комментировать
    Комментировать
  • Как может навредить злоумышленный сайт, где мы не вводим свои данные?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    Если у браузера и его расширений нет уязвимостей, то не может. Основная проблема потенциально опасных сайтов в том, что они эксплуатируют уязвимости на уровне браузера и/или операционной системы в целом.

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

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    Добавить атрибут autocomplete="email", браузер будет подставлять адрес автоматом.
    Ответ написан 25 мар. 2022
    Комментировать
    Комментировать
  • Как определить оператора связи на js?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    Любые интернет провайдеры покупают определенный участок ip-адресов. Как вам написали выше, MaxMind и Neustar одни из лидеров в области трасляции диапазонов в информацию.
    У всех есть разного рода API. Конторы вроде Гугля с Яндексом тоже давно это делают, но имеют свои внутренние базы, которые собираются от разных провайдеров.
    Ответ написан 18 февр. 2022
    Комментировать
    Комментировать
  • Как выключить ардуино, а потом включить кнопкой?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    Вам нужно подключать кнопку на один из пинов с аппаратным прерыванием (обычно 2 или 3) и потом конфигурировать обработчик прерывания.

    https://playground.arduino.cc/Learning/ArduinoSlee...
    Ответ написан 15 февр. 2022
    Комментировать
    Комментировать
  • Кто-нибудь из уважаемого сообщества понял зачем нужны Файберы появившиеся в 8.1?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    Простым языком волокна придуманы для упрощения параллельных взаимных блокировок.
    Например у вас есть сложный параллельный многошаговый алгоритм, у которого параллельные ветви работают с некоторым расшаренным объектом, например куском памяти или файлом.

    Вот тут почитайте, сразу прояснится.

    https://wiki.php.net/rfc/fibers
    https://clue.engineering/2021/fibers-in-php
    https://ruby-doc.org/core-2.5.0/Fiber.html

    Из-за того, что в PHP нет полноценной системной асинхронности и мультипоточности, появяются вот такие городушки, но все равно надо использовать какой-то планировщик вроде Amp.
    В общем, это первые шаги на пути к полноценной асинхронности в PHP.
    Ответ написан 14 февр. 2022
    Комментировать
    Комментировать
  • Почему Mongoose не передает все данные?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    MongoDB имеет ограничение на размер документа в 16Мб.
    Да и сама идея хранить 10000 строк внутри одного документа попахивает.
    Ответ написан 09 февр. 2022
    Комментировать
    Комментировать
  • Как сделать датчик толщины?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    Возьмите китайский микрометр. Разберитесь, как там сделан датчик.

    Альтернативно можно изготовить оптическую систему - источник света, линза, камера. Дальше какой-нибудь фильтр собеля к примеру, измерение ширины проекции.
    Альтернативно можно измерить толщину путем рычага и зеркала.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Почему Git изменил код?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    У WebStorm, который у вас открыт, есть прекрасный инструмент разрешения конфликтов.

    Через меню сначала сделайте Git->Commit.
    Потом в меню Git -> Fetch (вытащить все последние изменения с сервера в кэш гита).
    Затем Git -> Pull.
    Если есть конфликты, откроется инструмент разрешения конфликтов.

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

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    Из запущенных машин не получится. А вот запущенный контейнер можно закоммитить.

    Вообще, лучше не заниматься городушками и использовать Kubernetes. Там можно полноценный ceph-стек подтягивать через Helm.

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

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    https://github.com/hoffstadt/DearPyGui посмотрите
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как создать пользовательскую конверсию в FaceBook для отслеживания создания аккаунтов пользователями в приложении?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    https://developers.facebook.com/docs/marketing-api...
    Ответ написан более года назад
    1 комментарий
    1 комментарий
  • Как отобразить связи между микросервисами?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    Если бы вы пользовались нормальным кластерным софтом типа Istio, вам отлично подошел бы киали https://kiali.io/docs/features/topology/
    А так смотрите в сторону графов. Graphviz Пример viz-js.com
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Почему при пайке, отрывая жало от точки припоя, за жалом тянется хвост?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    Это случается потому что припой на плате с компонентами остывает быстрее, чем та часть, что тянется за жалом.

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

    Альтернатива - использовать жало, к которому припой не пристает вообще. Такие есть. Разумеется подача припоя и флюса становится сложнее, тут и пригодится паяльная паста. Ну а там где паяльная паста, то уже недалеко и до паяльного фена.

    Еще можно купить вот такую хрень https://www.aliexpress.com/item/1005003523148728.html и паять все компоненты разом. Стоит не так дорого. Если у вас плата сделана правильно, то компоненты в перевернутом состоянии будут удерживаться за счет сил поверхностного натяжения.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Something went wrong. Make sure you’ve disabled any ad blockers. TWITTER. Что делать?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    Многие антивирусы используют блокировщики рекламы.
    Ответ написан более года назад
    1 комментарий
    1 комментарий
  • Корректно ли пишу код NodeJS?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    Посмотри knex, joi.

    // Для начала разбиваем код на отдельные обработчики и храним все раздельно
    // например в signup.ts
    import { ERR_USER_EXISTS, ERR_USER_CREATION_FAILED } from './utils/error-codes.ts'
    import { planAction, USER_CREATED } from './event-bus/rabbit.ts'
    import { validateSignUpData } from './validator/signup.ts'
    import { userModel } from './model/user.ts'
    
    // собственно обработчик
    export const signup = async (req, res) => {
        const { body } = req // намного удобнее использовать destructuring
        const { email, password } = body  // и const позволяет контролировать неизменность
    
        try {
    
            validateSignUpData({email, password}) // зависит от бизнес-логики
    
            const isUserExists = await userModel.isUserExists(email)
            if (isUserExists) {
                res.status = 400
                res.json({
                    message: 'User exists',
                    code: ERR_USER_EXISTS // вместо написания сообщений об ошибках
                                          // принято возвращать код ошибки
                                          // это позволяет адаптивную локализацию на фронте
                                          // этот код ошибки отличается от HTTP Status Code 
                                          // https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
                                          
                })
                return
            }
    
            // попытаемся создать пользователя
            const userInfo = await userModel.createUser({email, password})
            if (!userInfo) {
                // в зависимости от того, как реализован createUser, он может выбрасывать исключение
                // либо возвращать пустоту
                res.status = 400
                res.json({
                    message: 'User creation failed',
                    code: ERR_USER_CREATION_FAILED
                })
                return
            }
    
            // запланируем отсылку события, обычно этот код должен быть реализован асинхронным
            // и не блокировать основной поток событий
            planAction({
                event: USER_CREATED,
                playload: userInfo
            })
    
            // отправим успешный ответ на фронт
            res.status = 200
            res.json(userInfo)
    
        } catch (e) {
            // любая ошибка, где бы она не возникла, должна быть обработана
            // в целом обычно применяется более сложная система с набором специфичных исключений 
            // и общим обработчиком ошибок
            res.status = 501
            res.json({
                message: e.message,
                code: e.code || 0
            })
        }
    }
    
    
    // далее в app.ts
    // затем мы просто привязываем их
    import { signup } from './signup.ts'
    app.post('signup', signup)
    Ответ написан более года назад
    1 комментарий
    1 комментарий
  • Как исключить создание дубликатов при запросе RabbitMQ?

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    Проверка на занятость EMail есть, но запросы асинхронно срабатывают, и в итоге проверку проходят.

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

    zoonman
    Philipp @zoonman
    ⋆⋆⋆⋆⋆
    1. Нанимаете команду в штат на зарплату.
    2. Знакомите его со старым исполнителем.
    3. Обеспечиваете задачами, чтобы приработались вместе, месяца 3-4.
    4. Делаете нормальный официальный хостинг на юр.лицо.
    5. Переводите сайт с хостинга старого исполнителя на свой.
    6. Разрываете контракт со старым исполнителем по поводу очередной отсрочки или отмазки.

    Съэкономить на программисте больше не получится. Делайте выводы.
    Ответ написан более года назад
    11 комментариев
    11 комментариев
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Следующие →
Самые активные сегодня
  • mayton2019
    • 10 ответов
    • 0 вопросов
  • Drno
    • 7 ответов
    • 1 вопрос
  • meidi
    Dlaynet tenyalD
    • 4 ответа
    • 2 вопроса
  • rPman
    • 6 ответов
    • 0 вопросов
  • Dr. Bacon
    • 6 ответов
    • 0 вопросов
  • CityCat4
    CityCat4
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации