LINUX.ORG.RU

Сообщения former_anonymous

 

С/С++: вопросы на собеседованиях

Задача понять хорош кандидат для проекта или нет, как мне кажется, супер сложна. Допустим, он позитивный и всё такое. Поговорим исключительно о технической части. У кого есть опыт - поделитесь что вы спрашиваете у middle/senior разработчиков? Только практические задачи? Теория (какая)?

Ping bugfixer

 , ,

former_anonymous ()

Как явно указать бинарную версию пакета в Debian control?

Привет!

Есть исходники cmake проекта с debian rules, из которых строится несколько deb пакетов. Всё работает отлично. Ну почти :) Один из пакетов - это просто набор файлов (не библиотека, не бинарник и т.п.).

Система сборки видит, что версию для этого пакета взять неоткуда, и берёт версию основного проекта, что меня не устраивает. Можно ли явно указать бинарную версию этого пакета в control файле, или другим способом.

 

former_anonymous ()

Маша и Медведь Патчат KDE

Обнаружили интересную пасхалку. На полке у Маши стоит книга «Как пропатчить KDE».

https://vk.com/wall-46453123_193730

 ,

former_anonymous ()

Binary compatibility в Си

Привет! Допустим, есть библиотека с функцией, которая возвращает объект структуры в стеке. Например

struct Data
{
    int size;
    void *data;
};

struct Data getData();


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

/* VER 1 */
struct Data
{
    int32_t size;
    void *data;

    char reserved[32];
};


/* VER 2 */
struct Data
{
    int32_t size;
    void *data;

    int32_t new_data;
    char reserved[28]; /* -4 */
};


Однако и тут нужно думать о выравнивании, т.к. надо точно знать сколько забирает в байтах новое поле структуры...

Как есть ещё мысли как обеспечить бинарную совместимость?

 ,

former_anonymous ()

Геттеры и сеттеры - зло. А что дальше?

Читаю мысли Егора Бугаенко https://www.yegor256.com/2016/04/05/printers-instead-of-getters.html о том что геттеры - зло. Что-то похоже высказывал Аллен Голуб: https://www.javaworld.com/article/2073723/why-getter-and-setter-methods-are-e... .

Краткая мысль: объект не должен раздавать свои внутренние данные налево-направо. Поэтому и геттеров не должно быть.

Но вот что не даёт покоя. Как реализовать при этом подходе простейший use-case:

Есть книжный магазин BookStore. Требуется узнать какие в нём есть книги автора по его фамилии.

«Неправильный» и простейший поход, который напишет 9 из 10 разработчиков (язык неважен, хоть со стримами в java, всё одно в коде буду геттеры):

class BookStore
{
    List<Book> searchByAuthor(String author)
    {
        List<Book> found;

        for (int i = 0; i < this.books.length; i++) {
            // EVIL
            if (this.books[i].getAuthor() == author) {
                found.append(this.books[i]);
            }
        }

        return found;
    }
};


Не пойму как реализовать этот use-case следуя парадигме вышеуказанных авторов без геттеров?

 , , , ,

former_anonymous ()

getaddrinfo(«12») возвращает успех

struct addrinfo *result = NULL;
int error = getaddrinfo("12", NULL, NULL, &result);



Результат - getaddrinfo() возвращает 0 (успех), и непустую структуру result. Почему? Хоста «12» в сети нет.

 

former_anonymous ()

Уменьшие размера git

Привет. У меня есть git репозиторий без админ доступа. В нём по историческим причинам долгое время наряду с исходным кодом хранились и большие файлы размером 1 Gb. Я избавился от них, перенеся в другое место. Однако, clone репозитория по-прежнему большой, > 1Gb. Какие есть способы уменьшить...

- уже имеющуюся копию репозитория без пере-клонирования
- копию репозитория, которую клонируют с нуля

 

former_anonymous ()

WebKit для Qt от annulen всё?

