• Почему две строки при загрузки linux?

    @rPman
    Это меню grub.
    не помню про centos, но в современных версиях, по умолчанию он не показывается, и будет виден только если предыдущее завершение работы было не корректным.

    Если что, в grub есть настройка, сколько времени показывать это меню по умолчанию и автоматически грузить какой пункт (остановить автозагрузку по нажатию ESC или стрелок)

    В разных версиях grub это настраивалось по разному, гугли именно для своей centos grub timeout
    Ответ написан
    1 комментарий
  • Почему две строки при загрузки linux?

    IvanU7n
    @IvanU7n
    это, на удивление, меню загрузчика
    избавиться скорее всего никак, т.к. первая по умолчанию должна загружаться, а вторая на всякий случай для восстановления
    Ответ написан
  • Почему две строки при загрузки linux?

    @pfg21
    ex-турист
    строчка rescue однозначно показывает на режим загрузки в режим восстановления: или командная строчка или менюшка с несколькими стандартными функциями...
    ничего - привыкнешь.
    когда поставишь еще ядра, и не удалишь старое (новые ядра не удаляются, а ставятся рядом со старым), у тебя появится еще по комплекту загрузок на каждое ядро.
    плюс утилиты и все такое. загрузочное меню собранное "прямыми" руками - отличный инструмент.
    и т.д. и т.п.
    Ответ написан
    Комментировать
  • Почему две строки при загрузки linux?

    @Drno
    Да, нормально
    1. Обычный режим загрузки
    2. режим восстановления (что понятно из надписи)

    А чего они вдруг помешали - непонятно. Линукс. в отличии от винды(что хорошо), вместо картинки старается выдавать читаемый и понятный текст загрузки, что как по мне логично)
    Ответ написан
    Комментировать
  • Идентифицирующая или неидентифицирующая связь?

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

    Хороший пример - сущность "элемент заказа" (OrderItem). Не может быть элемента заказа без самого заказа. Поэтому идентифицирующая связь из отношения "заказ" (Order) отлично тут подойдет. Если у заказа первичный ключ Id, то первичный ключом OrderItem будет, к примеру, такая пара: (OrderId, Number), где OrderId - внешний ключ в таблицу заказов, добавленный идентифицирующей связью, а Number - номер элемента заказа (строки в чеке, если так понятнее), позволяющий иметь несколько заказанных товаров в одном заказе.

    Неидентифицирующая связь, соответственно, НЕ добавляет колонки внешнего ключа в первичный ключ. Соответственно, значение внешнего ключа при неидентифицирующей связи может быть как NULL, так и NOT NULL.
    Ответ написан
    1 комментарий
  • Как решить эту задачу си?

    bingo347
    @bingo347
    Crazy on performance...
    Для начала нужно понимание, что памятью на стеке управляет компилятор, и для каждой функции эта память имеет фиксированный размер. А все потому, что в ассемблере, в который скомпилится наш C код нет переменных, вместо них компилятор просто проставит смещения от указателя на конец стека на старте функции. Именно по этому компилятору важно знать размеры всех сущностей на стеке.
    Изменить этот размер в рантайме нельзя, поэтому единственный способ решить эту задачу с массивом символов на стеке - выделить массив с достаточным запасом памяти, чтоб хватило и на исходную строку и на вставляемую подстроку.
    А вот память в куче динамическая. И все аллокации работают именно с ней. И главное мы ее можем выделять в рантайме по мере надобности.
    Учитывая, что массивы в C - это по сути сахар над указателями, то смело можете заявлять своему преподу, что указатель на несколько подряд идущих char в куче и массив char - это одно и то же.

    Вообще, по нормальному я бы объявил структуру вроде такой:
    typedef struct {
    	char* buffer;
    	size_t capacity;
    	size_t length;
    } string;
    и дальше бы работал с ней, заодно разбив код на небольшие функции. Но преподы программирования народ от разработки далекий, и кроме своих лабараторок в программировании не бум-бум в большинстве своем. А в комментах к вопросу было про то, что структуры нельзя...
    Поэтому решение в лоб и в стиле универских лаб:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main() {
    	size_t capacity = 1 << 4; // на старте буду выделять 16 байт
    	size_t length = 0; // строка пока пустая, поэтому 0
    	char* str = malloc(capacity);
    	if (str == NULL) { // с памятью в куче может и облом быть
    		return 1; // вернем код ошибки
    	}
    	printf("Write string and press ENTER to continue:\n");
    	while(1) { // читать символы будем до скончания веков ))
    		char c = getchar();
    		if(c == 13 || c == 10) break; // ну или пока юзер не нажмет ентер
    		length++; // увеличим счетчик символов
    		if(length > capacity) { // если новый символ не влазит в выделеную память
    			capacity <<= 1; // то удвоим ее
    			char* new_str = realloc(str, capacity); // и перевыделим
    			if (new_str == NULL) { // опять чекнем, вдруг облом
    				free(str); // ресурсы надо освобождать
    				return 1; // вернем код ошибки
    			}
    			str = new_str; // в str теперь невалидный указатель, можем его заменить
    		}
    		str[length - 1] = c; // запомним считанный символ
    	}
    	// Здесь решение с вставкой подстроки
    	// с учетом того, что у нас строка str
    	// с длиной length и выделеной памятью под нее capacity
    	free(str); // ресурсы надо освобождать
    	return 0; // вернем код успешного завершения
    }
    с самой вставкой подстроки надеюсь справитесь?
    Ответ написан
    6 комментариев
  • Сколько можно поставить оперативы в ноут?

    Zoominger
    @Zoominger Куратор тега Ноутбуки
    System Integrator
    Сколько лучше поставить 4 или 8?

    8 же.

    какой можно купить дешевый комп, чтобы на нем учиться работать с linux?

    Любой комп, но не ноут. На ноутах совсем жизни в Linux нет. Поставьте лучше в виртуалке, это гораздо удобнее и проще.
    Ответ написан
    Комментировать
  • Как на vba создать и инициализировать такой обьект?

    joeberetta
    @joeberetta
    Читай: https://epdf.pub/google-for-dummies.html
    Не так сложно гуглится, ну ладно

    Вот вам инструмент (гитхаб) для работы с таким "объектом" (называется JSON).

    Вот тут также решалась проблема
    Ответ написан
    4 комментария
  • Почему не изменяется поле id в state react?

    hzzzzl
    @hzzzzl
    не надо писать пропсы в стейт, лучше работать сразу с этим this.props.....number там где надо

    этот компонент Worker каждый раз создается новый, или создается только один раз, и потом по обновлению url надо в нем менять контент? конструктор же только 1 раз выполняется, то есть один раз выставляется this.state.id из пропсов, а потом уже нет

    ну или так
    https://ru.reactjs.org/docs/react-component.html#c...
    Также он подходит для выполнения таких сетевых запросов, которые выполняются на основании результата сравнения текущих пропсов с предыдущими. Если пропсы не изменились, новый запрос может и не требоваться.......... итд


    ---
    там же
    https://ru.reactjs.org/docs/react-component.html#c...
    Примечание:
    Не копируйте пропсы в состояние! Это распространённая ошибка:
    ...
    Ответ написан
    1 комментарий
  • Стратегия разбиения верстки на блоки?

    @float64
    Для разбиения верстки на блоки есть специальная методология которая называется Atomic Design, вот описание основных ее компонентов: atomicdesign.bradfrost.com/chapter-2

    Если в одной картинке - то выглядит это так: 5d16e97162677234688043.png

    Для работы по методологии Atomic Design существует проект Pattern Lab: https://patternlab.io
    Это вроде как и фреймворк и набор инструментов и static site generator, короче целая экосистема для тех кто делает верстку по принципам Atomic Design.

    Принципы Atomic Design не зависят от используемого языка или фреймворка.

    Мне в этом подходе больше всего понравилась определенность, которая дает возможность сделать четкую декомпозицию работ по верстке: сколько страниц, сколько компонентов, сколько блоков, что реюзабельно а что нет, что отдельно верстаем, из каких кусочков строим UI.

    Из минусов - придется с нуля въехать в новую методологию, порог вхождения таки есть, плюс надо будет найти инструменты под те технологии на которых вы строите UI.
    Ответ написан
    Комментировать
  • Стратегия разбиения верстки на блоки?

    Hyubert
    @Hyubert
    JS
    Подскажите как вы разбиваете вашу верстку на блоки
    Вот возьмем, например, header.

    Хедере это конкретный блок со своим классом и модификаторами (если нужно). Далее все намного проще - позиционирование мы не включаем в стили модификатора, это скорее изменение его внешнего вида, об этом следует помнить.

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

    Ну так и делайте ее отдельным блоком, например с классом .btn или .button и у нее будут свои модификаторы. Чаще всего у блока кнопки их много. Пример как делаю я:
    .btn {}
    /* style */
    .btn--primary {}
    .btn--secondary {}
    /* size */
    .btn--sm {}
    .btn--md {}
    .btn--xl {}
    /* special */
    .btn--link {}


    Маргины мы прописываем в стилях к этой кнопке и добавляем соответствующий модификатор?

    Нет, отступы и кастомные стили (очень специфичные) мы задаем в зависимости от родительского блока в котором находиться кнопка, в данном случае это хедер. Мы может сделать так:

    .header .btn {}
    или например такой класс сделать
    .header__btn {}

    Я предпочитаю вложенность (но не больше 1 уровня)

    А как эти кусочки потом собрать? С помощью pug includes или gulp


    Ну тут уже по разному, как вам удобней и зависит от конкретного инструмента, если говорить о pug, то я делал так
    1. объявление миксина в отдельном файле
    mixin button(caption)
      button.button&attributes(attributes)!= caption

    2. Подключал в глобальный скоуп через шаблоны (include)
    3. Пользовался миксином в любом места.

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


    Сделайте отдельным компонентом - не пожалеете. Во первых держать весь код в порядке (в одном понятном виде) удобно. Во вторых - если будет нужно расширение проекта или почти такое же меню но в другом месте, это вам пригодиться.
    Ответ написан
    7 комментариев
  • Как вернуть результат из fetch внутри функции?

    hzzzzl
    @hzzzzl
    вернуть куда?
    в стейт прописать

    .then(data => this.setState({data: data}))
    Ответ написан
    5 комментариев
  • Товарищи, как сверстать такой блок?

    RAX7
    @RAX7
    В моб. и планшетной версии кружочки меньшего диаметра

    Если у svg задать viewBox, то всё будет пропорционально масштабироваться, но на мобилках будет очень мелко. Можно на js пересчитывать размер и положение объектов в зависимости от ширины экрана.
    Ответ написан
    6 комментариев
  • Как вставлять картинку в svg path?

    RAX7
    @RAX7
    С помощью clip-path с clipPathUnits="objectBoundingBox" можно вот такое соорудить без паттернов
    Ответ написан
    5 комментариев
  • Как нарисовать такую фигуру?

    @mikeyuriev
    Выделить все три объекта, потом меню "Контур"/"Сумма". Или Ctrl++.
    Ответ написан
    1 комментарий
  • Как сверстать шестиугольники вокруг цифр?

    politon
    @politon
    HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
    Можно и так
    Ответ написан
    1 комментарий
  • Как сверстать шестиугольники вокруг цифр?

    profesor08
    @profesor08 Куратор тега CSS
    Хочешь на css, то создай 6 внутренних элементов нужной ширины и толщины, а потом transform: tanslate() rotate() расположи их.
    Либо делай на svg.
    Ответ написан
    8 комментариев
  • Как сверстать шестиугольники вокруг цифр?

    @kiberlain
    6-угольную svg-шку бэкграундом вставить в прямоугольный блок - самое логичное решение
    Ответ написан
    Комментировать
  • Съехали стили на сайте?

    @vardoLP
    Ват ю сэй эбаут май мама?!
    вот что в вашем файле стилей. В каком редакторе правили файлы? 5bc5d5f2edb0c322516446.png
    Ответ написан
    4 комментария