LINUX.ORG.RU

Сообщения solo1h

 

треминал, символы налезают друг на друга

Настраиваю легковесное окружение с ограниченной функциональностью. Fedora20, openbox, tint2 и т.д.

Столкнулся с сабжем, причем проблема наблюдается в любом терминале. lxterminal, xfce4-terminal... везде одинаково: символы налезают друг на друга.

В силу требований к окружению настраивать оформление ДЕ или что-то еще через конфиги в хомяках пользователей нельзя. Все должно устанавливаться вместе с пакетами и без возможности изменить.

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

Вопросы:

  • В чем вообще дело? Где этот гадский конфиг, который надо поправить?
  • Как заставить GTK приложения из коробки подгружать нужную тему? GTK_THEME и GTK_RC_FILES не решают проблему. Можно ли обойтись без ДЕшных штук типа gnome-config-daemon и пр.?

 , ,

solo1h
()

Подскажите название/ссылку ASCII RTS

В этом году в новостях проскакивала ASCII RTSка которую я никак не могу нагуглить: юнитов нет — только популяция, карта на всю консольку и на ней можно только ставить флаги — куда будет ломится твой народец. Еще на карте могут быть горы и замки.

Подскажите пожалуйста ссылку или название. Заранее спасибо.

 , ,

solo1h
()

C++ велосипед библиотеки хэш-функций

Взялся за кресты. Для разминки решил сваять сабж.

Собственно код:

#include <cstddef>
#include <cstdint>


template<typename T>
class Hash
{
public:
    virtual Hash& update(const char*, std::size_t) = 0;
    virtual void reset() = 0;
    virtual T chksum() const = 0;
};

typedef std::size_t size_t;
typedef std::uint_fast8_t  crc8_t;
typedef std::uint_fast16_t crc16_t;
typedef std::uint_fast32_t crc32_t;

template<typename T>
Hash<T> * make_hash();


class Crc8: public Hash<crc8_t>
{
    typedef crc8_t       value_type;
    typedef Hash<crc8_t> parent_type;

public:
    parent_type& update(const char* d, size_t l){
        while(l--) {
            hash_ ^= *d++;
            for (unsigned int i = 0; i < 8; i++)
                hash_ = hash_ & 0x80 ? (hash_ << 1) ^ 0x31 : hash_ << 1;
        }
        return *this;
    };
    void reset() { hash_ = 0xff; };
    value_type chksum() const { return hash_; };
    Crc8(): hash_(0xff) {};
    ~Crc8(){};
private:
    value_type hash_;
};

template<>
Hash<crc8_t> * make_hash<crc8_t>() { return new Crc8(); }

Остальные классы определяются аналогичным образом. И, собственно, вопросы:

  • Чем такой код плох?
  • Чего в коде не хватает?
  • Стоит ли мне его шыфтделет и выйти в окно?

 

solo1h
()

Монтирование устройств для OpenBox через udisks

По сабжу набросал скрипт на пайтоне, рисующий пайпменю с девайсами.

  1. Хочу конструктивной критики
  2. Может кому сгодится

Посмотреть код

Посмотреть скриншот

 , , ,

solo1h
()

char line[VERY_BIG] + malloc() = SIGSEGV

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

собственно код:

#include <stdlib.h>

#define VERY_BIG 1024*1024*1024 

int main (void)
{
	char line[VERY_BIG];
	char *p;

	p = (char*)malloc(1);
	free(p);

	return 0;
}

Получаю SIGSEGV на маллоке, когда BIG больше некоторого значения. На разных ОС предельное значение разное. CPUx86, gcc4

И собственно вопросы: 1) Почему? 2) Где про это читать?

UP: Спасибо всем огромное, проблему понял. Массив line[VERY_BIG] съедает стек.

С проблемой столкнулся в проекте под QNX6. Там код далеко не такой игрушечный но суть та же.

PS: Первый раз пишу на ЛОР. В шоке от оперативности. Очень тронут. Всем еще раз спасибо.

solo1h
()

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