• Нужно ли 40-летнему джуну уметь максимально много?

    php666
    @php666
    PHP-макака
    Короче, я боюсь, что, выучив слишком много всего, стану отпугивать работодателей своей продвинутостью.
    лол
    40 лет, а мыслит как 18-и летний юноша-максималист
    выучит он "слишком много всего"
    ты выучи сначала
    потом приходи сюда
    когда ты "слишком много всего" выучишь, тебе минимум будет 45 лет

    Но вот думаю: А не слишком ли "крутым" я стану?
    на первом же собеседовании тебя сотрет в порошок 25-30 летний чувак с опытом и покажет твое истинное место.
    это не оскорбления.
    это твое будущее.
    Ответ написан
    8 комментариев
  • Как сверстать элемент со скруглениями углов "внутрь"?

    develx
    @develx
    Web developer
    Ответ написан
    Комментировать
  • Управление устройствами IoT через веб-интерфейс (MQTT или HTTP)?

    @Indemsys
    По первому вопросу ответ - да, можно. Но нужно применить технологию WebSocket, обычный AJAX работать не будет.
    Потому что AJAX может обращаться только по тому же адресу откуда была прочитана страница.
    Сам сайт может находится на домашнем компьютере.
    Насколько видно из примера - https://randomnerdtutorials.com/esp32-websocket-se...
    соединение WebSocket сделать на стороне сервера очень просто.

    По второму вопросу.
    Для MQTT нужен брокер MQTT. Брокеры типа Mosquitto могут работать на любых компьютерах.
    В том числе и на том на котором находится сайт. Сами страницы сайта должны применять клиента MQTT на JavaScript.
    Ответ написан
  • Как определить тип VT1?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    пропущен тип VT1... Какой там должен быть?
    Да почти любой PNP малой мощности с коэфф. усиления по току 100...300. Но поскольку он стоит на входе, то весьма желательно, чтобы он был т.н. "малошумящий". Малошумящий - это такой, в даташите которого специально написано, что он малошумящий. Или, если там ничего на этот счёт не написано, то должен быть указан коэфф. шума, и его величина должна быть невелика в сравнении с подобными.
    И правда ли что эта схема способна выдавать 10 ватт, работая от 9в?
    Это нетрудно прикинуть на глазок. При питании от 9 вольт размах выходной синусоиды вряд ли может превысить 7 вольт (если без клиппирования). Значит, амплитуда 3,5, а эфф. значение примерно 2,5 вольт. Ваши требуемые 10 ватт делим на 2,5 вольт, получаем ток 4 ампера. Если 2,5 вольт поделить на 4 ампера, то по закону Ома сопротивление нагрузки должно быть 0, 625 ом - чуть больше полуома.
    Если найдёте громкоговоритель с таким сопротивлением, то 10 ватт сможете получить.
    Обратите внимание - никаких параметров конкретно вашей схемы я при этой прикидке не использовал. Значит, то же самое будет касаться любой другой схемы, которую вы захотите питать от 9 вольт. Кроме усилителей класса D (импульсных).
    Долго ли она будет работать от батарей 3x16850 по 3500mah?
    Три элемента, надо полагать, соединены последовательно - иначе напряжение 9 вольт не получить. Значит, требуемый ток 4 ампера должен давать любой из этих элементов. Ёмкость 3500 мач - это значит, что 3,5 ампера такой элемент в идеале способен отдавать в течение одного часа. Но у нас, во-первых, ток больше 3,5, и во-вторых, аккумуляторы не идеальные. Ну, минут 30...40 такой ток они вам дадут. Вряд ли дольше.
    Ответ написан
    9 комментариев
  • Почему развалился сайт после обновления хрома до 89 версии?

    @Flying
    В общем, поигравшись немного с предоставленным кодом, стало понятно следующее:

    Это явно проблема браузера, так что имеет смысл сообщить о ней разработчикам, написав bug report в их трекер.

    При этом проблема несколько не в том месте где ожидалось: элементы страницы позиционируются правильно, а вот отрисовываются некорректно:

    60521d719ba8e466217077.png

    Здесь видно, что картинка с точки зрения браузера находится в одном месте, а по факту нарисована в другом.

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

    Я подготовил пример, демонстрирующий вариант решения. По сути он сводится к добавлению стиля, который производит визуально почти незаметное изменение стилей, которое, однако, заставляет браузер перерисовать всю область:
    .chat-item__content.force-repaint .content-chat-content__message {
        opacity: 0.99;
    }

    Остаётся только "дёрнуть" CSS класс force-repaint на элементе контейнера - и всё сразу встаёт на место, поскольку осуществляется перерисовка. Например вот так:

    function forceRepaintToFixChrome89Issue() {
        if (!navigator.appVersion.match(/\sChrome\/(89|9\d)\./)) {
            // Apply only for Chrome 89 and 90+
            return;
        }
        window.requestAnimationFrame(function () {
            const e = document.querySelector('.chat-item__content');
            if (!e) {
                return;
            }
            const fr = 'force-repaint';
            e.classList.add(fr);
            window.requestAnimationFrame(function () {
                e.classList.remove(fr);
            });
        });
    }


    В примере я добавил для этого кнопку, но в реальном приложении логично делать это, например, при изменении содержимого контейнера.
    Ответ написан
    1 комментарий
  • Работа с деньгами в php, лишние копейка в ту или иную сторону при округлении?

    Adamos
    @Adamos
    Я вам страшное скажу: в операциях с деньгами не всегда важна математическая точность.
    Но очень важно, чтобы результат был в точности такой, как в бухгалтерии.
    А там далеко не всегда царит формальная математика, особенно когда числа, которые потом сводятся к одному результату, по-разному налогооблагаются.
    Задача программиста здесь - не в том, чтобы компьютер считал правильно, а чтобы результат сошелся до копейки с 1С-кой, например.
    Ответ написан
    Комментировать
  • Как реализовать свою JS библиотеку и предоставить API?

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

    API (программный интерфейс приложения, интерфейс прикладного программирования) (англ. application programming interface, API [эй-пи-ай][1]) — описание способов (набор классов, процедур, функций, структур или констант), которыми одна компьютерная программа может взаимодействовать с другой программой.


    API определяет функциональность, которую предоставляет программа (модуль, библиотека), при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована.


    Если программу (модуль, библиотеку) рассматривать как чёрный ящик, то API — это множество «ручек», которые доступны пользователю данного ящика и которые он может вертеть и дёргать.


    https://ru.wikipedia.org/wiki/API
    Ответ написан
    4 комментария
  • Как правильно создать критический css?

    @archelon
    для загрузки стилей нужны, как правило, доли секунды. поэтому критическими стилями вообще редко кто заморачивается.

    что выносить в критический css — всегда по ситуации, но имхо основной принцип должен быть не в том, что сначала мы полностью рендерим первый экран, а потом все остальное.
    а в том, чтобы в том коротком временном промежутке, пока грузятся стили, не мелькал «голый» текст в столбик.
    т.е. прячем второстепенные и служебные элементы, откладываем на потом тени-градиенты с прочими красивостями и т.п. главное — отобразить лейаут, чтобы при полной загрузке контент не прыгал.

    3. Прелоадеры и критический css вместе не могу существовать?

    critical css нужен, чтобы отобразить сайт практически мгновенно для пользователя, чтобы не пялиться целую секунду на дурацкий прелоадер.
    Ответ написан
    Комментировать
  • Как увеличить скорость insert и select MyISAM?

    @vitaly_il1
    DevOps Consulting
    1)
    запросы простые, типа SELECT id FROM .. where d_idx=? and a_idx=?; ну и INSERT.

    Все же проверьте slow-query-log, возможно есть тяжелые запросы, не использующие индекс

    2) насколько понимаю, при большом кол-ве insert, InnoDB будет работать быстрее, т.к. нет блокировки всей таблицы при записи
    Ответ написан
  • Как сверстать подобные блоки?

    aliencash
    @aliencash
    Партизан
    Дизайнера на кол. Картинками делайте.
    Ответ написан
    4 комментария
  • Как ведет себя JOIN & WHERE?

    ayazer
    @ayazer
    Sr. Software Engineer
    Он выгребет только то что надо. А еще может поменять порядок джойнов чтоб выгребать меньше/быстрее. Но в целом план выполенения запроса будет зависеть от многих факторов (в т.ч. кол-во данных в таблицах, индексы и статистика по этим индексам), потому всегда лучше посмотреть експлейн. А вот нюансы уже могут отличатся от вендора к вендору
    Ответ написан
    2 комментария
  • Как облегчить выбор по атрибутам?

    @MaximaXXl
    select
    case when t1.attr_type = 1 and t1.value_int = 20 then t1.value_int end y,
    case when t1.attr_type = 2 and t1.value_int = 4  then t1.value_int end m,
    case when t1.attr_type = 3 and t1.value_int = 4  then t1.value_int end d,
    case when t1.attr_type = 4 and t1.value_string = 'google'  then t1.value_string end utm_source,
    k.value_int kind_int,
    i.count cnt
    from stat_item_attrs k
    left join stat_item i on i.id = k.item_id
    join stat_item_attrs t1 on t1.item_id = k.item_id and t1.attr_type in (1/*y*/,2/*m*/,3/*d*/4/*utm_source*/) and (t1.value_int in (20, 4 /*20-04-04*/) or t1.value_string = 'google')
    where
      k.attr_type = 0/*kind*/ and k.value_int in(0,1)/*hosts,leads*/

    Получится разряженная таблица, собрать/сгруперовать ее можно как угодно, max, sum ... например по полю k.item_id. Но тут писать не буду, сами посмотрите, уникальность и все такое. Такими же кейсами Вы можете выделить kind0 value0 kind1 value1, ну и потом сделать группировку. Но лучше сначала видеть данные а не слепо групировать
    Кто писал селект который Вы прислали, там логика не та которую Вы написали под запросом. т.е. не понятно почему у Вас left Join к ОСНОВНОЙ по вашему описанию таблице. Почему главная тут stat_item_attrs ?
    Я не буду лезть в логику, но тут лучше перейти на stat_item.id и убрать left join.
    Ответ написан
    5 комментариев
  • Как сделать ссылку на сайте, чтобы открыть Телеграмм?

    А в чём проблема была посмотреть, как это на t.me сделано?

    <a href="tg://resolve?domain=username">username</a>
    Ответ написан
    Комментировать
  • Как заставить папку Sent работать правильно?

    @notwrite
    Не барское (MTA) это дело письма в Sent перекладывать, это забота MUA. Почтового клиента правильно настройте.
    Ответ написан
    4 комментария
  • Telegram API, как получать ID отправленного сообщения?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Заходите в документацию метода sendMessage.

    Читаете там строку:
    Use this method to send text messages. On success, the sent Message is returned.

    Переводите её в переводчике, понимаете, что она значит и переходите к объекту Message, где есть поле:
    message_id Integer Unique message identifier inside this chat
    Ответ написан
    1 комментарий
  • Как отдавать видео стрим для iOS, Android?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    В чём вопрос-то?
    Размещаешь медиафайл на сервере, передаёшь ссылку на него в приложение и показываешь, например через MediaPlayer.
    Какой ещё 1 байт? Автор, ты что куришь?
    Какую именно проблему ты хочешь решить?
    Ответ написан
    Комментировать
  • Как сделать перебор всех возможных комбинаций между массивами?

    VladimirAndreev
    @VladimirAndreev
    php web dev
    3 вложенных цикла.
    ну, или рекурсия, если глубина не статична
    Ответ написан
    Комментировать
  • Как распознать номер на авто?

    BuriK666
    @BuriK666
    Компьютерный псих
    Ответ написан
    Комментировать
  • Какой есть готовый движок?

    Sanes
    @Sanes
    Не сможете вы ничего сами натянуть.
    Ответ написан
    Комментировать