LINUX.ORG.RU

Сообщения alexru

 

ГЛОНАСС в массы

http://interfax.ru/news.asp?id=168289

«Самарская компании AGISLTD анонсировала сертификацию „модема определения координат с сертификатом соответствия на навигационный приемник ГЛОНАСС/GPS сигналов – СН-4706“, сказано в материалах Ассоциации. При этом в документах, прилагаемых к прибору, отмечается, что навигатор имеет опцию ГЛОНАСС.

Однако внутри корпуса ГЛОНАСС-приемник СН-4706 „фактически не установлен на плату, так как крепится к ней при помощи двухстороннего скотча и поролоновых вкладышей“, отмечают эксперты.»

Ну как подход? :)

alexru
()

/. простой интерфейс

/. всем хорош, но вот его вебдванольный интерфейс с ползунками и прочими наворотам убивает. Может есть какой-нибудь способ представить информацию (включая коментарии) в просто текстовом виде, как на ЛОР-е?

alexru
()

Universal characters in C99

С99 содержит упоминание universal characters, соответственно можно использовать в идентификаторах последовательности вида \u1234 и \U12345678, где цифры - коды символов из юникода. При этом прямые юникодные символы не допустимы в идентификаторах (так как не входят в basic character set).

Вопрос: зачем?

Единственное что я могу придумать - взаимодействие с языками, в которых юникод разрешен. Что еще?

alexru
()

Обсуждение нового закона об образовании

Началось http://www.zakonoproekt2010.ru

PDF-ка сделана в OOo 3.1, так то вот.

alexru
()

Ubuntu One Windows

Пришло приглашение принять участие в бета-тестировании Ubuntu One для винды и вот:

Please note that v4.0 of the .NET framework is required.

Что-же это такое-то...

alexru
()

Красивая реализация списков

И так, после некоторых экспериментов я пришел к следующей реализации списков, которая включает в себя все лучшее из стандартной реализации и реализации «как в линуксе» :)

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

В настоящий момент в каждую сруктуру, которая может включаться в список нужно добавить служебный элемент для связи (макрос LIST_LINK), который всегда называется link. Если во все макросы добавить название служебного поля как параметр, то можно иметь один и то-же элемент в разных списках (как в линуксе), мне это не нужно, поэтому не делал.

Конструктивная критика приветствуется.

Сама реализация:

#ifndef _LIST_H_

#define _LIST_H_


#define LIST_LINK(type) \
  struct { struct type *next;  struct type *prev; } link


#define DECLARE_LIST(type, name) \
  type name = { .link = { .next = &(name), .prev = &(name) } }


#define LIST_INIT(ptr) \
  do { (ptr)->link.next = ptr; (ptr)->link.prev = ptr; } while (0)


#define list_add_after(_item, _new) \
  do { \
    (_new)->link.next = (_item)->link.next; \
    (_new)->link.prev = (_item); \
    (_item)->link.next->link.prev = (_new); \
    (_item)->link.next = (_new); \
  } while (0)

#define list_add_before(_item, _new) \
  do { \
    (_new)->link.next = (_item); \
    (_new)->link.prev = (_item)->link.prev; \
    (_item)->link.prev->link.next = (_new); \
    (_item)->link.prev = (_new); \
  } while (0)

#define list_add(_list, _new) \
  list_add_before(_list, _new)

#define list_add_head(_list, _new) \
  list_add_after(_list, _new)

#define list_del(_item) \
  do { \
    (_item)->link.prev->link.next = (_item)->link.next; \
    (_item)->link.next->link.prev = (_item)->link.prev; \
    (_item)->link.next = NULL; \
    (_item)->link.prev = NULL; \
  } while (0)

#define list_del_init(_list) \
  do { \
    list_del(_item); \
    LIST_INIT(_item); \
  } while (0)

#define list_is_empty(_list) \
  ((_list)->link.next == (_list))


#define list_foreach(_var, _list) \
  for (_var = (_list)->link.next; _var != (_list); _var = _var->link.next)

#define list_foreach_back(_var, _list) \
  for (_var = (_list)->link.prev; _var != (_list); _var = _var->link.prev)

#define list_foreach_var(_type, _var, _list) \
  for (_type *_var = (_list)->link.next; _var != (_list); _var = _var->link.next)

#define list_foreach_back_var(_type, _var, _list) \
  for (_type *_var = (_list)->link.prev; _var != (_list); _var = _var->link.prev)

#define list_foreach_safe(_var, _list, _tmp) \
  for (_var = (_list)->link.next, _tmp = (_var)->link.next; _var != (_list); \
       _var = _tmp, _tmp = (_var)->link.next)

#define list_foreach_back_safe(_var, _list, _tmp) \
  for (_var = (_list)->link.prev, _tmp = (_var)->link.prev; _var != (_list); \
       _var = _tmp, _tmp = (_var)->link.prev)

