• Div, который выглядит по-разному в каждом браузере?

    @itsjustmypage
    Outline это контур элемента с внешней его стороны, то есть сразу за border. В отличие от border он никак не влияет на элементы, их ширину и расположение. Ключевое слово inset в свойстве outline: inset 100px green; устанавливает этот контур в виде псевдотрехмерной рамки за счёт осветления правой и нижней границ и затемнения левой и верхней относительно указанного цвета. Ширина 100px, цвет зелёный.

    Баг создаёт свойство outline-offset: -125px;, которое задаёт смещение контура. При положительном значении контур будет расширяться во все стороны. А при отрицательном будет сжиматься внутрь элемента.

    Спецификация CSS Basic User Interface Module Level 3 в статусе рекомендации говорит о том, что контур элемента со свойством outline-offset при отрицательном значении не должен становиться меньше, чем двукратная вычисляемая ширина контура. То есть если в примере у нас размеры элемента 100x100 пикселей и контур задан у нас шириной 100px, то при outline-offset: -125px; он должен сжаться внутрь элемента на 125px со всех сторон, а спецификация визуально ограничивает сжатие до outline-offset: -50px; (по 50px внутрь с каждой стороны элемента). То есть контур должен просто сойтись вместе со всех сторон, образуя квадрат в нашем случае и насколько больше не ставь отрицательное значение, больше он сжиматься не должен. Но реализация в браузерах не учитывает это поведение и выдаёт непонятные фигуры, если отрицательное значение слишком большое.

    https://www.w3.org/TR/css-ui-3/#outline-offset
    5b447ea6c9061121780680.jpeg

    Поведение при отрицательном outline-offset должно быть как на гифке. Если дальше уменьшать значение, ничего меняться не должно. AMQ4hnM.gif
    Ответ написан
    1 комментарий
  • Книга, которая объяснит как работает ПК начиная с атомного уровня?

    Jump
    @Jump
    Системный администратор со стажем.
    Решил стать программистом, но немного неприятно кодить не понимая, что происходит под капотом.
    Разумно.

    Книга, которая объяснит как работает ПК начиная с атомного уровня

    Одной книгой тут не обойтись, и следует понимать что это довольно большой пласт знаний.
    Но тем не менее я бы порекомендовал три книги, в следующем порядке -
    1. Рудольф Сворень "Электроника шаг, за шагом"
    2. Чарльз Петцольд "Код. Тайный язык информатики".
    3. Эндрю Таннебаум "Архитектура компьютера"

    Прочтение этих книг даст понимание работы от физики полупроводников, до операционных систем.
    Книги с низким порогом вхождения, не требуют специфических знаний, объясняется очень доходчиво, и все вместе дают четкое понимание как это все работает.
    Этого вполне достаточно.
    А уж дальше - если где надо углубиться в специфику, будет уже понимание какие именно книги искать.
    Ответ написан
    Комментировать
  • Книга, которая объяснит как работает ПК начиная с атомного уровня?

    Stalker_RED
    @Stalker_RED
    Книжки уже посоветовали, но можно сходу закрыть часть ваших детских вопросов.

    Как ПК понимает, что он вообще делает?
    Никак не "понимает", он просто следует инструкциям.

    Откуда процессор знает, что ему делать?
    Он не "знает", он следует инструкциям.

    Посмотрите эти два ролика про шарманки:
    https://www.youtube.com/watch?v=k5g-zySVO18
    https://youtu.be/HjBhO9iqEc0

    То-же самое можно сделать не из механических частей, а на основе электроники.
    И эти штуки не "знают" и не "понимают" что им нужно играть и как. У них есть лента с инструкциями, и они по ней работают ничего не понимая.

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

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

    Вот сейчас вы читаете эти строки потому, что некоторое время назад ваш компьютер получил инструкцию из интернета "отобрази страницу с таким-то цветом фона, такими-то шрифтами, и с таким-то текстом".
    Ответ написан
    2 комментария
  • Как сделать тяжелый импорт из excel 800к товаров?

    syschel
    @syschel
    freelance/python/django/backend
    1. У вас именно EXEL файл или всётаки CSV который вы открываете на десктопе с помощью экселя?
    2. Если всётаки EXEL файл. Там слишком много всего нагорожено, на вроде вёрсток и формул или голые таблицы?
    3. Если всётаки голые таблицы. Вы можете делать именно CSV файл?

    Если данные будут в CVS формате, то можно всё загрузить средствами MYSQL и не использовать для обработки PHP или его библиотеки. Тогда результат будет в разы выше, чем если перебирать с помощью ПХП и потом кормить в MSQL

    Когда я в своё время сталкивался с проблемой загрузки файла товаров в базу, там было несколько миллионов единиц, то оптимальным стало именно такое решение > LOAD DATA

    Кусок моего старого MySQL кода, для наглядности
    // Загружаем кашерный файл
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,article,available,currencyId,delivery,description,id,name,oldprice,param,picture,price,url,vendor,advcampaign_id,advcampaign_name);
    
    // Загружаем только нужные поля (!!!)
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,@ISBN,@adult,@age,article,@attrs,@author,available,@barcode,@binding,@brand,@categoryId,@country_of_origin,currencyId,delivery,description,@downloadable,@format,@gender,id,@local_delivery_cost,@manufacturer_warranty,@market_category,@model,@modified_time,name,oldprice,@orderingTime,@page_extent,param,@performed_by,@pickup,picture,price,@publisher,@sales_notes,@series,@store,@syns,@topseller,@type,@typePrefix,url,vendor,@vendorCode,@weight,@year,advcampaign_id,advcampaign_name,@deeplink);
    
    // Все поля
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,ISBN,adult,age,article,attrs,author,available,barcode,binding,brand,categoryId,country_of_origin,currencyId,delivery,description,downloadable,format,gender,id,local_delivery_cost,manufacturer_warranty,market_category,model,modified_time,name,oldprice,orderingTime,page_extent,param,performed_by,pickup,picture,price,publisher,sales_notes,series,store,syns,topseller,type,typePrefix,url,vendor,vendorCode,weight,year,advcampaign_id,advcampaign_name,deeplink);

    Ответ написан
    Комментировать
  • Сработает ли такое пользовательское соглашение?

    Jump
    @Jump
    Системный администратор со стажем.
    Александр Черный,
    Для того чтобы написанное вами в соглашении имело хоть какую-то юридическую силу нужно соблюдение трех условий-
    • Ваше соглашение должно быть составлено как публичная оферта.
    • Пользователь должен акцептовать эту оферту.
    • Написанные вами условия не должны противоречить закону.
    продавец не несет ответственность за работоспособность предоставленного товара
    По закону продавец несет ответственность за работоспособность предоставленного товара, и обязан обменять его на исправный или вернуть деньги в течении гарантийного срока.
    Гарантийный срок не может быть меньше установленного законом.
    Ответ написан
    2 комментария
  • Можете конкретнее расписать, что нужно изучить, чтобы создать приложение на тему "Мир кино" со связкой БД(курсач)?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Нужно было изучить курс, который вам преподавали.
    Ответ написан
    Комментировать
  • Как убрать кавычки в json файле на выходе с помощью php?

    Melkij
    @Melkij
    PostgreSQL DBA
    нужно убрать кавычки у Васи

    По стандарту строки обязаны быть в кавычках. Следовательно, вы хотите получить не JSON, соответственно пишите для своего формата свой обработчик следуя грамматике того формата, который вам нужен. Но не надо его называть json.
    Ответ написан
    Комментировать
  • Регулярные выражения, как сделать проверку на число от 1 до 12?

    usdglander
    @usdglander
    Yipee-ki-yay
    Месье, проверять диапазон числа через регулярное выражение - такая себе идея. Почему не использовать if?
    Ответ написан
    Комментировать
  • Есть ли техническая возможность у власти полностью "выключить" интернет в РФ?

    Jump
    @Jump
    Системный администратор со стажем.
    Есть ли техническая возможность у власти полностью «выключить» интернет в РФ?
    Разумеется.
    Как минимум есть чисто физическая- отрезать кабель.
    А можно и файервол поставить.
    В общем такая возможность есть у властей любой страны.

    В связи с текущей истерией борьбы с "терроризмом" в РФ активно начала продвигаться идея полного запрета интернетов.
    Наоборот, у нас вроде не пошли по пути полного запрета, наблюдаются только точечные блокировки.
    В основном будут блокировать самые опасные вещи - соцсети, и прочие сми.

    Анохин предлагает ограничить доступ в соцсети до трех часов в день
    Ну депутаты предлагать могут что угодно, это же не специалисты, и не всегда адекватные люди.

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

    доступ в социальные сети будет закрыт для лиц младше 18 лет
    Да это давно уже надо было сделать.
    Ответ написан
  • Как с помощью цикла foreach или for занести данные из одного массива в другой для последующего вывода в XML?

    JimmDiGreez
    @JimmDiGreez
    Full-stack Developer
    Думаю, что-то вроде такого
    foreach ($results as $elements) {
        $res[] = [
            'tag' => 'marker',
            'attributes' => [
                'id' => $elements['id'],
                'name' => $elements['title'],
                'address' => 'Конюшенная',
                'lat' => $elements['lat'],
                'lng' => $elements['lng'],
                'type' => $elements['category']
            ],
        ];
    }

    должно помочь.
    Ответ написан
    7 комментариев
  • В каком порядке выполняются функции?

    Прочитайте про модель выполнения event-loop
    Вызов setTimeout добавит событие в очередь по прошествии времени, указанного во втором аргументе вызова. Если очередь событий на тот момент будет пуста, то событие обработается сразу же, в противном случае событию функции setTimeout придется ожидать завершения обработки остальных событий в очереди. Именно поэтому второй аргумент setTimeout корректно считать не временем, через которое выполнится функция из первого аргумента, а минимальное время, через которое она сможет выполниться.
    Ответ написан
    4 комментария
  • Как лучше всего организовать связь между двумя удалёнными офисами?

    CityCat4
    @CityCat4 Куратор тега VPN
    Внимание! Изменился адрес почты!
    Угу. А завтра на Вашем хостинге окажется телега и РТК радостно его забанит :) И все - бизнес встал ... в позу ротного пулемета :)
    Не говоря уже о том, что выносить "внутренние" сервера на хостинг - это прям-таки напрашиваться на утечку.
    Ответ написан
    4 комментария
  • Не могу понять почему выдает ошибку 500, а в некоторых случая на строку 67, которой нету, точнее она пустая, поможете?

    DevMan
    @DevMan
    Мы тоже не можем понять.
    Включаете логирование ошибок и читаете логи.
    Ответ написан
    Комментировать
  • Как работает система "без убытка" в казино?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Все просто. Если вероятность победы всегда будет меньше 50% (даже 49%), то в долгосрочной перспективе, игрок всегда будет уходить в минус, а казино в плюс. Это как рулетка: 18 красных, 18 черный и зеро. При ставке на любую позицию, вероятность победы будет <= 18/(18 + 18 + 1) = ~0.486 Поэтому, грубо говоря, на 100 игр, пользователь побеждает 48 игр, а 52 проигрывает. 2 игры уходят в банк.
    Если же использовать вероятность 50%, то нужно делать комиссию, поставил 1, победил 0.8.
    С этими двумя способами, даже Мартингейл игроку не поможет. Главное, чтобы в случайном исходе небыло закономерностей, иначе даже простенький скрипт позволит пользователю выходить в плюс.
    Выходит вроде и честно, без обмана, без накруток, и гарантированно прибыльно для казино.
    Ответ написан
    2 комментария
  • Как найти все возможные перестановки с сочетаниями?

    Minifets
    @Minifets
    Hello world!!!
    Построить граф и решать задачу коммивояжера, с модификацией на то, что вам не нужно обходить все вершины и нужны все решения.
    Ответ написан
    1 комментарий
  • Как грамотно развести два интерфейса?

    @klim76
    android/java/sql
    в какую сторону копать?

    В настоящий момент вы копаете в сторону увольнения. По плохому сценарию.
    Ответ написан
    2 комментария
  • Заражение вирусами в ОЧЕНЬ большой сети?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    1. Админов расстрелять, по теме
    после модернизации количество работ было таким большим, что одноранговую сеть так и оставили.

    Какой то мудак (его уже выгнали) поднял игровой сервер в сети, расшарил инет через мобильный LTE интернет и запустил вирус криптолокер в сеть.


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

    Если простоя стоит миллионы долларов, то что мешает заплатить пару миллионов на решение это проблемы?
    Тут расстреливаем менеджеров, ну тех которых не расстреляли в п.1.

    3.
    На большинстве компьютеров антивирусная защита отсутствует как таковая, так как на большинстве рабочих станций стоит Windows 98 & XP

    Древняя ось, без обновлений (на большинстве уверен вообще обновы не ставились со времени установки), без банального антивируса.
    Чего вы ещё хотели то?

    Вирусные эпидемии как в вашей ситуации не лечатся путём "а прогоним отот комп антивирусом", их лечат путём "отрубить нахрень всё и переустанавливаем системы ибо хрен пойми какая сигнатура у этой дряни".

    Вы влетели по полной программе и решение тут только одно - модернизация железа/ПО, грамотный подход к сети.
    Ответ написан
    Комментировать
  • Как реализовать движение объекта с сохранением координат в БД?

    streetflush
    @streetflush
    React и Angular это про данные, формы. Вам же достаточно vanila или jquery.
    Хранить координаты каждый раз нет смысла. Лучше привязаться ко времени пути и при перезагрузке высчитывать текущие координаты как x2y2 - x1y1 + путь за прошедшее время.
    Ответ написан
    Комментировать