[00:24:07] <genieprox> test
[00:24:08] <Жаба> genieprox, passed
[00:24:09] <тихий бот> <break what="xmpp"></stream:stream>
[00:24:23] <genieprox> ping
[00:24:23] <тихий бот> ping
[00:24:23] <Жаба> genieprox, Pong from you:  0.452108 s
[00:24:27] <Жаба> тихий бот, Pong from you:  4.292196 s
[00:24:37] <genieprox> ver
[00:24:43] <genieprox> version
[00:24:43] <тихий бот> version
[00:24:43] <Жаба> genieprox,  you have Pidgin 2.10.7 (libpurple 2.10.7) on
[00:24:48] <Жаба> тихий бот,  you have Unio 0.11 on Ominc BBCB Runtime Environment
[00:26:00] <geniepro> version
[00:26:00] <тихий бот> version
[00:26:01] <Жаба> тихий бот,  you have Unio 0.11 on Ominc BBCB Runtime Environment
[00:26:02] <Жаба> geniepro,  you have Psi+ 0.16.261 (2013-11-24)  on Windows 8
[07:59:48] <geniepro> ping
[07:59:49] <Жаба> geniepro, Pong from you:  0.109867 s
[07:59:50] <тихий бот> ping
[07:59:51] <Жаба> тихий бот, Pong from you:  0.319114 s
[08:00:05] <geniepro> version
[08:00:05] <Жаба> geniepro,  you have Psi+ 0.16.261 (2013-11-24)  on Windows 8
[08:00:05] <тихий бот> version
[08:00:06] <Жаба> тихий бот,  you have Unio 0.11 on Ominc BBCB Runtime Environment
[10:21:09] <kpmý> sdl
[10:21:11] <тихий бот> valexey, как там sdl_ttf поживает?
[12:12:55] <kpmý> test
[12:12:56] <Жаба> kpmý, passed
[12:12:57] <тихий бот> <break what="xmpp"></stream:stream>
[12:13:21] <kpmý> .set;test;тожы пэссд
[12:13:22] <тихий бот> kpmý, "test" assigned
[12:22:30] <kpmý> http://www.ferra.ru/ru/system/news/2014/04/21/elbrus-4s/
[13:23:52] <kpmý> ping
[13:23:53] <Жаба> kpmý, Pong from you:  0.296694 s
[13:23:53] <тихий бот> ping
[13:23:56] <Жаба> тихий бот, Pong from you:  3.215653 s
[17:41:01] <vlad2> geniepro: убунту поставил, как здесь почоветовали
[20:18:36] <geniepro> vlad2: а почему не минт там? или дебиан? о_О
[20:19:09] <vlad2> Потому что мне все равно было и тратить время на выбор не хотеклось.
[20:19:51] <geniepro> сурово )
[20:20:09] <vlad2> Дык ;)
[20:20:29] <vlad2> Мне вот только джаббер там никак не настроит - бесит.
[20:20:29] <geniepro> ну и как впечатления-то? ))
[20:20:54] <vlad2> А так я очень непритязательный - браузер, сублим, nodejs. Оно там работает :)
[20:21:16] <vlad2> Я тут уже писал - гуйня однозначно тормознее xp.
[20:21:35] <vlad2> Кстати, Nodejs - Тоже.
[20:21:58] <vlad2> Во первых он там почему-то древний идет - тормозной.
[20:22:22] <vlad2> Ручками обновил до самого последнего - все равно сливает виндовой версии порядка 10%.
[20:22:54] <vlad2> Т.е. убуероновские тесты ранятся на 10% медленнее.
[20:23:03] <vlad2> ебероновские
[20:23:26] <geniepro> ну так линупс тормозная система, я давно заметил что даже воспроизведение фильмов там жутко тормозит )))
[20:23:44] <vlad2> Да, видео на ютюбе подтормаживает.
[20:23:51] <geniepro> а вот всё же интересно, может на минт-дебиане шустрее работало бы?
[20:23:58] <vlad2> (у меня слабый нетбучок, на на xp было лучше)
[20:24:45] <vlad2> Кросек того очень непонравилось, что при просмотре фильма отвалилась часть звуковой дорожки - на виндах никаких проблем.
[20:25:28] <vlad2> Причем это не новомодный формат видео какой был - а довольно старый avi (несколько лет назад записывал).
[20:26:31] <vlad2> (ядро 3.11 символизирует, да :)
[20:27:10] <vlad2> Короче я доволен, линуксоиды молодцы, но работать есть над чем.
[20:28:27] <geniepro> ))
[20:28:38] <geniepro> о, а попробуй PC-BSD )))
[20:28:49] <geniepro> может они получше? )
[20:28:58] <geniepro> ближе к маку, как никак ))
[20:29:09] <vlad2> Я не хочу ничего пробовать - оно мне неинтересно. Мне надо чтоб работало :)
[20:29:17] <geniepro> ну вот блин ))
[20:29:58] <geniepro> на нетбук надо было lubuntu ставить -- я сёдня на виртуалку ставил -- вроде ничо так, хотя этот интерфейс с двумя полосками сверху и снизу непривычен
[20:30:06] <vlad2> Вот современные таблеты в этом смысле радуют - работают и сразу.
[20:30:12] <geniepro> гномий интерфейс
[20:34:01] <geniepro> а убунта какая? последняя 14.04?
[20:39:43] <vlad2> Не.
[20:40:14] <vlad2> Оно ж итак тормозит.
[20:40:37] <vlad2> Я ставил старую.
[20:46:39] <geniepro> так может новая лучше? LTS как никак )
[20:47:21] <vlad2> Я не знаю. И мне пофиг :) Оно не до безобразия тормознее.
[20:48:34] <geniepro> писец, поставил убунту 14.04 на виртуалке VirtualBox -- экран 640x480 )))
[20:52:02] <geniepro> динукс-минт-дебиан и то нормально определил монитор )))
[20:53:20] <geniepro> господа, не парьтесь с бубунтой, ставьте линукс-минт )
[20:53:38] <Jordan> Я ставил lubuntu, только в консоли смог поменять разрешение, через xrend
[20:54:13] <Jordan> Главное к сети, автоматом подключился.
[20:55:33] <Jordan> У меня тут нубский вопрос
[20:55:42] <Jordan> Почему такой код падает.
[20:57:25] <vlad2> Ы?
[21:00:20] <Jordan>
#include <stdio.h>