#endif // _LIST_H_


Пример использования:

#include <stdio.h>
#include <stdlib.h>
#include "list.h"

typedef struct num_t
{
  int      num;
  LIST_LINK(num_t);
} num_t;

static DECLARE_LIST(num_t, nums);

int main(void)
{
  num_t n1, n2, n3, n4;
  num_t *n5;
  num_t *ext_var;

  n1.num = 1111;
  n2.num = 2222;
  n3.num = 3333;
  n4.num = 4444;

  n5 = malloc(sizeof(num_t));
  n5->num = 5555;

  list_add(&nums, &n1);
  list_add(&nums, &n2);
  list_add(&nums, &n3);
  list_add(&nums, &n4);
  list_add(&nums, n5);

  list_del(&n2);

  printf("Go through list using c99 style for loop declaration:\n");
  list_foreach_var (num_t, var, &nums)
  {
    printf("  %d\n", var->num);
  }

  printf("Go through list using external variable as loop parameter:\n");
  list_foreach (ext_var, &nums)
  {
    printf("  %d\n", ext_var->num);
  }

  return 0;
}

alexru
()

Глюк GCC?

Программа ниже, если собирать с -O2 (или -O3), то вывод получается примерно такой:

------- 0x08724018 0x00000000 0x08724008
А если с -O1, то такой (какой и ожидался):
------- 0x09917018 0x09917008 0x09917008

Это я где-то не доглядел или глюк GCC?

Художественные достоинства кода просьба не обсуждать, если они не связанны непосредственно с проблемой - это вырезка из большой программы.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

typedef struct List_t
{
  struct List_t *next;
} List_t;

typedef struct Symbol_t
{
  struct Symbol_t *next;
} Symbol_t;

typedef struct First_t
{
  Symbol_t       *set;
} First_t;

static void list_add(void **list, void *element)
{
  ((List_t *)element)->next = NULL;

  if (*list)
  {
    List_t *last = *list;
    while (last->next)
      last = last->next;
    last->next = element;
  }
  else
    *list = element;
}

int main(void)
{
  First_t *item;
  Symbol_t *res;

  res = malloc(sizeof(Symbol_t));
  res->next = NULL;

  item = malloc(sizeof(struct First_t));
  item->set = NULL;
  list_add((void *)&item->set, res);

  printf("------- 0x%08lx 0x%08lx 0x%08x\n", item, item->set, res);
  return 0;
}
alexru
()

Индикатор раскладки в Ubuntu

В последней Ubuntu появился никак не отключаемый индикаор раскладки, но по-умолчанию он показывает иконку клавиатуры.

Так как способа его отключить я не нашел, то решил хоть заставить его флаги показывать. Погуглил, сделал следующее:

alexru:~/.icons/flags$ ls
ru.png  us.png
alexru:~/.icons/flags$ file ru.png 
ru.png: PNG image, 16 x 11, 8-bit/color RGB, non-interlaced
alexru:~/.icons/flags$ file us.png 
us.png: PNG image, 16 x 11, 8-bit/color RGB, non-interlaced

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

Вопрос - как заставить и этот индикатор тоже их показывать или (что лучше) убрать его совсем?

alexru
()

Время работы YACC (или BISON)

Сколько времени у YACC-а (или BISON-а) занимает генерация парсера для грамматики объемом примерно как грамматика Си? Нужен порядок примерный.

alexru
()

Тесты для компилятора

Сразу скажу, еще не гуглил.

Поскажите наборы тестов для компилятора C99, бесплатные естественно. Интересует только тесты синтаксиса, то-есть корректность/компилируемость программ не нужна, проверяются только лексер и парсер.

alexru
()

Cтатьи антинаучного характера

Решением президиума ВАК Минобрнауки России от 16.04.2010 № 19/20 на основании письма ректора Национального исследовательского ядерного университета «МИФИ» и заключения экспертного совета о публикации статьи антинаучного характера журнал «Инженерная физика» исключен из Перечня ведущих рецензируемых научных журналов и изданий, в которых должны быть опубликованы основные научные результаты диссертаций на соискание ученых степеней доктора и кандидата наук.

http://vak.ed.gov.ru/ru/news/allnews/index.php?id4=2713

Чего они там такого напечатали никто не в курсе?

alexru
()

[youtube] превращение автомобиля в гоночный

http://www.youtube.com/watch?v=mycOQ1A0Ejs первое видео из серии, кого заинтересовало смотрите следующие.

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

 

alexru
()

Самодельный загрузчик elf?

