LINUX.ORG.RU

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

Новости — Open Source

plibsys — кросс-платформенная системная библиотека на C

Группа Open Source

Недавно ко мне обратились с вопросом, не хочу ли я написать новость об одной из разрабатываемых библиотек (plibsys). В принципе, я не против, поэтому эксклюзивно для LOR.

Что такое plibsys?

plibsys — это кросс-платформенная системная библиотека, написанная на чистом C. Основной упор был изначально сделан на портируемость и поддержку широкого спектра компиляторов. Для достижения этих целей у библиотеки отсутствуют (небольшим исключением является SCO OpenServer 5 ввиду отсутствия на ней потоков) какие-либо зависимости — используются только те вызовы, которые доступны в целевой ОС. Также никакого ассемблера и использования прочих недокументированных возможностей. Для сборки нужен только рабочий компилятор и CMake.

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

  • Платформо-независимые типы данных
  • Потоки и средства синхронизации: мьютексы, условные переменные, блокировки чтения-записи, спинлоки, атомарные операции
  • Межпроцессное взаимодействие: семафоры, разделяемая память, кольцевой буфер
  • Сокеты (UDP, TCP) с поддержкой IPv4 и IPv6
  • Хэш-функции: MD5, SHA-1, SHA-2, SHA-3, GOST (R 34.11-94)
  • Бинарные деревья: несбалансированное, красно-черное, АВЛ
  • Загрузка разделяемых библиотек
  • Работа с памятью: mmap, установка собственного аллокатора
  • Замер времени исполнения (по возможности — в высоком разрешении)
  • Базовая работа с файлами и директориями
  • Парсер файлов INI
  • Макросы для определения архитектуры ЦПУ, ОС и компилятора
  • Различные вспомогательные структуры данных типа связанного списка, хэш-таблицы, обработка строк

На все есть документация.

( читать дальше... )

>>> Подробности

 , , ,

HardCode
()
Форум — Development

Веселая музычка из /dev/urandom

cat /dev/urandom | hexdump -v -e '/1 "%u\n"' | awk '{ split("0,2,4,5,7,9,11,12",a,","); for (i = 0; i < 1; i+= 0.0001) printf("%08X\n", 100*sin(1382*exp((a[$1 % 8]/12)*log(2))*i)) }' | xxd -r -p | aplay -c 2 -f S32_LE -r 16000

Source: http://blog.robertelder.org/bash-one-liner-compose-music/

 , ,

Oxdeadbeef
()
Форум — Talks

В Slackware прекращена поддержка x86_32 (На самом деле нет)

Тихо и незаметно, никому ничего не сказав и никак не прокомментировав свои действия, Патрик прекратил поддержку x86.

В Changelog остались только x86_64, S/390 и ARM.

Changelog

Перемещено JB из slackware

 

slamd64
()
Форум — General

RTL8723BE в Slax

Подскажите как прикрутить беспроводной адаптер на чипе RTL8723BE в Slackware 14.1 (ядро 3.12.36 pae) ? Нет тырнета.

 , ,

sholmes
()
Форум — Development

Программирование на С

Здравствуйте мои дорогие любители погромирования. Прочитал K&R «Язык программирования Си». Теперь нужна книга, которая расскажет как правильно писать код на С, общепринятые приёмы и стандартные алгоритмы решения типичных задач. Цель: пишу быдлокод для МК и хочу повысить свой скилл.

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

ramon13666
()
Форум — Games

Зацените самодельную игрушку.

http://dagoneev.no-ip.biz/game