struct node_t
{
 int data;
 struct node_t * next;
 struct node_t * prev;
};

struct list_t
{
 struct node_t * head;
 struct node_t * tail;
};

struct node_t * obj_add(struct list_t * list, int x)
{
 struct node_t * p = (struct node_t *)malloc(sizeof(struct node_t));

 p->data = x;

 if (list->head == NULL)
 {
p->next = list->head;
list->head = p;
}
 else
 {
   list->tail->next = p;
p->prev = list->tail;
}

p->next = NULL;
 list->tail = p;
 
 return p;
}

struct list_t * table = NULL;
struct node_t * iter  = NULL;

int main(int argc, char **argv)
{
 table = NULL;
 
 obj_add(table, 768);
 obj_add(table, 34);
 obj_add(table, 324);
 obj_add(table, 123);
 
 iter = table->head;
 
 while (iter != NULL)
 {
   printf("%d\n", iter->data);
   iter = iter->next;
 }


 return 0;
}
[21:00:55] <Jordan> Обычный двухсвязный список.
[21:02:28] <Jordan> Если сделать глобальной переменной, и не передавать list через параметр, всё работает.
[21:04:08] <Jordan> Я знаю, что есть std list, но в нём ограниченная поддержка union, только pod типы
[21:06:24] <vlad2> А где падает?
[21:07:26] <vlad2> union - не повод отказываться от std::list
[21:07:43] <Jordan> obj_add(table, 768); при вызове
[21:07:47] <vlad2> Как именно не работает union и std::list?
[21:08:25] <vlad2> У тебя table NULL.
[21:08:27] <Jordan> Допустим, есть структуры в union, так вот в самой структуре есть std string b std list
[21:08:41] <vlad2> list->head == NULL - упадет
[21:08:48] <vlad2> (list - NULL)
[21:10:02] <vlad2> Во-перывых, есть boost::variant (вместо union), огбсуждали здесь с geniepro. Во-вторых, всегда можно обойтись указателями на std::list и std::string - будет тебе POD.
[21:10:14] <Jordan> так я проверяю на пустоту,  что исправить то нужно?
[21:11:00] <vlad2> Тебе надо сначала аллокэйтнуть сам table. Он у тебя NULL.
[21:11:09] <Jordan> ааааа
[21:11:53] <vlad2> table = (struct table_t *)malloc(sizeof(table_t));
[21:12:13] <vlad2> (ну и не забыть обнулить его поля, чтоб он был "пуцстым")
[21:13:10] <vlad2> boost::variant на нальном этапе конечно жестоко, но надо знать, что он есть как замена сишному union'у для плюсовых типов
[21:13:17] <vlad2> начальном
[21:13:52] <Jordan> Спасибо, а я всё голову ломал.
[21:14:27] <vlad2> Ну и, как я говорил, вот такая структура вполне POD: struct X { std::list *field1; std::string *field2; };
[21:14:51] <Jordan> Я уж думал, что не мне программировать не дано, список не могу написать. :-)
[21:15:12] <vlad2> (конечно мороки с ней больше - надо аллокэйтать явно строку и список)
[21:17:23] <Jordan> Да, но если struct x в самом union, компилятор не компилирует, ошибка в union может быть только pod types
[21:17:53] <Jordan> В станарте C++11 смягчили это дело
[21:19:00] <Jordan> В предыдущих стандартах C++ существует ряд ограничений по использованию элементов классовых типов внутри объединений. В частности, объединения не могут содержать объекты с нетривиальным конструктором. C++11 снимает часть таких ограничений.[2]
[21:22:45] <vlad2> struct X { std::list *field1; std::string *field2; }; - не может быть использована в union? точно?
[21:22:57] <Jordan> Я понял, что такие штуки делают через наследование, понять немогу. Проще через union потом в switch разруливать
[21:23:02] <Jordan> Сейчас потестю
[21:25:52] <Jordan> main.cpp(28) : error C2621: член "object_t::item" объединения "object_t::<unname
d-tag>" имеет конструктор копий
[21:26:07] <Jordan> #include <iostream>
#include <list>