Моделируется работа сети микроконтроллерных устройств в нормальном режиме общающихся по радиоканалу. В настоящий момент каждое из моделируемых устройств представляет собой отдельный ELF, работающий в отдельном процессе и общающийся с сервером через TCP (часть кода по работе с приемо-передатчиком заменена на код общения с сервером, остальной код такой же как и в микроконтроллерах). Сервер постоянно висит на poll()-е, протокол простой запрос-ответ.

В пределе моделируемых устройств будет до нескольких сотен, возможно тысяч, смотря насколько будет тормозить все это. Типов моделируемых устройств не так много (в настоящий момент 3), поэтому один и тот-же ELF работает как много однотипных устройств, разница в их поведении будет обусловлена пакетами, принимаемыми от других таких-же устройств.

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

Вопрос: чем можно заменть TCP? Я так поимаю любые другие средства IPC тут будут абсолютно так же тормозить?

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

Есть вариант сделать свой простой загрузчик ELF-ов (их можно слинковать статически).

Какие еще есть варианты?

alexru
()

Сломалась подсветка синтаксиса в nano

Мой .nanorc выглядит так: http://paste.org.ru/?vi5djh - он откуда-то успешно утянут и так и использовался до недавнего времени. Я не заметил когда точно, но с некотрого времени подсветка работать перестала. Кто следит за новостями, что именно там поменялось? Перелопачивать руками такую гору текста лениво чего-то.

alexru
()

Алгоритм подсчета контрольной суммы

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

Из последних строк видно, что характерной особенностью алгоритма является то, что сумма для посылок из 2-3 байт вычисляется по формуле 0xffff - sum(data).

Помогите определить алгоритм, пожалуйста.

24 0abaf900 0b 030800ffffffff07 f7 eb     f625
24 aef9f900 0b 030800ffffffff07 f7 ec     50e6
24 5339fa00 0b 030800ffffffff07 f6 e8     afa7
24 f778fa00 0b 030800ffffffff07 f1 ec     076d
24 b8266101 0b 030800ffffffff07 f7 ea     e1b9

24 eb13d50b 12 020025 f1 ec     3ba8
24 9920d50b 12 020026 f0 ec     8e9a
24 38acd50b 12 020031 f1 ec     ee03
24 e8b8d50b 12 020032 f0 ec     3ef6
24 97c5d50b 12 020033 f0 ec     8fe8
24 4ad2d50b 12 020034 ef ec     ddda
24 f5ded50b 12 020035 f1 ec     30cd
24 a4ebd50b 12 020036 f1 ec     81bf
24 51f8d50b 12 020037 f1 ec     d4b1
24 fd04d60b 12 020038 f1 eb     28a5
24 ac11d60b 12 020039 ef ec     7b96
24 5c1ed60b 12 02003a f1 ec     c988

4e 006f0000990100812200     43c0
4e 000100f8ff3f             ff78
4e 001207322e332e302e38     6dd2

5c 0023     ff80
5c 0024     ff7f
5c 0025     ff7e
5c 0000     ffa3
5c 0051     ff52

27 00       ffd8
alexru
()

Книжки по старинным шифрам

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

Есть-ли какие книжки в которых эта тема раскрыта наиболее полно в одном месте? А то надоего искать по частям все - пропускаешь редкие, но интересные шифры.

alexru
()

Human-Gnome иконки

Ни у кого случаем не сохранилось этой темы иконок http://gnome-look.org/content/show.php?content=47925 ? Архив по ссылке введет на 404, а между тем иконки в новой убунте ужасающи до нельзя.

alexru
()

Сгенерировать N максимально контрастных цветов

Есть какой-нибудь стандартный метод как получить N (в конкретном случае нужно 60) максимально контрастных по отношению друг к другу цветов. Нужно получить R, G и B компоненты.

Нужно это для визуализации информации там, где подписать конкретные элементы нет возможности и нужно чтобы человек мог глазом различить такое колличество цветов.

Реально?

alexru
()

Выдрать глифы из TTF шрифта в векторном виде

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

Опорные точки сплайнов не интересуют, нужно именно наборы простейших элементов. Хинтинг и прочие навороты тоже не нужны.

alexru
()

Манускрипт Войнича

Собственно все активности по расшифровке датируются максимум 98 годом, а между тем появились фотографии в высоком разрешении и по ним видно, что существующие транскрипции содержат довольно много ошибок.

Может кто в курсе, есть-ли где активные форумы/группы/мэйлинг-листы по этому вопросу или все окончательно утратили интерес?

Так же интересует общее мнение по поводу этого документа.

Ссылки по теме:

http://en.wikipedia.org/wiki/Voynich_manuscript - общая информация.

http://www.ic.unicamp.br/~stolfi/voynich/ - много информации, ссылок на другие ресурсы

http://thepiratebay.org/torrent/5380294/Voynich_Manuscript торрент с фотографиями в высоком разрешении.

alexru
()

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