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

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

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

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

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

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

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

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

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

Александр Афанасьев

  • 1
    вклад
  • 26
    вопросов
  • 4
    ответа
  • 25%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как использовать контроль версий для сайта на обычном хостинге?

    lexnekr @lexnekr
    Удивительно, но некоторые "обычные хостинги" (например, beget, не рекламирую) умеют использовать git. Как правило делается это по запросу.
    Уточните у техподдержки хостера.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Symfony. Как проверить, не занят ли логин у юзера?

    iAdil @iAdil
    Просто добавь Unique

    /**
     * @ORM\Entity
     * @UniqueEntity("login")
     */
    class User
    {


    Как в entity получить доступ к бд?

    На будущее, если надо не просто уникальность, а какое-то другое условие использовать, создавай Validation Constraints
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Symfony. Как проверить, не занят ли логин у юзера?

    user49981 @user49981
    https://symfony.com/doc/current/bundles/FOSUserBun...
    https://stackoverflow.com/a/51770985/10111639
    use FOS\UserBundle\Model\User as FosUser;
    
    class User extends FosUser
    {
    
    }

    Если этого не достаточно:
    https://symfony.com/doc/current/reference/constrai...
    https://symfony.com/doc/current/validation/transla...
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Как обновить записи таблицы по парам старое значение -> новое значение?

    0xD34F
    0xD34F @0xD34F
    UPDATE test SET
      target_id = t.new_id
    FROM (
      SELECT
        unnest(ARRAY[1206, 1210, 1211, 1250]) AS old_id,
        unnest(ARRAY[1281, 1282, 1283, 1287]) AS new_id
    ) AS t
    WHERE target_id = t.old_id
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Какие технологии использовать для создания чата?

    Виктор @Levhav
    Возьмусь за разработку проектов любой сложности.
    Поддержка вебсокетов настолько широка (94%) что остальные методы уже устарели и мне кажется могут быть нужны если хотите совсем уж старьё поддерживать. Которое даже крупные соц сети не поддерживают.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Какие технологии использовать для создания чата?

    Abdusalamov
    Ренат Абдусаламов @Abdusalamov
    Front-end разработчик
    Смотря на чем будете реализовывать. В любом случае, если нужно "в реальном времени", то лучше подойдет WebSocket, а в качестве fallback'а — polling, long-polling для старых клиентов. Думаю, для каждого языка есть более или менее внятная реализация. Как указали ранее, socket.io для nodejs умеет сам переключать транспорты по необходимости.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как вести полнотекстовый поиск в postgresql по нескольким таблицам?

    BuriK666
    Андрей Буров @BuriK666
    Компьютерный псих
    Используйте UNION
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как правильно организовать сложную цепочку ajax-запросов?

    kurtov
    kurtov @kurtov
    this.start = function(){
        // останавливаем репликацию
        return this.stopAndClearExistsReplication()
            // удаляем локальную БД
            .always(function(){ return this.deleteLocalDB() })
            // создаём локальную БД
            .always(function(){ return this.createLocalDB() })
            // ставим БД на репликацию
            .done(function(){ return this.addReplicationDocument() })
            // ставим репликацию на отслеживание
            .done(function(){ return this.replicationMonitoring() });
    };

    По примеру похоже что вы в каждом предыдущем методе bind`ите правильный this так что можно вынести в функции выше.
    this.start = function(){
        // останавливаем репликацию
        return this.stopAndClearExistsReplication()
            // удаляем локальную БД
            .always(deleteLocalDB)
            // создаём локальную БД
            .always(createLocalDB)
            // ставим БД на репликацию
            .done(addReplicationDocument)
            // ставим репликацию на отслеживание
            .done();
    };
    
    function deleteLocalDB(){ return this.deleteLocalDB() }
    function createLocalDB(){ return this.createLocalDB() }
    function addReplicationDocument(){ return this.addReplicationDocument() }
    function replicationMonitoring(){ return this.replicationMonitoring() }


    Если доступны стрелочные функции и this один на все методы
    this.start = function(){
        // останавливаем репликацию
        return this.stopAndClearExistsReplication()
            // удаляем локальную БД
            .always(() => this.deleteLocalDB())
            // создаём локальную БД
            .always(() =>  this.createLocalDB())
            // ставим БД на репликацию
            .done(() => this.addReplicationDocument())
            // ставим репликацию на отслеживание
            .done(() =>  this.replicationMonitoring());
    };


    Если есть промисы и имена методов не требуют капитанских комментариев
    this.start = function(){
        return Promise.resolve()
            .then(() =>  this.stopAndClearExistsReplication())
            .always(() => this.deleteLocalDB())
            .always(() =>  this.createLocalDB())
            .done(() => this.addReplicationDocument())
            .done(() =>  this.replicationMonitoring());
    };
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Есть ли какой нибудь чек-лист по обслуживанию ОС linux?

    mak_sim
    Максим Сёмочкин @mak_sim
    maksim77ster@gmail.com
    Я бы порекомендовал с выбора и установки системы мониторинга и использования её преднастроенных шаблонов.
    Конечно это капля в море и без реального опыта всё равно будут пробелы в обслуживании сервера. Но с другой стороны это даст стартовую точку от которой уже можно плясать дальше.

    Например Zabbix. Достаточно легко разворачивается и имеет много встроенных шаблонов (сам Linux, веб-сервер, бд) с предустановленными триггерами, что позволит вам взглянуть комплексно взглянуть на сервер и сделать какие-то выводы.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как получить выделенный текст в QTableWidgetItem?

    xibir @xibir
    1:
    if (QLineEdit* cw = dynamic_cast<QLineEdit*>(m_tableWidget->cellWidget(m_tableWidget->currentRow(), m_tableWidget->currentColumn())))
          qDebug() << cw->selectedText();


    2:
    m_tableWidget->setEditTriggers(QAbstractItemView::AllEditTriggers);
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как задать тип данных в функциях postgresql?

    Melkij
    Melkij @Melkij
    PostgreSQL DBA
    v record;
    ?
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как запустить python скрипт в CentOS?

    mobilesfinks
    Алексей Ямщиков @mobilesfinks
    сисадмин *nix
    Самый простой вариант:
    Если скрипт сам не умеет держать себя в виде демона, то можно через крон с помощью flock с периодичность в минуту
    Flock будет проверять жив ли скрипт по лок файлу, и если нет, то запускать его.

    Вариант посложнее:
    Допилить скрипт до того, что бы он сам работал в качестве демона.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как составить post запрос в python?

    valerium
    Валерий Рябошапко @valerium
    Изобретая велосипед
    Чтобы сделать POST запрос, используйте функцию requests.post().
    response = requests.post('http://example.com/', data={'key': 'value'})

    Через аргумент data передаёте словарь с переменными, если они нужны. В переменной response оказывается объект ответ, у которого есть атрибут cookies, который содержит словарь с куками. Передать эти куки в следующем запросе можно с помощью параметра (вот ведь неожиданно!) cookies.
    next_response = requests.post('http://example.com/', cookies=response.cookies)


    Вообще модуль request невероятно хорош, никогда не видел настолько интуитивного и удобного способа работы с HTTP. Чего только один метод .json() стоит!
    Ответ написан более трёх лет назад
    8 комментариев
    8 комментариев
  • Питон для инженера?

    throughtheether @throughtheether
    human after all
    Какие инженерные задачи вы решали с помощью питона?
    Генерация файлов конфигурации для коммутаторов на jinja. Простые веб-интерфейсы (flask, bottle). Парсинг логов и экспортированных данных (lxml). Учет ресурсов (база на sqlite + веб-интерфейс + выгрузка отчетов).
    UPD: Забыл упомянуть, генерация трафика при помощи scapy в целях отлова бага.

    Почему не баш/пауэршелл?
    Проще было написать один раз на python и запускать где необходимо.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Excel VBA почему не выполняется поиск в объединенных ячейках?

    saboteur_kiev
    Saboteur @saboteur_kiev
    software engineer
    Потому что VBA криво работает с merge cells, и на официальном сайте экселя не рекомендуют использовать объединенные ячейки, если вы разрабатываете что-то сложное на VBA, потому что это нарушает и сортировку и цикл по ячейкам.
    Можно конечно придумать костыли перебором ячеек в цикле, но большинство готовых функций обработки столбцов и рядов работать не будут.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Вывод сообщение / уведомления как на Хабре при выполнение каких-либо операций

    metamorph
    Yuri Morozov @metamorph
    Ну, к примеру, через ajax сохранять, а при успешном сохранении в колбеке выводить сообщение.
    Вот неплохая библиотека для уведомлений: sciactive.com/pnotify
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Реализация функционала "Запомнить меня"?

    david_mz
    Давид Мзареулян @david_mz
    веб-разработчик: php, javascript, go
    Тема давняя, но на случай если кто-то ещё сюда зайдёт — есть вот такой вариант работы с авторизационными куками: david-m.livejournal.com/1267236.html
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
Самые активные сегодня
  • Sozdavan
    • 15 ответов
    • 0 вопросов
  • Evgenii
    • 11 ответов
    • 0 вопросов
  • Dr. Bacon
    • 8 ответов
    • 0 вопросов
  • Drno
    • 6 ответов
    • 0 вопросов
  • Денис
    • 5 ответов
    • 1 вопрос
  • Rsa97
    Rsa97
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

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

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