1) Рождаешься с 10`000 руб.
2) Выстрел - рубль. Попал в другого: +70, ему: -70. Дошло до 0 - нищеброд, денег нет на стрельбу, катайся или F5.
3) Цифровые клавиши:

1 - режим стрельбы пулями (обычный)
2 - режим кидания цементом

Выстрел цементом стоит 20 руб, если цемент никуда не прилип или попал на другой танк - бабло не списывается.
Цемент (серый) налипает на другой цемент и на титан (чёрный) (по углам экрана найдёте).
Титан добавлен на карту как первая опора для цемента. Он не разрушаем.
В танки стрелять цементом нет смысла.
Кирпичики других интересных цветов - разрушаются, но никак не вовлечены в игру.

4) Титан не разрушаем, цемент - 1 выстрел на кирпич (как обычно).
5) Нет индикации выбранного режима. Для уверенности жмите повторно 1 или 2.
6) В верхней строчке: глобальные координаты X Y, (=кошелёк), юзеров онлайн
7) другие клавиши:

shift (держать) - не поворачивать дуло на поворотах.

Как обычно, всякие левые и старые браузеры и смартфоны не работают.
Админ оставляет за собой право потерять всё построенное участниками, ибо тесты.

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

kiverattes
()
Форум — Talks

Посоветуйте годной научной фантастики

Сабж. Прочитал «Древний» Тармашева. Прочитал «Эпоху мертвых» Круза. Очень понравилось.

И вообще, есть же классика научной фантастики. Посоветуйте.

 ,

ekzotech
()
Новости — Игры

0 A.D. собирает финансы

Группа Игры

Разработчики широкоизвестной трёхмерной стратегии реального времени «0.A.D.» запустили кампанию по сбору средств на развитие игры. В планах решение проблем с производительностью, обновление графики, добавление поддержки кампаний, развитие мультиплеера.

По завершении кампании игра получит все собраные средства, даже если не достигнет основной цели ($160000).

>>> Подробности

 , , ,

O02eg
()
Форум — Development

микроконтроллеры, прошу краткий ликбез

Появилось желание на досуге собрать небольшой механизм с парой десятков сенсоров и несколькими функциональными частями, к примеру электродвигателями. Планируется передавать информацию между механизмом и PC - от датчиков в одну сторону, а для упраления механизмом в обратную. То есть особых вычислительных мощностей на контроллере механизма не нужно, основная логика будет расчитываться на PC. Главный критерий - простота - от сборки и пайки до прошивки и увязки с датчиками. Что сейчас в моде? Может стоит взять какую нибудь готовую плату? В общем любые советы по теме приветствуются.

 , ,

pseudo-cat
()
Форум — Games

Игра на месяцы/года

Друзья. Есть проблемка: люблю играть. Я хочу вообще забить на win-платформу. Поэтому такой вопрос: есть ли какая-то игра, способная увлечь (пере-)прохождением (самой себя) на долгие месяцы? Киберспорт включается. Скажем, КС подходит, но хотелось бы что-то более, ээ, сюжетное.

P.S. Пробовал adom. Понравилось, но увлекло всего на пару месяцев. Хотелось бы что-то более стратегическое, т.к. я фанат СК2.

UPD: Не троллинга ради. Я просто свято верю в опен-сурс, но. UPD2: Но хочу того, чего, видимо, просто нет.

UPD3: Блин, котаны! Вот в Q3 я играю с 2005ого года, например. И не надоело, вот еще бы одну такую! Только более, гхм, стратегию/рпг.

coderage
()
Форум — General

Литература по архитектуре микроконтроллеров

Буду разбираться с STM32F4-DISCOVERY, ищу литературу по архитектуре микроконтроллеров, что-нибудь общее, базовое, чтобы иметь понятие о структуре микроконтроллеров, регистрах, памяти и прочем. В общем, нужно понять, как работает микроконтроллер. Литературу советуйте и для новичков, и более продвинутую, если можно. В сети пока что нашёл только книги Гурова: http://rutracker.org/forum/viewtopic.php?t=2732279

 ,

mentalmenza
()
Форум — Talks

Что делать, если запретять торренты?

Наткнулся на сообщение о том, что с 1 августа могут заблочить торренты и прочие ништяки. Тут горячие подробности.

Помимо очевидного решения закинуть всё нужное на харды и хранить в сухом, тёмном и прохладном месте - что дальше делать? Новую убунточку через торренты будет «нискачать»?

 , ,

ekzotech
()
Форум — Talks

Достойный торрент трекер

Дорогие мои аналитики, посоветуйте достойный рог изобилия торрент трекер.

avertex
()
Форум — Desktop

Порекомендуйте софтину, позволяющую начертить квартиру (не sweethome)

Люди добрые, порекомендуйте софтинку, позволяющую начертить внятный и удобоваримый план своей будущей уютной студии.

Что надо: двухмерный план с проставленными размерами. По сути - электронная копия бумажной экспликации.

vsn
()
Форум — Admin

Резервный DC на linux

Добрый ночер! Есть ЦО и дочки. Есть большие дочки, где куплен WS2008R2, а есть «дочурки», куда он не помещается в бюджет, но шлюз там таки стоит и шлюз работает на Бубунтах. Везде авторизация в домен, подняты ВПНы. Нужно на бубунтах поднять сервер авторизации, что бы он засасывал (вовремя, на лету) пользователей AD и местные тачки маленькх дочурок логинились с него, а уже политики брали с WS2008R2. Задача: инет упал, а авторизация и локаль продолжают исправно работать. Решал ли кто-нибудь подобную задачу? Как? Грабли?

karcun
()
Форум — Development

Qt, QLabel with QPixmap, как сделать autoscaling?

Положил на главную форму QGridLayout (сделал CentralWidget-ом), внутрь - QLabel, пихаю в нее QPixel так:

ui->lbl_firstImage->setPixmap(this->firstImage);

Хочется, чтобы при растяжении (сужении) формы растягивалось (и сжималось) само изображение.

вот так не подходит:

ui->lbl_firstImage->setScaledContents(true);
ui->lbl_firstImage->setPixmap(this->firstImage);

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

Как сделать адекватный autoscalling?

UPD: нашел, как выставить scalled содержимое - помог пример. Теперь задача усложнилась. У меня на самом деле не одна QLabel, а три. И вот такой код:

void MainWindow::resizeEvent(QResizeEvent *ev)
{
    if (!this->firstImage.isNull())
        ui->lbl_firstImage->setPixmap(this->firstImage.scaled(ui->lbl_firstImage->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
    if (!this->secondImage.isNull())
        ui->lbl_secondImage->setPixmap(this->secondImage.scaled(ui->lbl_secondImage->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
    if (!this->splittedImage.isNull())
        ui->lbl_splittedImage->setPixmap(this->splittedImage.scaled(ui->lbl_splittedImage->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));

}

Т.е. все повешено на событие ресайза главного окна. Но вот незадача: когда я выбираю первое изображение - все норм. А вот при выборе второго изображения форма сама увеличивает себя в размерах, и.... за счет самопроизвольного вызова события ресайза происходит лавинообразный бесконтрольный рост формы и ее scalled-содержимого :).. Как победить?

 autoscalling, qlabel, ,

bvn13
()
Форум — Development

Ищу желающих и могущих помочь проекту

Доброго времени суток!

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

Чтобы не засорять, подробное описание проекта, обоснование его (не?)нужности и текущих проблем/круга задач выложил тут: http://openpsy.ru/developer-help-request

Заодно можно посмотреть, что уже имеется.

Спасибо за внимание, жду хоть каких-нибудь отзывов!

 , , ,

ASGAlex
()
Форум — Talks

посоветуйти музыку

Собственно, посоветуйте нечто спокойное медитативно-классическое, под которое приятно трассировать пп.
Что-то типа такого: http://www.jamendo.com/en/artist/337307/sydney-poma

Линукс при том, что он будет работать на том, что я трассирую.

 

AiFiLTr0
()
Форум — Mobile

Портирование ядра. Написал драйвер UART как корректно его подключить.

Здравствуйте. Я пытаюсь портировать ядро линукс на процессор SPMP8000 (основан на arm926). Я написал свой драйвер ЮАРТ (пока сильно упрощенный вариант). Вот код драйвера:

#include <linux/console.h>
#include <linux/serial_core.h>
#include <asm/io.h>
#include <mach/serial.h>

#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/spinlock.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/sched.h>
#include <linux/smp.h>
#include <linux/termios.h>
#include <linux/amba/bus.h>
#include <linux/amba/serial.h>
#include <linux/io.h>
#include <mach/platform.h>
#include <mach/hardware.h>
#include <asm/irq.h>
#include <asm/mach-types.h>
#include <asm/setup.h>
#include <asm/mach/arch.h>
#include <asm/mach/flash.h>
#include <asm/mach/irq.h>
#include <asm/mach/map.h>
#include <asm/mach/time.h>




//запись символа в юарт0
static void putc(int c)
{
        int timeout=4000;

        if (UART0_STATUS1 & 0x1E) return;
        while (timeout > 0) {
                if ((UART0_STATUS2 & 0x10) && ((UART0_STATUS3 & 4) == 0)) {
                        UART0_DATA = c;
                        break;
                }
                timeout--;
        }
}

// функция printk в  ЮАРТ
static void sanoprintk(struct console *co, const char *s, u_int count){
    int i;
        /* Пишем каждый символ */
        for (i = 0; i < count; i++, s++) {
                if (*s == '\n'){
                        putc('\r');
                }
                putc(*s);
        }
}


static int __init sano_console_setup(struct console *co, char *options)
{
        return 0;
}


/* Заполняем структуру консоли */

static struct console sano_uart_console = {
            .name   = "ttyS",                /* Имя консоли */
            .write  = sanoprintk, /* Как делать printk в консоли */
//          .device = uart_console_device,    /* Предоставлена ядром serial */
            .setup  = sano_console_setup,
            .flags  = CON_PRINTBUFFER,        /* Флаг по умолчанию */
            .index  = -1,                     /* Инициализация в неправильное значение */
};
//register_console(&sano_uart_console);


/* Инициализация консоли */

static int __init sano_uart_console_init(void)
{
/* Регистрация этой консоли */
register_console(&sano_uart_console);
return 0;
}

console_initcall(sano_uart_console_init); /* Метка инициализации консоли */

В Makefile arch части добавил obj-y += serial.o, ядро собирается и драйвер в его добавляется, но вывод сообщений в ЮАРТ не происходит.

Однако если я в файде /init/main.c добавляю свою функцию sanoprintk , а так же заполняю и инициализирую структуру static struct console sano_uart_console прямо в начале функции start_kernel, то вывод в юарт работает так как надо. Выглядит это примерно так

#ifdef STANDALONE_DEBUG
#define putstr printf
#else

static void sanoprintk(struct console *co, const char *s, u_int count);

#include <mach/uncompress.h>
#endif

static void sanoprintk(struct console *co, const char *s, u_int count){
    int i;
        /* Пишем каждый символ */
        for (i = 0; i < count; i++, s++) {
                if (*s == '\n'){
                        putc('\r');
                }
                putc(*s);
        }
}

asmlinkage void __init start_kernel(void)
{
/* Параметры каждого из поддерживаемых портов USB_UART */
        /* Заполняем структуру консоли */

static struct console sano_uart_console = {
          .name   = "ttyS",                /* Имя консоли */
          .write  = sanoprintk, /* Как делать printk в консоли */
          .flags  = CON_PRINTBUFFER,        /* Флаг по умолчанию */
          .index  = -1,                     /* Инициализация в неправильное значение */
};
register_console(&sano_uart_console);

Однако, это крайне не верное решение. Подскажите пожалуйста как подключить драйвер вынесенный в отдельный файл arch части ядра.

 spmu8000, ,

Sanoend
()
Форум — Admin

Взбесился cron

Здравствуйте, уважаемые

С кроном какой-то шайтан, а может я на старости лет ебанулся

Вот запись:

0 1 2-31 * 6 /скриптец

Я жду, что он будет выполнятся раз в неделю (в час ночи, со 2 по 31-е число)

Хер там! исполняется КАЖДЫЙ ДЕНЬ что за херня? у меня уже кроме мата слов не осталось.

Alphaer
()