Cast annulen. Последний релиз - 1.5 года назад (https://github.com/annulen/webkit/releases).

 ,

former_anonymous ()

На udemy чёрная пятница онлайн курсов обучения

Сегодня вообще узнал что такое udemy - это неплохое сборище видео-он-деманд онлайн курсов. Некоторые курсы весьма ничего (хотя есть и лажа), просматривайте программу курса и предварительные уроки! Все курсы до завтрашнего утра по 11$. Расскажите заодно о впечатлениях об этом ресурсе. Какие ещё есть аналоги кроме и так известной Coursera?

 ,

former_anonymous ()

lighttpd не даёт зайти в смонтированный каталог

Ubuntu 18.04. Установлен lighttpd и модуль dir-listing включён. Внутри www рута есть два подкаталога - обычный подкаталог с файлами и каталог куда смонтирован Google Drive с помощью google-drive-ocamlfuse. В обычный подкаталог с файлами в веб-браузере я могу зайти без проблем. В каталог же cо смонтированным GDrive браузер не заходит, говорит 403. Права на оба каталог одинаковые - 775, владельцы тоже одинаковые. В чём может быть проблема?

 

former_anonymous ()

Как установить зависимости локального deb пакета

Привет. Есть у меня локальный сторонний deb пакет. Как установить все зависимости, указанные в его control файле, без установки этого deb? control файл сложный и нужен решальщик зависимостей уровня apt. Тупо сделать dpkg --info | sed не получится - зависимости сложные, с >, >>, |, breaks, conflicts и т.д. Если ли стандартный метод это сделать (наподобие mk-build-deps)?

 , ,

former_anonymous ()

Можно ли скомпилировать внутри chroot

Привет, хорошие мои!

На тру amd64 системе можно сделать i386 chroot, и компилировать i386 программы внутри него без плясок с флагами. Однако обратного сделать нельзя, и тем более нельзя компилировать таким образом arm программы, например. Чтобы увеличить универсальность, хотелось бы завести какую-то функцию или команду в шелле типа:

# host is amd64

$ can_compile_for arm
false
$ can_compile_for amd64
true
$ can_compile_for i386
true


Какие есть мысли как такого добится без запуска компилятора внутри chroot (самый тупой и очевидный способ)?

 , , , ,

former_anonymous ()

А легально ли в РФ удалённо работать?

Собственно, программирование для Линукс :) Проект длинный. Заказчик - один, из США, предлагает какой-то свой стандартный договор, ежемесячные оплаты. Как ИП исполнитель не зарегистрирован. Можно ли в РФ так работать и платить налог раз в год как физлицо? Какие опасности? :)

 , , , ,

former_anonymous ()

Свой FindZlib.cmake

Привет. Конфигурирую проект с помощью cmake. Проект зависит от zlib. Он не находит debug версию zlib из-за неправильного имени zlib библиотеки в дефолтных cmake скриптах (он ищет zlibd1, хотя нужно искать zlib1d). Я сделал свою версию FindZLIB.cmake, но не получается указать cmake чтобы он подхватывал мою версию вместо системной. Конечно, я можно было бы запатчить проект и установить там CMAKE_MODULE_PATH, но менять исходники самого проекта нельзя (особенности билд-системы которые я не контролирую), только через командную строку. Идеи? :)

 

former_anonymous ()

Получить историю коммитов в бранче

Есть git ветка, уже смёрженная в master. Как узнать историю коммитов, сделанных в эту ветку? Наподобие svn log --stop-on-copy

 

former_anonymous ()

Закачать файл обратно :)

Есть большое Dropbox хранилище с настроенным smart sync (все файлы по-умолчанию - sparse, скачиваются по запросу). Я скопировал несколько файлов из моего каталога Dropbox на диске на флешку, и эти файлы синхронизировались и заняли реальное место на диске. Мне они более не нужны. Как вернуть им статус несинхронизированных, чтобы они перестали занимать место на диске? Единственное и кривое решение что я вижу - это отключение Dropbox клиента, удаление всего каталога целиком, и включение Dropbox клиента, чтобы он создал все sparse файлы заново. Но это криво и долго (файлов миллионы).

 

former_anonymous ()

Bitcoin > 10'000$

Bitcoin стремительно растёт. Кто-то кто лет пять назад намайнил сотенку сейчас миллионеры. В США уже готовятся к выходу на рынок фьючерсы на Биткоины. Каковы ваши прогнозы на будущее? Стоит ли их покупать (любые криптовалюты) с вашей точки зрения?

Я помню тут был один активный майнер несколько лет назад с фотками фермы на Радеонах. Не помню кто =) Какова его судьба... Анонимный майнер отзовись, если на твоём острове есть интернет :)

 ,

former_anonymous ()

cmake test: получить полный вывод тестов

Привет. Есть билд-сервер, который собирает и тестирует софт. Софт использует cmake/ctest. Если какой-то тест провалился, то он просто пишет Failed безо всяких ошибок. Проблема в том, что у меня тест работает, а на сервере - нет. Как поменять CMakeLists.txt, чтобы он печатал ошибки при провале теста? Менять что-то кроме CMakeLists.txt я на сервере не могу (типа переменной окружения CTEST_OUTPUT_ON_FAILURE).

set(ENV{CTEST_OUTPUT_ON_FAILURE} "1")


также не помогает

 

former_anonymous ()

Уязвимость в macOS раскрывает пароли любых зашифрованных APFS томов

Бразильский разработчик Матеус Мариано обнаружил достаточно серьёзную уязвимость системы безопасности в macOS High Sierra.

Данная уязвимость раскрывает пароли любых зашифрованных APFS томов.

Как сообщает разработчик, если запустить ранее зашифрованный том APFS в Дисковой утилите и нажать кнопку «Показать подсказку», то вместо подсказки система покажет пароль в текстовом виде.



http://www.macdigger.ru/macall/diskovaya-utilita-macos-high-sierra-raskryvaet...
https://support.apple.com/ru-ru/HT208168

 , ,

former_anonymous ()

Как хранить объекты возвращённые из функции/метода?

Выберите ваш вариант присваивания и расскажите почему используете именно так. Объект после присваивания не меняется. Речь идёт о шареных (implicitly shared) Qt классах, например QString. Итак:

1.

QString str = getString();

2.
const QString str = getString();

3.
const QString &str = getString();

 ,

former_anonymous ()

RSS подписка на новые темы