Задать вопрос
  • Чем frontend разработчик занят на реальных проектах?

    @Giperoglif
    Настройка тестов, CI/CD, OLAP CUBE, оптимизация запросов к БД
    - это важно для фронтенда знать, что такое просто есть) явно вас не тем загружают.
    Ответ написан
    2 комментария
  • Чем frontend разработчик занят на реальных проектах?

    С резким ростом популярности React Server Components и Next.js в последнее время происходит некий сдвиг в понимании, что такое фронтенд.
    BFF уже почти становится неотъемлемой частью "фронтенда", и становится обременительно разделять браузер и сервер на разные команды.
    На Западе, вообще, уже очень давно и макетами, и вёрсткой, и анимациями очень часто занимается один человек - дизайнер, фронтендеры занимаются связкой браузер + BFF, а бэкендеры занимаются более сложной бизнес-логикой.
    К тому же, джуниорам зачастую дают те задачи, которыми сами не хотят заниматься, и на что нет времени. Т.е. это что-то занудное, работа с legacy, передвижение кнопки на 5px влево и т.д. Крайне редко джуниорам дают интересные творческие задачи. Не факт, что вам на новом месте не дадут такие же неинтересные задачи.
    Вы можете либо молча сильно стараться в надежде, что вам потом дадут что-то интересное, заметив ваше рвение, либо, лучше всего, пообщаться по-человечески с коллегами и начальством, объяснив, что вы рветесь в бой, а вас в тылу держат. Попросите рассказать об их планах на ваш счёт.
    Не исключено, что у вас как раз хорошо получается "Настройка тестов, CI/CD, OLAP CUBE, оптимизация запросов к БД", и поэтому вам эти задачи и дают)
    В общем, человеческое общение с коллегами очень часто решает проблемы.
    Если же вы к ним придёте с открытой душой, а вас токсично отошьют, вот тогда подумайте о смене работы.
    Ответ написан
    7 комментариев
  • У меня не получается спарсить ссылку на фото с сайта, help?

    @rPman
    Не нужно ничего там парсить, сайт предоставляет официальный механизм для автоматизации - rss
    https://new-science.ru/search/%D0%B3%D0%BB%D0%BE%D...
    <?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
            xmlns:content="http://purl.org/rss/1.0/modules/content/"
            xmlns:wfw="http://wellformedweb.org/CommentAPI/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:atom="http://www.w3.org/2005/Atom"
            xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
            xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
            >
    
    <channel>
            <title>Вы искали глобальное потепление | New-Science.ru</title>
            <atom:link href="https://new-science.ru/search/%D0%B3%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5+%D0%BF%D0%BE%D1%82%D0%B5%D0%BF%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5/feed/rss2/" rel="self" type="applica
    tion/rss+xml" />
            <link>https://new-science.ru</link>
            <description>Актуальные новости научных открытий, высоких технологий, электроники и космоса.</description>
            <lastBuildDate>Sat, 05 Apr 2025 17:04:46 +0000</lastBuildDate>
            <language>ru-RU</language>
            <sy:updatePeriod>
            hourly  </sy:updatePeriod>
            <sy:updateFrequency>
            1       </sy:updateFrequency>
            <generator>https://wordpress.org/?v=6.7.2</generator>
    
    <image>
            <url>https://new-science.ru/wp-content/uploads/2019/08/favicon.png</url>
            <title>Вы искали глобальное потепление | New-Science.ru</title>
            <link>https://new-science.ru</link>
            <width>32</width>
            <height>32</height>
    </image>
    ...
                    <item>
                    <title>Атмосферные реки мигрируют к полюсам, изменяя климат планеты</title>
                    <link>https://new-science.ru/atmosfernye-reki-migrirujut-k-poljusam-izmenyaya-klimat-planety/</link>
    
                    <dc:creator><![CDATA[New-Science.ru]]></dc:creator>
                    <pubDate>Wed, 27 Nov 2024 07:20:47 +0000</pubDate>
                                    <category><![CDATA[Природа]]></category>
                    <guid isPermaLink="false">https://new-science.ru/?p=47504</guid>
    
                                            <description><![CDATA[<img width="1200" height="525" src="https://new-science.ru/wp-content/uploads/2024/11/865-6.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" st
    yle="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" loading="lazy" srcset="https://new-science.ru/wp-content/uploads/2024/11/865-6.jpg 1200w, https://new-scienc
    e.ru/wp-content/uploads/2024/11/865-6-768x336.jpg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" />Атмосферные реки, мощные потоки водяного пара, взвешенного в атмосфере, уже несколько десятилетий движутся
    неожиданным образом, изменяя характер осадков и климат в глобальном масштабе. Что такое атмосферная река? Атмосферные реки — это огромные потоки водяного пара, которые циркулируют в атмосфере и переносят количеств
    о влаги, сравнимое с крупнейшими реками на Земле, такими как Миссисипи. Эти небесные реки &#8230;]]></description>
    
    
    
                            </item>
            </channel>
    </rss>
    Ответ написан
    Комментировать
  • Почему i? Почему переменную, используемую в циклах, обычно называют именно i?

    @alexalexes
    index. А вообще, индексы элементов массива пришли из математики - i, j, k для первых трех измерений.
    Просто, первыми компухтеры оседлали математики, отсюда и традиция в циклах использовать эти буквы.
    Ответ написан
    2 комментария
  • Как эту задачу решить по другому?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Очевидно не перебирать все варианты, а решить систему уравнений:
    import numpy as np
    
    A = np.array([[5, 3], [3, 3]])
    B = np.array([46.2, 31.5])
    
    # Решаем систему уравнений
    x, y = np.linalg.solve(A, B)
    print(round(x, 2), round(y, 2))
    Ответ написан
    Комментировать
  • Имеют ли право органы проверять софт на ноутбуках, если сотрудник заявляет, что это его личный ноутбук?

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

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

    Spetros
    @Spetros
    IT-шник
    1. Вполне могут изъять на экспертизу "за компанию" с другой техникой. То, что это личный ноутбук стоит на рабочем месте надо еще доказать. Ответственность будут нести сотрудники лично, а не юр.лицо.
    2. Как правило, лицензионное соглашение допускает создание одной копии для архивных целей. Посмотрите в тексте лицензий своих дистрибутивов.
    Ответ написан
    1 комментарий
  • Где найти бесплатного SIP провайдер?

    @efcadu
    Системный администратор
    Поднять еще один Mikopbx и использовать его как SIP-провайдера для тестов )
    Ответ написан
    Комментировать
  • Как отображать только один из одинаковых div с id="x" предыдущий развернутый сворачивать?

    @Everything_is_bad
    с одинаковыми id
    корень проблемы, начни с понимания что такое id, как поймешь, избавься от этого корня. Подсказка, селекторы могут не только по id быть, можно по class, data-атрибутам, да даже по расположению тегов.

    ЗЫ посмотрел твои вопросы, на них в гугле отвечали 100500 раз, давай ходи сначала туда, а не бегай сюда на каждый чих.
    Ответ написан
    Комментировать
  • Как правильно обрабатывать ошибки при чтении файла?

    @Everything_is_bad
    освой уже гугл, через который бы ты узнал про with open() и перестал бы мучатся с close
    Ответ написан
    Комментировать
  • Как правильно обрабатывать ошибки при чтении файла?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Использовать with.

    try:
        with open('test.txt', 'r') as file:
            print("File exists and is accessible.")
    except FileNotFoundError:
        print("File does not exist.")
    except PermissionError:
        print("File exists but cannot be accessed.")
    Ответ написан
    Комментировать
  • Как правильно обрабатывать ошибки при чтении файла?

    Vindicar
    @Vindicar
    RTFM!
    Тебе правильно написали про with, а я добавлю в чём проблема:
    # допустим, это наш код
        try:
            file = open("config.json", "r")  # исключение может произойти тут
            config = json.load(file)  # или тут
            print(config)
        except FileNotFoundError:
            print(">>> Файл не найден!")
        except PermissionError:
            print(">>> Доступ запрещен!")
        finally:
            print(">>> Файл закрылся!")
            file.close()

    У тебя две разные ошибки, на которые требуются разные реакции.
    Если исключение произойдёт в open(), то переменная file не будет создана, так как до присваивания дело просто не дойдёт. Если же исключение произойдёт в load(), то переменная file будет существовать, файл бдует открыт, и его нужно будет закрыть. Таким образом, тебе нужно или обработать эти ошибки отдельно, или использовать другие средства (вроде оператора with) для закрытия файла.
    Ответ написан
    Комментировать
  • Каким способом лучше запечатать окружения для разных стеков с минимальными потерями производительности?

    @d-stream
    Готовые решения - не подаю, но...
    ну собственно даже без докера это разруливается
    начиная от javapath для разных версий jdk/jre
    и заканчивая строго прописанными явно зависимостями или packagelock

    а потери производительности в вариантах docker/docker-in-docker будут ощущаться в зависимости от стиля поправил-собрал - сборка в докере да ещё и с нуля потянет нечто типа пульнуть образ, установить инструментарий, собрать - вот там на первые шаги время будет уходить...

    ну либо сделать свой образ уже набитый всем и собирать в нём - тогда ну почти незаметно будет
    Ответ написан
    2 комментария
  • Какой посоветуете фреймворк (с роутингом, orm и мидлваре) для Golang?

    Не рекомендую даже пробовать.
    В Go не принято использовать такое. Какие-то люди пишут и ORM (например Gorm), и различные роутеры, но это пользуется всё меньшей популярностью. В результате вы не получите много информации, когда вам понадобится решать какие-то проблемы с этими монстрами.
    Я когда-то приходил в Go с навыками Symfony + Doctrine ORM, и тоже не понимал, как они без этого живут. И в результате понял, что в подавляющем большинстве проектов эти монстры просто не нужны и становятся обузой, когда проект развивается. Да, поначалу всё хорошо и быстро, а когда в проект приходят новые сложные фичи, начинается борьба не только с этими фичами, но и с самим фреймворком, и, особенно, с ORM. В результате получается Франкенштейн, пляшущий на костылях. Всё это еле ворочается, а Доктрина выплёвывает такие запросы, что их даже читать страшно.

    P.S. Если вот всё же хотите пойти против системы и пользоваться наворотами, то можно рассмотреть связку Gin + Gorm
    Ответ написан
    3 комментария
  • Как сконфигурировать Nginx для https сервера?

    @99insania99
    В чем смысл делать использовать https в скрипте, а потом перед ним ставить прокси https nginx'ом? Получается шифруем, дешифруем, шифруем, дешифруем... nginx https -> http node.js
    Ответ написан
    5 комментариев
  • Что предпринять, если не работает сайт через СloudFlare (на 31.03.2025)?

    mr_nu11
    @mr_nu11
    у меня 50 сайтов отпало, люди ругаются, думал слазить по старинке на letsencrypt! сайт letsencrypt хостится на cloudflare и это замкнутый круг, сервер попросту не может отправить запрос на регистрацию и выдачу сертов. Делай сервак в РФ говорили они! ага щас, был бы сейчас на забогорном серваке, то и проблем не знал certbot и перекатка всех NS A. Пробовал ZeroSSL он не выдает RU доменам.

    по итогу, проштудировал аналоги в рф, ценник за услугу от 9к в месяц, типа ддос гвардов. Проштудировал забугор, тоже накладно или просят вязать карту. Даже иранский сервис пробовал зарегать, по итогу смс не приходит и в том числе и на sms-activate :)))

    это просто деверсия малого бизнеса. Все сайты с клаудами лежат! с VLESS vps никаких проблем, несколько дней назад вбанили только один из vps ip, но я все порты позакрывал или сменил, навесил фильтры всякие, сменил SNI на telegram org и заблокировать не могут)

    куда можно перекатиться чтоб letsencrypt накатывался автоматически и такая же проксификация была как у cf
    Ответ написан
    8 комментариев
  • Как сделать на сайте цитаты, как в Telegram?

    взять тег <blockquote> и стилизовать.
    Ответ написан
    Комментировать
  • Что предпочтительнее в python - проверять значение в словаре или обработать исключение исключение?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Вы можете сами произвести замеры, но ставлю на то, что быстрее окажется проверка по словарю, поскольку она делается за ~O(1) благодаря хешированию.
    Однако я бы предложил чуть более эффективню схему:
    D = dict()
    NOTFOUND = object()
    
    def f1(x):
        result = D.get(x, NOTFOUND)
        if result is NOTFOUND:
            result = D[x] = long_calculation()
        return result


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

    UPD:
    Забавно. Я ошибся и с исключением действительно выходит быстрее. На это указал уже автор вопроса, а я на всякий случай пересчитал, причем по отдельности для прогрева, для повторного взятия и для неполучения из прогретого хеша.

    import time
    from math import tan, atan
    import timeit
    
    
    NOTFOUND = object()
    
    
    def long_calculation(x):
        return atan(tan(x) / 2)
    
    
    def f1(x):
        if x not in D:
            D[x] = long_calculation(x)
        return D[x]
    
    
    def f2(x):
        try:
            return D[x]
        except:
            D[x] = long_calculation(x)
        return D[x]
    
    
    def f3(x):
        result = D.get(x, NOTFOUND)
        if result is NOTFOUND:
            result = D[x] = long_calculation(x)
        return result
    
    
    FUNCS = (
        (f1, 'get triple'),
        (f2, 'except'),
        (f3, 'get once'),
    )
    
    
    def work(f, gap=0.1, count=1000):
        for x in range(0, count):
            f(x + gap)
    
    
    D = {}
    number = 10000
    
    for func, descr in FUNCS:
        print(f'{func.__name__} ({descr}):')
        print(f'  Cache empty:', timeit.timeit(f"work({func.__name__})", setup=f'D=dict()', globals=globals(), number=number))
        print(f'  Total reuse:', timeit.timeit(f"work({func.__name__})", setup=f'D=dict(); work({func.__name__})', globals=globals(), number=number))
        print(f'  Total miss :', timeit.timeit(f"work({func.__name__})", setup=f'D=dict(); work({func.__name__}, gap=0.2)', globals=globals(), number=number))

    И вот результат:
    f1 (get triple):
      Cache empty: 2.8940897800493985
      Total reuse: 1.7486431139986962
      Total miss : 1.6964515489526093
    f2 (except):
      Cache empty: 1.2670072519686073
      Total reuse: 1.2622331579914317
      Total miss : 1.2547212480567396
    f3 (get once):
      Cache empty: 1.6983374420087785
      Total reuse: 1.6465996010228992
      Total miss : 1.6999219709541649
    Ответ написан
    2 комментария
  • Что предпочтительнее в python - проверять значение в словаре или обработать исключение исключение?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Easier to ask for forgiveness than permission. This common Python coding style assumes the existence of valid keys or attributes and catches exceptions if the assumption proves false. This clean and fast style is characterized by the presence of many try and except statements. The technique contrasts with the LBYL style common to many other languages such as C.

    https://docs.python.org/3/glossary.html
    Ответ написан
    1 комментарий