LINUX.ORG.RU

Избранные сообщения anonymous_incognito

Посоветуйте PCI-E звуковую карту

Форум — Linux-hardware

Доброго дня, лор!
Хотел купить звуковую карточку, только для прослушивания музыки. В качестве ОС использую Debian. В карточке главное - отличное звучание. Посмотрел варианты на маркете, приглянулись такие варианты:
Creative Sound Blaster Z
Creative Audigy Rx
Но почитав отзывы в интернетах, понял, что есть проблемы с драйверами под линукс.
Поделитесь опытом, какие карты кто использует, для прослушивания аудио.

К карточке требования небольшие:

  • PCI-E
  • Качество звука
  • Хорошая совместимость с Linux

    По форуму искал, ничего толкового не нашел
    Заранее спасибо

 , ,

telepuz
()

Лучшее IDE для C/C++

Форум — Development

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

 , ,

devianoro
()

Интервью с Con Kolivas

Новости — Linux General
Группа Linux General

Анестезиолог Con Kolivas, который также известен как создатель Rotating Staircase Deadline Scheduler (RSDL), заявил что уходит. Что он больше не будет присылать патчи к ядру linux.

И так же заявил, что Linux не займет место на десктопах, и что Microsoft уничтожила инновации для PC. Ну и постарался объяснить почему.

>>> Интервью

libc
()

Опубликованы исходники MoveNoid — бесконтактного арканоида под Linux

Новости — Игры
Группа Игры

MoveNoid — это бесконтактный арканоид, в котором управление ракеткой осуществляется в воздухе с помощью специально размеченной картонки. Игра написана с помощью библиотеки компьютерного зрения OpenCV и популярного движка двумерной физики Box2D. В качестве фреймверка общего назначения используется Qt 5.9. Исходные коды proof-of-concept были открыты в этом месяце под свободной лицензией GPL v.3 и Modified BSD.

Для игры потребуется компьютер, веб-камера и специально размеченная картонка (чертеж разметки доступен на официальной странице игры). Желательно использовать камеру высокого разрешения с быстрой незамыливающей изображение матрицей. Автор использует бытовую Logitech C270, однако лучше подойдет более продвинутая модель C615, или другие веб-камеры из профессиональных серий.

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

Для интересующихся доступны ссылки:

Официальная страница игры

Видеообзор с демонстрацией процесса игры

>>> Подробности: Новость на сайте автора

 , , ,

Xintrea
()

Ушат помоев в сторону крестолюбов

Форум — Development

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

Последние 7 лет я пишу сугубо на C, и только под Linux (да, да -std=gnu99 и accept4, dup3, __attribute__((cleanup(dtor))) и прочие приятности, позволяющие сделать волосы шелковистее на 15.5%) и не понимаю, для чего вообще нужен C++? То, что на сишке делается красиво и элегантно, в крестах напоминает соитие парализованных дцпшников (к сожалению, утерял картинку, но именно этот образ всплывает в голове, когда вижу очередную порцию крестолапши).

Давайте посмотрим на типичного C++ разработчика: он использует STL, boost, многие любят Qt (не только для GUI), якобы чтобы «писать кроссплатформенный код». В итоге болезный не знает током ни WinAPI, ни POSIX — ничерта. Он абсолютно не разбирается, как работает целевая система, для которой пишет код! Крестокодер просто не осознает, какой лютый ужас кроется за его любимыми iostream-ами, какое лютое говно лежит в boost::filesystem::path, насколько убого-низкоуровневым является boost::asio в 2016 году.

Только крестораб может эпично обосраться и просадить производительность, забыв передавать по ссылке параметры для «горячих» функций (то есть, просто забыв написать «&» в нужном месте).

Также эти убогие завистливо смотрят на type inference в языках, проектировавшихся не как «C на стероидах», и в ответ начинают лепить template и auto не к месту, от чего код адово пухнет и даже IDE перестает его понимать.

Серьезно, просто прекратите писать на этом языке. В следующий раз, начиная новый проект, выберите java (щютка)/go/swift/rust/c. Прекратите насиловать труп и отравлять зловонием все вокруг!

Перемещено true_admin из talks

 , , ловите наркомана,

kawaii_neko
()

После многих лет проганья на C++ я узнал, что C массивы работают не совсем так, как я думал

Форум — Development

Я всегда думал, что в C массивы, определенные как-то так int array[13] = {0}; это на самом деле то же самое, что int*, то есть память выделяется на стеке, и где-то там есть локальная переменная array, указывающая на кусок памяти под 13 интов. И я думал, что единственная разница между массивом и указателем это то, что для массива переопределен оператор sizeof, и соответственно компилятор статически знает его размер.

Сегодня я учился работать в gdb, рассматривал там всякие значения и адреса переменных, и тут конфуз у меня случился. Есть переменная fptr ptrs[3] = { NULL, get_wisdom, put_wisdom };, остановился я в gdb на брейкпоинте, и пишу

(gdb) print ptrs
$12 = {0, 0x804857e <get_wisdom>, 0x8048627 <put_wisdom>}

И думаю: «хмм, странно, почему этот gdb по умолчанию печатает массив/указатель как массив? Пробую print /a ptrs - не получается. Ну ладно, думаю я, видимо в gdb так переопределен принт для массивов, определенных как массивы, и /a почему-то не работает, ну да и хрен с ним.

Пробую затем

(gdb) print &ptrs
$13 = (fptr (*)[3]) 0x804a0d4

и думаю: „ага, почему-то чтобы мне получить значение указателя ptrs, надо написать & - странно плохо сделали тупо, а теперь я хочу получить адрес собственно переменной ptrs, а не ее значение:

(gdb) print &&ptrs
A syntax error in expression, near `&&ptrs'.

А оно не работает. Ну тут я начинаю понимать, что что-то здесь нечисто, и возможно я неправильно понимаю C-шные массивы. Иду и создаю на тест программу:

#include <stdio.h>

int main() {
    int array[5] = {0};
    printf("array = %p\n", array);
    printf("&array = %p\n", &array);
};

запускаю ее, а оно выдает

array = 0xbffff530
&array = 0xbffff530

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

array = calloc(6, sizeof(int));
//a.c: In function ‘main’:
//a.c:7: warning: incompatible implicit declaration of built-in function ‘calloc’
//a.c:7: error: incompatible types in assignment

или

printf("&&array = %p\n", &&array);
// какая-то там ошибка про label'ы, видимо && в C для гоуту используется? не знаю

Вот так я узнал сильно новую для себя вещь про C. Надеюсь, еще через пару лет не найду какой-нибудь нежданчик например в аргументах функций как массивах (вместо указателей) или в чем-нибудь еще.

А вообще мне непонятно, нафиг они так сделали? По-моему если бы были только указатели, без массивов, то было бы проще и удобнее. Ну конечно какая-нибудь там конструкция типа sizeof пускай работает, чтобы можно было статически размер их получать.

 

hlebushek
()