Задать вопрос
  • За что можно получить бан на хабр фрилансе?

    Ну во-первых бан мог произойти не из-за самого заказа, а из-за твоего аккаунта или твоего поведения.
    Ну начнём с самого очевидного:

    2.5
    Для регистрации Пользователь обязуется предоставить достоверную и полную информацию о себе по вопросам, предлагаемым в форме регистрации, и поддерживать эту информацию в актуальном состоянии. Если Пользователь предоставляет неверную информацию или у Хабра есть основания полагать, что предоставленная Пользователем информация неполна или недостоверна, Хабр имеет право по своему усмотрению заблокировать либо удалить учетную запись Пользователя, а также отказать Пользователю в использовании Приложений и связанных с ними Сервисов полностью или в определенной части.

    И есть п 2.6, где у тебя могут запросить ещё документы

    Дальше, уже если судить по заголовку:

    3.7.11
    размещать вакансии (для этого предназначен сервис Хабр Карьера).

    Но раз именно блокировка, а не скрытие/удаление заказа, то скорее всего дело с перс данными или твоей локацией.
    (Например, если ты в ЕС, а хабр не может соблюсти gdpr, то тогда тебя проще заблокировать)

    В любом случае для обсуждения бана нужно обращаться напрямую в поддержку сервиса, ибо сейчас это гадание на кофейной гуще.
    Ответ написан
    Комментировать
  • Как скачать все ветки если Git их не видит?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Вы сами попросили гит не скачивать весь репо, а скачать только 900 коммитов основной ветки. (параметром --depth 900). Это называется поверхностная копия shallow clone.

    Сейчас вы можете докачать всё с помощью команды
    git fetch --unshallow
    либо
    git fetch --all

    Если интернет ограничен, вы можете скачать например только последний коммит нужной ветки
    git fetch origin updater --depth=1
    И распаковать в рабочий каталог его
    git checkout updater
    Ответ написан
    Комментировать
  • Есть ли текстовый редактор с многократным уменьшением текста?

    GavriKos
    @GavriKos
    Микропетпроджект - домашнее облако homeCloud
    Ну VSCode например. Зум точно есть, межстрочный думаю где то в настройках темы можно поставить, как и шрифт.
    Мне кажется вы бы быстрее попробовали все известные редакторы, чем ждали ответа тут ))))

    Ну а так - я бы вообще это делал HTML-ой
    Ответ написан
    2 комментария
  • Как сделать так, чтобы Алиса брала ответы на мои вопросы из внешнего источника?

    borisdenis
    @borisdenis
    Ленив и вреден...
    Вам вот в эту документашку: https://yandex.ru/dev/dialogs/alice/doc/ru/quickst...
    Создаете нужный навык и прописываете что и где брать/смотреть.
    Ответ написан
    Комментировать
  • Как в Google Sheets определить, встречается ли подстрока в диапазоне?

    Geleoss
    @Geleoss
    Любитель таблиц
    677863e2e48ad789334498.jpeg

    =FILTER(A:A, XMATCH("*"&A:A&"*",source!A2:A, 2))
    Ответ написан
    3 комментария
  • Как ограничить доступ определенному пользователю в своем телеграмм боте?

    NeiroNx
    @NeiroNx
    Программист
    Надо узнать id пользователя и проверять его перед обработкой каждой команды.
    Ответ написан
    Комментировать
  • Какой тип данных у RegExp, TypedArray и других?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    А ведь и правда есть термин для них (но не тип, конечно): Well-Known Intrinsic Objects

    Если же вы спрашиваете как затипизировать что-то, что может быть "RegExp, Array, Function и другим" (и не указывая при этом каждый тип явно), то должен, наверное, подойти только object (не смог в доке TS найти отличается ли TS-тип object от базового JS-объекта; например, в TS есть явная типизация функций, но можно ли её заменить на object?). Но это максимально странная задача, которую явно надо решить каким-то другим способом.
    Ответ написан
    6 комментариев
  • Блокируется ли Wireguard в РФ?

    @Drno
    зависит от региона \ города \ оператора
    где то да, где то нет

    Официально - нигде нет списков разрешенных \ запрещенных. Всё как в туркменистане - узнаётся по факту...

    Если надо чисто для борьбы с действиями РКН, тогда ставьте xray vless reality - статьи есть на хабре. Можно с веб панелью - 3x-ui (есть на гитхабе)

    Если нужен именно ВПН - то аналог sstp - --ocserv (гитхаб)

    Если совсем нет знаний и понимания - ставьте Amnezia с протоколом xray \ vless. там есть автоустановщик и приложенька
    Ответ написан
    2 комментария
  • Как проверить текст на осмысленность?

    @Refguser
    Решения для бизнеса: корп.сайты, ИМ, боты и пр.
    Есть текст сообщения: 'фывыфывф фывффывф фывфывфывфы'. Мне нужно чтобы после проверки на подобное вернуло false. Что можно сделать?

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

    xez
    @xez
    TL Junior Roo
    Организовать прокси серверы в количестве, соответствующим количеству браузеров.
    Настроить каждый браузер ходить через отдельный прокси-сервер.
    Ответ написан
    4 комментария
  • Как Telegram бот может отправить ссылку для отправки SMS?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Можно давать ссылку на http/https, который редиректит на sms.
    Ответ написан
    5 комментариев
  • FFMPEG одновременное использование CPU и GPU для конвертирования mp4 файла в DASH?

    @rPman
    Подойдет разделить видео на части и запустить двумя процессами, с разными настройками для cpu и gpu, после же объединить полученные куски в режиме copy (на максимальной скорости диска)?

    Размеры кусков подобрать эмпирически после экспериментов, во сколько раз cpu медленнее gpu.

    Что то похожее я делал, перекодируя видео на нескольких физических машинах.
    Ответ написан
    Комментировать
  • Как расшифровать 1685700050?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Ну если это время, то:
    import datetime
    
    timestamp = 1685700050
    str_time = datetime.datetime.fromtimestamp(timestamp)
    print(str_time)

    У меня получилось 2023-06-02 13:00:50

    UPD. Это не код, а UNIX-время - количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года
    Ответ написан
    Комментировать
  • Как подключить вконтакте на сайт чтобы слать юзеру в вк уведомления или сообщения?

    @GrigoryMorozov
    Судя по документации и FAQ, вы не можете использовать полученный токен для того, чтобы разрешить сообществу отправлять сообщения пользователю (метод messages.allowMessagesFromGroup доступен только для standalone-приложений и требует одобрения со стороны ВК).

    Доступные вам варианты — явно запросить согласие на отправку сообщений через виджет или мини-приложение.
    Ответ написан
  • В какую сторону развивается Vue и есть ли ему современные альтернативы?

    yarkov
    @yarkov Куратор тега Vue.js
    Помог ответ? Отметь решением.
    Что вообще с фреймворком? Он развивается?

    Вы ведь даже не попытались гуглить. Не ходили в github проекта.
    Если да то в какую сторону и что слышно про Vue 4?

    В лучшую. Зачем вам 4? Разберитесь пока с тем что есть.
    Про React знаю, но интересуют именно Vue и ему подобные фреймворки

    Возьмите React )) Ну а подобные Vue... На слуху наверное только Svelte.
    Ответ написан
    Комментировать
  • Как тестировать запросы и ответы из базы данных через phpunit?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Мне кажется, что найденные варианты работают не так. Используются они оба, а какой именно - зависит от того, что именно вы тестируете - запрос или ответ.

    Если говорить про "запросы к БД", то для таких тестов "массив с данными" использовать просто глупо. Это получится какой-то формальный тест: "проверяем, что метод возвращает массив из трех строк - и тут же возвращаем этот самый массив". В чем смысл? Если вы тестируете запрос к БД, то и надо тестировать запрос к БД. По-другому никак.

    Здесь я отвлекусь, и порассуждаю на тему того, что на самом деле тестирование - это гораздо более трудоёмкая задача, чем обычно считается. И как следствие, большая часть тестов - это такая вот туфта. Либо тест заранее возвращает нужные данные, либо тестирует один-два кейса. А вариантов неправильных входящих данных ведь может быть огромное количество. То есть по-хорошему на такой заведомо сложный (и принципиально неделимый!) метод нужно десятка два тестов.

    И сюда же использование для тестов БД другой системы. Например основная БД MySQL, а для тестов используется Sqlite. Тут сразу можно сказать, что это профанация. Различие даже в какой-то одной настройке БД может повлиять на результаты запроса (и теста как следствие) - а тут и вовсе используется совсем другая БД.

    С другой стороны, работу с БД скорее стоит тестировать не в юнит тестах, а скажем в интеграционных. Но не будем углубляться.


    Массив же "с данными, симулирующими ответ из базы данных" используется на следующему уровне, там где требуется "ответ из базы данных". Взьмём метод, который использует данные, полученные из БД. Например авторизация юзера. Этот метод должен не сам лезть в базу, а дёргать отдельный метод, вполне возможно, что совсем другого класса. И вот чтобы протестировать авторизацию, вы и мокаете метод для работы с БД, и из этого мока возвращаете тот самый массив без всякого обращения к бд.

    Здесь нелишне будет напомнить название доклада с одной из последних конференций по пхп. Дословно не помню, но что-то вроде "Делайте методы как можно короче. Ваши тесты скажут вам спасибо." Собственно, именно при тестировании очень быстро начинаешь понимать удобство атомарных (то есть выполняющих какую-то одну простую операцию) методов. А без тестов пройдёт довольно много времени, пока не понадобится этот длинный метод отрефакторить, и по итогам менять кучу кода, который его вызывает.

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

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Ответ написан
    Комментировать
  • Почему метод pop удаляет не все елементы массива?

    Wispik
    @Wispik
    1. Нельзя итерироваться по объекту и одновременно изменять его
    2. pop удаляет с конца, а for of идет по массиву сначала

    Первая итерация цикла number=3, pop удаляет с конца, то есть 5
    вторая итерация number=8, pop удаляет 9
    и так далее
    когда number=6(четвертая итерация), 6 - это последний элемент массива, так как остальные удалил pop
    Ответ написан
    2 комментария
  • Как проксировать websocket не упираясь в пределы tcp?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Проксируется в целом ровно точно так же, как и любая сетевая нагрузка: клиенты [n] -> балансер -> сервера [m]. Лимит портов в 65к достаточно просто преодолевается путем добавления дополнительных сетевых адаптеров/каналов.
    Дополнительные ссылки:
    https://unetworkingab.medium.com/millions-of-activ...
    https://blog.postman.com/postman-engineering-milli...
    https://serverfault.com/questions/725224/how-to-ha...
    https://josephmate.github.io/2022-04-14-max-connec...
    https://github.com/eranyanay/1m-go-websockets
    https://github.com/ramsicandra/1million-ws

    Кроме того, WS коннекты можно балансировать как HTTP - банальным редиректом на прямой коннект к серверу. Т.е. клиент коннектится к балансеру, а он ему говорит: "а теперь тебе вот сюда коннектится надо". Или можно совмещать. Пару слов про проксирование WS в nginx: в сети пишут, что nginx с этим плохо справляется под существенной нагрузкой и лучше всего проксировать WS через специализированные прокси типа HAProxy.
    Ответ написан
    2 комментария