Задать вопрос
  • Система для пользователей по отправке идей и их оценке?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Вариантов много. Заметная часть - платные, ввиду задач, которые решаются (развитие бизнеса).

    Что-то из списка да должно подойти. Если нет, рассмотрите вариант обработать напильником, например, вордпресс или друпал.

    https://www.phpback.org/ - open-source
    https://userreport.com/
    idea.informer.com

    Платные с бесплатным планом:
    https://sleekplan.com/pricing/
    https://ideolo.co/pricing
    https://supahub.com/pricing
    https://www.freshworks.com/freshdesk/pricing/
    https://formbricks.com/pricing
    https://canny.io/pricing

    https://rapidr.io/pricing/ - от $49
    Ответ написан
    1 комментарий
  • Хочу поднять свои ipv6 прокси на своем vps сервере при помощи скрипта какого то, но не могу найти рабочий скрипт, скинете?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Не-а. Мы тут злые ежи, можем только методику подсказать, что посмотреть и поправить. За готовым продуктом - это немного не к нам :) Там, где надпись "Хабр Q&A" справа стрелочка есть, Нажимаешь на нее, выбираешь "Фриланс" - тебе скинут какой угодно скрипт... за твои деньги :)
    Ответ написан
    Комментировать
  • А возможно ли сделать свой дублирующий хостинг-сервер?

    Для надёжности вам нужно 3 сервера:
    1 - ваш VPS
    2 - ваш домашний сервак
    3 - Load balancer, который будет настроен таким образом, чтобы направлять трафик на сервер 1, но если он лёг, то направлять его на сервер 2.

    Чтобы не покупать отдельный сервер под Load balancer, можете посмотреть в сторону специальных сервисов. Например Cloudflare: https://developers.cloudflare.com/load-balancing/
    Ответ написан
  • Есть ли языки/нотации для записи бизнес-логики?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Диаграммы же. Смотрите в сторону с текстовой базой. Типа UML и прочее. Вот еще тоже неплохой онлайн инструмент для создания диаграмм из текстового описания: https://www.mermaidchart.com/landing (можно запустить локальный инстанс у себя).

    UPD1:
    Пример флоу-диаграммы русалки:
    flowchart TD
        A[Полльзователь] --> B(Скидка)
        B --> C{Тариф - платина?}
        C -->|Да| D[15%]
        C -->|Нет| E[5%]

    Картинка:
    spoiler
    6687d7a27a876258314167.png

    UPD2: Можно взять что-то гибридное типа ЯП Дракон.
    Ответ написан
    5 комментариев
  • Какие используете единицы измерения при верстке?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Какие используете единицы измерения при верстке?

    Подходящие!
    Для решения разных задач используются разные единицы измерения

    примеры

    1. Размер шрифта удобно писать в px, em и rem.
    Если он фиксированный, то это px.
    Если зависит от настроек пользователя, то rem. Для html задают font-size: 62.5%, для body font-size: 1.6rem в итоге для стандартных настроек получают изначальные 16px, но для удобства расчетов в этом случае 1rem=10px.
    Если размер шрифта зависит от размера шрифта родителя, то используют em, например, заголовок должен быть в 1.2 раза крупнее текста. h1{font-size: 1.2em}
    А может быть мне нужен адаптивный шрифт, чтобы на всех экранах слово занимало всю ширину, тогда vw vh

    2. Границы. Обычно толщина границ не зависит от шрифта или размеров блоков, значит, px
    border: 1px

    3. Блоки.
    У блоков могут быть разные зависимости.
    Например, четверть родителя -> проценты %
    Или фиксированная -> px
    Или зависит от ширины/высоты вьюпорта -> vw vh
    Или зависит от шрифта -> ch (Ширина символа 0 в шрифте текущего элемента.)

    4. Отступы.
    Могут зависеть от шрифта, могут быть % от ширины блока или фиксированными в px.

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

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Не оттуда пляшете.

    Давайте я вам как девочка девочке всё объясню. На примере джинсов.
    Есть такая штука мода. Сейчас в обтяжку, раньше клеш или широченные. Но при этом всегда остаются люди предпочитающие классику или консерваторы, которые предпочитают даже слегка устаревшую классику.

    Так вот, с сайтами аналогичная история.
    10 лет назад считалось, что шрифт 14px это гигантомания и использовали 10 или 12. Между строчками крошечные отступы. Особо нерадивые даже между абзацами пытались не делать пустых строк.

    Есть мода и восприятие пользователем современных сайтов. То, как хочется видеть именно сейчас. Изменяются даже пропорции и зависимости.
    96 это точно такое же красивое число как 100. Это 16*6. А 16 это стандартный размер шрифта основных браузеров.

    Кроме этого есть аспекты адаптивности.
    И правильно не ширина кнопки равна 100 или 96px, а ширина кнопки это ширина текста плюс отступы. И хорошо бы, чтобы эти отступы были пропорциональны размеру шрифта, а не кратны 5px. Вы поставите отступ четко 20px, а пользователь поставит в настройках браузера шрифт 150%. И получится куцая кнопка с некрасивыми маленькими отступами.
    При этом не все элементы должны быть кратны размеру шрифта, какие-то имеют другие зависимости.

    Другой вариант, пропорции относительно размеров экрана или блока. Например, кнопка должна занимать всю ширину блока или половину. Если текст не помещается, то переносится.

    Поэтому, хороший дизайнер либо сопровождает работу верстальщика, либо пишет сопроводительное письмо с указанием зависимостей, либо и то и другое.

    И да, дизайнер может четко сказать, что справа отступ 19px, а слева 17, потому что визуально (например, из-за особенностей шрифта) получается ровно. Если это проблема для верстальщика, то не надо работать с таким верстальщиком.
    Верно и в обратную сторону, если дизайнер нагородил какую-то невменяемую конструкцию из-за которой прибавляется лишняя 1000 строчек кода, то имеет смысл обсудить целесообразность ее использования с самим дизайнером и заказчиком.

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

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Студентам в начале курса говорила, кто хорошо в детстве играл в лайнс, тетрис и подобное, тот будет хорошо верстать.
    Верстка это обычная геометрия средней школы записанная с помощью тегов и раскрашеная/подвинутая стилями. Всё.
    Всякие JS и т.д. это просто следующий этап.

    План действий может быть таким:
    1. Берете/получаете макет
    2. Внимательно рассматриваете его, мысленно разбивая на блоки. Думаете что куда может/должно растягиваться или уменьшаться при изменениях экрана и увеличении/уменьшении контента.
    3. Если п.2. сразу не осилился, идете гулять или спать.
    4. Возвращаетесь к п.2.
    5. Верстаете понятные большие блоки, затем их заполняете. Разбивайте задачи более простые.

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

    А совсем без проблем не выйдет, потому что экранов много, браузеров много, хотелок у заказчиков еще больше. Хорошо, когда эти хотелки интересные :)
    Ответ написан
    12 комментариев
  • RX 7900 GRE или RTX 4070 Super?

    xez
    @xez Куратор тега Железо
    TL Junior Roo
    Мой опыт такой (rx480 -> rx5700xt): какая-то у них проблема есть.
    Не знаю, то ли ПО кривое, может с железом что-то не так, или мне не повезло просто. Но с rx480, помню, полгода после покупки сталкивался с проблемой черного экрана. Чего только не делал, два бп заменил, потом само-собой как-то починилось.
    Потом с rx5700xt проблемы с температурами были. На новой карте, считай, пришлось термопасту менять - тогда только нормально заработало.

    Вот почти четыре года назад приобрёл rtx3080 на старте продаж - никаких проблем вообще. Вставил и работает.
    Ответ написан
    Комментировать
  • Как получить данные с сайта росреестра?

    Vindicar
    @Vindicar
    RTFM!
    Правило номер ноль при парсинге: при любых проблемах сохраняй на диск то, что тебе пришло в ответе от сервера.
    То, что ты видишь в браузере - это не обязательно то же самое, что браузер получил от сайта.
    То, что браузер получил от сайта - это не обязательно то же самое, что requests получит от сайта.

    В данном случае, и requests и браузер получают в ответе вот это:
    <body style="height: 100%; width:100%;">
    <div id=app style="height: 100%; width:100%;"></div>
    <script src=js/chunk-vendors.c1d200da.js></script>
    <script src=js/chunk-common.adcda62e.js></script>
    <script src=js/chunk-esri.caf28189.js></script>
    <script src=js/index.ca134891.js></script>
    </body>

    Как видишь, нужного элемента тут просто нет, потому что он создаётся динамически, через JavaScript. А BS не выполняет скрипты.

    Варианта только два:
    1. Выяснять, каким запросом сайт подтягивает данные для этого, научиться этот запрос делать самостоятельно и вытаскивать искомые данные из полученного. Медленно и трудно на подготовительном этапе, зато потом работает сравнительно быстро... если, конечно, сайт защиту от парсинга не поставит.
    2. Запускать управляемый браузер, дать ему загрузить страницу и выполнить скрипты, а потом уже искать нужные данные. Быстрое решение в плане разработки, но более медленное и ресурсоёмкое в дальнейшем использовании.
    Ответ написан
    Комментировать
  • Как получить данные с сайта росреестра?

    NeiroNx
    @NeiroNx
    Программист
    для безграмотных парсеров поиск росреестра:

    https://pkk.rosreestr.ru/api/features/?text=52.929979122449325+87.97534995053527&tolerance=2&types=[2,3,4,1,21,5,10]


    вернет он:
    {
      "total": 5,
      "results": [
        {
          "sort": 42120102004,
          "type": 2,
          "center": {
            "y": 6970386.423234693,
            "x": 9794346.776440643
          },
          "attrs": {
            "cn": "42:12:0102004",
            "id": "42:12:102004"
          },
          "extent": {
            "xmax": 9795238.11208436,
            "ymin": 6969855.0191011,
            "ymax": 6971012.594670494,
            "xmin": 9793163.65570717
          }
        },
        {
          "sort": 4212,
          "type": 3,
          "center": {
            "y": 6950818.390114815,
            "x": 9810172.497224698
          },
          "attrs": {
            "cn": "42:12",
            "id": "42:12",
            "name": "Таштагольский"
          },
          "extent": {
            "xmax": 9934125.20280487,
            "ymin": 6829546.777098134,
            "ymax": 7049761.803853536,
            "xmin": 9674999.04333556
          }
        },
        {
          "sort": 42,
          "type": 4,
          "center": {
            "y": 7328079.667631133,
            "x": 9706880.109152177
          },
          "attrs": {
            "cn": "42",
            "id": "42",
            "name": "Кемеровский"
          },
          "extent": {
            "xmax": 9952694.29980072,
            "ymin": 6829546.774971992,
            "ymax": 7726492.011682568,
            "xmin": 9401209.32240626
          }
        },
        {
          "sort": 4212010200400025,
          "type": 1,
          "center": {
            "y": 6970070.760976506,
            "x": 9793366.321078256
          },
          "attrs": {
            "address": "Кемеровская область, р-н. Таштагольский, пгт. Шерегеш, ул. Лесная, д. 3",
            "cn": "42:12:0102004:25",
            "id": "42:12:102004:25"
          },
          "extent": {
            "xmax": 9793403.39482761,
            "ymin": 6970010.120180669,
            "ymax": 6970129.685452594,
            "xmin": 9793328.57189643
          }
        },
        {
          "sort": 4212010200401338,
          "type": 5,
          "center": {
            "y": 6970067.466684912,
            "x": 9793370.470713653
          },
          "attrs": {
            "address": "Российская Федерация, Кемеровская область-Кузбасс, Таштагольский муниципальный район, Шерегешское городское поселение, пгт. Шерегеш, ул. Лесная, дом 3",
            "cn": "42:12:0102004:1338",
            "id": "42:12:102004:1338"
          },
          "extent": {
            "xmax": 9793387.58929377,
            "ymin": 6970050.160377153,
            "ymax": 6970087.472030083,
            "xmin": 9793353.0083641
          }
        }
      ]
    }

    парсится такое на раз-два.

    надеюсь пояснять про то какое поле что значит не надо?
    Ответ написан
    3 комментария
  • В чем различие == и IS в Python?

    sim3x
    @sim3x
    The current implementation keeps an array of integer objects for all integers between -5 and 256, when you create an int in that range you actually just get back a reference to the existing object. So it should be possible to change the value of 1. I suspect the behaviour of Python in this case is undefined. :-)


    https://docs.python.org/2/c-api/int.html#c.PyInt_F...

    в 3 тоже самое
    Ответ написан
    Комментировать
  • В чем различие == и IS в Python?

    @nirvimel
    Экземпляр класса - это и есть объект, а переменная это просто имя, которому сопоставлено некоторое значение. А так как в Python любое значение - это объект (экземпляр) какого-то класса, то операторы is и == всегда применяются к значениям переменных, то есть к объектам (экземплярам) класса.

    А чтобы понять различия между операторами is и == запустите этот код и посмотрите на вывод:
    class AlwaysEqual(object):
        def __eq__(self, other):
            return True
    
    instance = AlwaysEqual()
    print (instance == 42)  # True
    print (instance is 42)  # False
    print (instance is AlwaysEqual())  # False
    print (instance is instance)  # True

    Это пример класса, любой экземпляр которого всегда равен (==) всему, чему угодно.
    В то же время, экземпляр этого класса не является (is) другим экземпляром этого же класса и ничем другим кроме самого себя.
    Ответ написан
    Комментировать
  • В чем различие == и IS в Python?

    mututunus
    @mututunus
    Backend developer (Python, Golang)
    is проверяет, что переменные указывают на один и тот же объект в памяти. Но особенность в том, что, для экономии памяти, булевы типы, числа и строки могут кешироваться.
    Ответ написан
    Комментировать
  • В чем различие == и IS в Python?

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

    Python (CPython, если быть точнее) в целях производительности кеширует короткие строки и малые целые числа, поэтому возможны такие казусы:

    >>> str1 = 'hello'
    >>> str2 = 'hello'
    >>> str1 == str2
    True
    >>> str1 is str2
    True
    >>>


    Но стоит сделать строку длиннее и всё встаёт на свои места:

    >>> str1 = 'hello, my crazy world'
    >>> str2 = 'hello, my crazy world'
    >>> str1 == str2
    True
    >>> str1 is str2
    False
    Ответ написан
    2 комментария
  • Почему время жизни параметров берутся из дженериков?

    bingo347
    @bingo347
    Crazy on performance...
    Советую почитать вот эту статью: https://habr.com/ru/articles/515034/

    А вообще, времена жизни - это часть типа.
    Условный u32 имеет время жизни 'static
    А ссылка на u32 - &'a u32 (где 'a это диапазон от объявления исходного u32 до его последнего использования) будет иметь время жизни 'a
    Пример по сложнее, ссылка на ссылку - &'a &'b u32 - будет иметь время жизни наименьшее из 'a и 'b

    Передаётся через дженерик, так как функция должна работать с абстрактным временем жизни
    fn example<'a>(r: &'a u32) -> &'a u32 { r }
    
    fn f_a() {
        let a = 1;
        let r = example(&a);
    }
    
    fn f_b() {
        let b = 1;
        let r = example(&b);
    }
    В этом примере очевидно что переменная a в f_a будет иметь время жизни отличное от b в f_b, но example спокойно работает и с тем и с другим, то есть она является обобщённой по времени жизни, в первом случае она вернёт ссылку с временем жизни как у переменной a, во втором - как у b.

    А ещё помимо времен жизни и типов в дженериках могут быть некоторые константы:
    fn make_array<const SIZE: usize>(el: u32) -> [u32; SIZE] {
        [el; SIZE]
    }
    
    let arr = make_array::<3>(1); // [1, 1, 1]
    Ответ написан
    3 комментария
  • Ошибка Allowed memory size of 4294967296 bytes exhausted (tried to allocate 81920 bytes)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Исправить скрипт, чтобы ему для работы не требовалось 4 Gb оперативки.
    Ответ написан
    1 комментарий
  • Где хранить бесконечность записей (111 * 10^29)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Это что вы такое собрались хранить?
    95*111*1029 байт ≈ 1034 байт ≈ 1022 терабайт
    Значит покупаете тысячу миллионов миллионов миллионов винчестеров на 10 Tb и получаете своё хранилище.
    Ответ написан
    12 комментариев
  • Каков план личностного развития JavaScript программиста с нуля?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    1. Выучить русский язык. Узнать, что такое "личностное развитие" и чем оно отличается от профессионального.
    Ответ написан
    2 комментария
  • В чем нарушение синтаксиса в данном запросе? Как его исправить?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    https://dev.mysql.com/doc/refman/8.4/en/with.html
    В mysql нет синтаксиса with ... insert ...
    insert ... select допустим в виде INSERT ... WITH ... SELECT ...

    мне понравилась идея делать обширные подзапросы отдельно

    Аккуратнее, оно к очень большим приключениям.
    Ответ написан
    Комментировать