• Как распаковать архив не создав дополнительный уровень вложенности?

    tar --strip-components=1 -xf latest.tar.gz
    Ответ написан
    Комментировать
  • Зачем нужны абстрактные методы в Python?

    Абстрактные методы, по определению, не имеют реализации. Декоратор @abstractmethod выглядит как какой-то костыль существующий из-за того, что в Python нельзя объявить метод с пустым телом как это происходит в других ЯП, в нём хотя бы pass должен присутствовать. Зачем в этом примере добавили print в абстрактный метод знает только автор этого примера, оно не нужно.
    Ответ написан
  • Какую в версию MySQL использовать?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    лучше последнюю, всегда лучше.
    Ответ написан
    Комментировать
  • Как в C# зарезервировать место под массив?

    @kttotto
    пофиг на чем писать
    Я так понимаю, что Вы просто не сочли нужным почитать за массивы в C#, т.к. эта информация написана в каждом туториале по ним.

    При объявлении массива, вы сразу указываете его размер. После его создания, Вы уже не сможете этот размер изменить (ничего "прибавить" Вы не сможете, можете только изменять значения элементов), именно потому, что под него уже выделена память. Если Вы что-то о массивах читали, то должны знать определение "Массив - это совокупность однотипных данных, расположенных непрерывно в памяти."

    На уровне кода массив это тот же список, у которого просто нет методов для увеличения его размера. Список Вы так же, при объявлении можете указать его начальный размер, но если его будет не хватать, то внутри отработает ресайз, обычно на величину текущего размера умноженного на два (есть варианты, когда размер прыгает по простым числам). Частый ресайз это не очень хорошо, т.к затрачивается время на резервирование нового пространства и копирования туда значений, плюс будет мусор для gc. Это касается List, т.к. он просто надстройка над Array.

    Есть другие виды списков, которые внутри являются связанными списками. Вообще C# достаточно богат видами списков, их желательно знать, чтоб правильно выбрать необходимый под свою задачу. И как я понял, Вы хотите массив, с возможностью изменять его размер. Тогда Вам нужен List, можете задать ему начальный размер new List(100). Увеличение будет происходить автоматом.
    Ответ написан
    Комментировать
  • Почему стали конские комиссии в биткоин?

    @amambaru
    Потому что Биткойн был выгоден только когда дико рос. Был выгоден для спекуляций.
    Потом стал выгоден тем, кто продавали/сдавали в ареду оборудование для майнинга.

    Сам по себе Биткойн - не является хорошим механизмом для платежей. Он им только притворяется.
    С Биткойном выгодно только спекулировать.
    Ответ написан
    1 комментарий
  • Как научиться понимать как работает память на низком уровне?

    @res2001
    Developer, ex-admin
    Главное нужно помнить, что память - она плоская, т.е. представляйте ее просто набором байт следующих друг за другом. И не важно, какие структуры вы в плоской памяти городите, трехмерные или пяти - они все должны отображаться на плоскую память.
    Когда ОС загружает программу на выполнение она разделяет всю память, доступную процессу на 3 группы:
    1. область куда загружается код программы. Обычно эта память помечается ОС только для чтения. И если туда будет попытка записи, то это вызовет исключение в процессоре.
    2. Область стека. Адрес вершины стека записывается в регистр процессора. Когда в программе выделяются локальные переменные они помещаются именно в стек.
    Фактически для помещения переменной в стек не надо выделять память. Компилятор при сборке программы считает смещения относительно начала стека и обращение к локальным переменным происходит по указателю на начало стека + смещение.
    Со стеком интересная история: ОС выделяет под стек фиксированный размер памяти, но сам размер стека нигде не хранится (в явном виде не хранится, но его в можно узнать), хранится только указатель на начало. Поэтому всегда есть шанс переполнения стека. Например если сделать достаточно глубокую рекурсию.
    В современных ОС под стек выделяется достаточно большой объем памяти, поэтому переполнений как правило не происходит. Но иногда для программы требуется больший объем стека, тогда нужный размер указывается с помощью опций компилятора, этот размер зашивается в исполняемый файл и когда загрузчик ОС грузит программу он считывает размер стека и выделяет нужную область памяти.
    Если вы в своей программе столкнулись с переполнением стека, то не спешите выделять больший объем памяти для стека, возможно у вас программная ошибка из-за которой происходит переполнение.
    3. Куча. Там выделяется память для динамических переменных. Память выделяется ОС по запросу. Обычно в своей программе вы используете менеджер кучи стандартной библиотеки, который в свою очередь обращается за выделением памяти к ОС. Менеджер кучи из стандартной библиотеки можно поменять, есть бесплатные свободно распространяемые реализации. Или сделать свой или пользоваться вызовами ОС для выделения памяти.

    Как-то так.
    Ответ написан
    4 комментария
  • Какие OpenSource проекты на данный момент активны?

    @kmg4e
    Ты серьезно вот сейчас?
    Твой вопрос примерно сродни - "а какие марки легковых автомобилей еще выпускают"
    Ответ: дохрена, лень все перечислять.
    Ответ написан
    5 комментариев
  • Чем отличается автоматическая классификация от распознавания образов?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    теоретически можно конечно сказать, что например классификация - это выбрать из предоставленных классов.
    а распознавание, это вобще понять есть там, что-либо из представленных классов или НЕТ.
    грубо говоря при классификации - фотографий на кошку и собаку, все фотографии будут классифицироваться как кошка или собака, даже если на фото, унитаз.
    при распознавании, типа есть ответ -> что походу на фото ни кошки ни собаки нету.
    но это на первый взгляд, на самом деле даже такая разница нивелируется, если мы расширяем классификацию не на "кошка/собака", а на "кошка/собака/прочее", тогда опять задача распознования сводится к задаче классификации (хотя она изначально и была такой).
    Сегментация это часть классификации, более того например "нейрон" в нейросети, это небольшой классификатор, поэтому абсолютно любую задачу решаемую с помощью нейросетей, можно называть задачами классификации.
    А можно пойти дальше, и показать что любой метод фактически базируется на классификации (сигналов в нейросети, узлов в деревьях, вероятностей в статистических методах и тд)
    Ответ написан
    Комментировать
  • Возможно ли задать высоту flexbox контейнера в процентах?

    Vlatqa
    @Vlatqa Куратор тега CSS
    Ответ написан
    Комментировать
  • Какие тестовые задания дают на верстальщика?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Не нормально.
    Не нормально в качестве теста перелопатить реальную страницу или сверстать с нуля лендос.
    Уточнение: не нормально, если такое тестовое задание не оплачивается.

    Нормальное тестовое задание должно занимать на выполнение не более двух-трех часов у соискателя.
    Ответ написан
    Комментировать
  • На сколько удобно писать на C# под Android?

    @SZolotov
    Asp.net core, MAUI,WPF,Qt, Avalonia
    В целом разрабатывать на Xamarin удобно.
    1. Можно открыть книгу по разработке под Android на java и копипастить примеры оттуда с минимальными доработками, с учетом языка и xamarin'a
    2. Сам язык C# более чем годен, очень активно развивается. Есть куча шарповых библиотек как платных так и бесплатных, как в репозитории пакетов так и на GitHub в виде исходников. Xamarin позволяет подцеплять нативные либы на java, если чего-то не хватает.
    3. Есть "нативный" Xamarin (Xamarin.Android, Xamarin.iOs и т.д.) - это обёртка над нативными API, UI делается привычным для нативных разработчиков способом. Есть Xamarin.Forms - там можно делать единый UI с помощью XAML. Инструмент более чем работающий, но нужно к нему привыкнуть, знать минусы, знать особенности платформ под которые разрабатывается приложение, знать что Xamarin Forms можно использовать не для всех приложений, знать как делать быстрый UI. XF - в целом готов для использования.
    4. Да, размер пакета приложения если сделать все по дефолту большой, есть куча статей по оптимизации размера приложений, но размер приложения будет больше чем у нативных.
    5. Основная проблема Xamarin Forms - не баги, размер или еще что-то. Это неправильные ожидания которые к нему предъявляются. У него своя ниша.
    Ответ написан
    4 комментария
  • Можно ли вытащить первое вхождение ссылки?

    Stalker_RED
    @Stalker_RED
    var arr = [], l = document.querySelectorAll('.indexcolicon a');
    for(var i=0; i<l.length; i++) {
        arr.push(l[i].href);
    }
    Ответ написан
    Комментировать
  • Почему не работает следующая конфигурация nginx?

    @BorisKorobkov
    Web developer
    Потому что test2.ru не попадает под маску *.test2.ru.
    Если поддоменов нет, но укажите server_name test2.ru; и перезагрузите nginx.
    Ответ написан
    9 комментариев
  • Куда пойти учиться в it для "корочки"?

    sim3x
    @sim3x
    Никуда
    Ответ написан
    Комментировать
  • Тупиковое и медленное развитие, лекарство?

    Konstantin18ko
    @Konstantin18ko
    Стоматолог
    Хочешь быстро выкачивать в продакшен? Вруби режим Vanille. Пиши, параллельно свой проект. Зацепись за один язык как основной и дальше учи всё в нем вдоль и поперёк. Затем, как всё выучишь, хватай самый сложный фраемворк и от сложного к простому начинаешь разбирать. Это мой подход.
    Для наглядной статистики: я врач, у меня 8 часовой рабочий день. С сентября 2016 начал изучать PHP и JavaScript. С 1 января по 9 января 2017 пишу програму которая помогала мне писать истории больных. Сейчас программа пользуется популярностью и ей пользуется вся ординаторская. Сейчас проект переписывается на Symfony 3.
    Что мне понадобилось: время после работы, интернет.
    Ответ написан
    22 комментария
  • Почему вылетает ошибка User.sayHello is not a function?

    EreminD
    @EreminD
    Кое-что умею
    у меня так отработало:
    let usr = new User("Mike");
    usr.sayHello();


    и в классе у вас ошибка на name вывалится. Нужно:
    class User
    {
      constructor(name)
      {
        this.name = name;
      }
      sayHello()
      {
        console.log("hello, ", this.name);
      }
    }
    Ответ написан
    Комментировать
  • Используются ли в Go паттерны?

    @rustler2000
    погромист сикраш
    https://www.reddit.com/r/golang/comments/6bbkt9/de... пойдет? но вообще то он от С далеко не ушел и ентерпрайз туда не влез
    Ответ написан
    Комментировать