typedef enum
{
 TYPE_UNIT,
 TYPE_ITEM
} type;

struct unit_t
{

};

struct item_t
{
 std::string s;
 //char * s;
};

struct object_t
{
 std::string name;
 type attr;
 union
 {
   unit_t unit;
   item_t item;
 };
};

std::list<object_t*> table;

int main()
{
   std::cout << "This is a native C++ program." << std::endl;
   return 0;
}
[21:26:37] <vlad2> Я ж написал - указатель должен быть.
[21:26:46] <vlad2> struct item_t
{
 std::string* s;
};
[21:26:57] <kpmý> с++
[21:26:59] <тихий бот> у сиплюсплюса есть плюсы, целых два...
[21:27:12] <Jordan> Работает
[21:27:18] <Jordan> Через указатель
[21:27:58] <Jordan> Тогда смысла в си нет. :-)
[21:28:31] <Jordan> oberon
[21:28:39] <Jordan> бот молчит
[21:29:34] <vlad2> Jordan: ну и конечно там наследование должно быть, а не union - классический случай, без вариантов.
[21:31:30] <vlad2> js
[21:31:31] <тихий бот> нинужен
[21:31:51] <Jordan> java
[21:32:02] <Jordan> python
[21:32:07] <Jordan> ruby
[21:33:24] <kpmý> .ad;oberon;Слава Оберону!
[21:33:25] <тихий бот> kpmý, "oberon" assigned
[21:33:28] <kpmý> oberon
[21:33:28] <тихий бот> Слава Оберону!
[21:34:15] <vlad2> .ad;россия;Слава Украине!
[21:34:16] <тихий бот> vlad2, "россия" assigned
[21:34:20] <vlad2> россия
[21:34:20] <тихий бот> Слава Украине!
[21:37:55] <vlad2> .ad;украина;Россия, вперед!
[21:37:55] <тихий бот> vlad2, "украина" assigned
[21:37:59] <vlad2> украина
[21:37:59] <тихий бот> Россия, вперед!
[21:38:14] <kpmý> сало уронили
[21:50:37] <geniepro> .ad;украина;Роисся, вперде!
[21:50:37] <тихий бот> geniepro, "украина" assigned
[21:50:41] <geniepro> украина
[21:50:42] <тихий бот> Роисся, вперде!
[21:51:04] <kpmý> .del;украина
[21:51:04] <тихий бот> kpmý, украина deleted
[23:24:00] <Jordan> В чём смысл выделять память malloc'ом потом обнулять memset'ом? Есть calloc который делает, тоже самое. Или calloc работает медленнее?
[23:33:31] <geniepro> Jordan: может так делают по привычке? привыкли выделять маллоком, когда надо обнулять мемсетом -- ну и на автомате делают это вместо каллока?
[23:37:40] <Jordan> Может
[23:38:36] <geniepro> Jordan: calloc, кстати, может работать быстрее чем маллко+мемсет
[23:39:11] <Jordan> Сейчас изучаю исходники freeciv 1996 года, красота. Серьёзно, код более читаемый. В последней версии макрос на макросе и макрос макросом, макрос погоняет.
[23:39:44] <Jordan> Там такой код есть
[23:40:10] <geniepro> как говорят гуру лиспа -- макросы надо использовать только когда они уменьшают код в 20 раз
[23:41:19] <Jordan> В си макросы тупые
[23:41:41] <Jordan> Можно конечно подключить препроцессор m4.
[23:42:01] <Jordan> Но у него синтаксис ещё хуже
[23:42:08] <Jordan> вроде perl
[23:46:04] <Jordan> kpmý как успехи с sdl2 биндинг делается?