LINUX.ORG.RU

Сообщения KM155TM2

 

Ищу копипасту про формат PDF

Форум — General

Привет.

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

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

Заранее спасибо.

 , ,

KM155TM2
()

Ядро и планировщики

Форум — Linux-hardware

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

Можно ли резко повысить тактовую частоту (меньше 10 мс / 50 мс или 1 секунды)? Сильно ли это вообще зависит от настроек ядра, или стоит смотреть в настройки BIOS в первую очередь?

Спасибо.

 , , ,

KM155TM2
()

Порекомендуйте различное чтиво по Си

Форум — Development

Керниган и Ритчи рулят, я знаю. Code complete тоже имеется, даже в бумажном виде. Больше беспокоит то, что я не могу вникнуть сходу в то, как работают различные библиотеки.

Как пример, Glibc в одних местах читаема, в других я ничего не понимаю, взять тот-же wcstok (http://codepad.org/E0UfAg1K), где почти ничего не понятно. Хотелось вникнуть, как вообще устанавливаются указатели, чтобы отрезать кусок wchar_t слева и справа строки, пока ясно только добавление числа к указателю, выбирающее начальный символ слева.

Возможно, я что-то пропустил у K&R по теме, даже очень на то похоже. Пригодится и подсказка по этому куску (как указателями ограничивается строка слева и справа) и различное общее и годное чтиво, связанное с Си и *nix, спасибо.

 , ,

KM155TM2
()

Wchar_t и wprintf, C, Python

Форум — Development

Начал осваивать написание модулей Python. Читаю руководство по Unicode-строкам в его документации и вижу, что у этого типа бывает разный размер, в зависимости от системы. Как и у wchar_t, применяемого для хранения многобайтовых символов. Проверил на своей системе размер в байтах таким образом:

setup.py для модуля Python

from distutils.core import setup, Extension
 
module1 = Extension('hello', sources = ['hellomodule.c'])
 
setup (name = 'PackageName',
        version = '1.0',
        description = 'This is a demo package',
        ext_modules = [module1])

Вывод

running build
running build_ext
building 'hello' extension
x86_64-pc-linux-gnu-gcc -pthread -fPIC -I/usr/include/python2.7 -c hellomodule.c -o build/temp.linux-x86_64-2.7/hellomodule.o
x86_64-pc-linux-gnu-gcc -pthread -shared build/temp.linux-x86_64-2.7/hellomodule.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/hello.so

Проверка

static PyObject* hw(PyObject* self, PyObject* args) 
{ 
	Py_UNICODE  *src;
	int srclen;

	if (! PyArg_ParseTuple(args, "u#", &src, &srclen))
		return NULL;
	
	printf("%lu=%lu=%lu",
	       ( unsigned long )sizeof(Py_UNICODE),
	       ( unsigned long )sizeof(wchar_t),
	       ( unsigned long )sizeof(int)
	); puts("");
	
	Py_RETURN_NONE;
}

На выходе имею 4=4=4, получается, в моей системе размер в байтах типа UNICODE для питона равен размеру int/wchar_t.

Проверил копирование в wchar, дополнил код так:

wchar_t *aw;
aw = (wchar_t*)calloc(srclen + 1, sizeof(wchar_t));

size_t i;
for (i=0; i < srclen; ++i){
  aw[i]=src[i];
    printf  ("&#%u &#%u", src[i], aw[i]);
  puts    ("");
}

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

wprintf(L"%ls\n", aw); free(aw);

Как заставить здесь работать wprintf и что я с ним напутал? Судя по различным форумам, я пропускаю установку локали, но я не разобрался с этой частью. Кроме того, является-ли такое копирование при помощи цикла нормальным, или есть гораздо более простые и удобные функции, которые делают его иначе?

 , ,

KM155TM2
()

Bottle.py, Beaker, ID сессии

Форум — Web-development

Пытался разобраться, как в Bottle.py вытащить id сессии Beaker'a. Всё сделано по мануалу Bottle. Beaker переставлен на SqlAlchemy, заместо предлагаемого файлового хранилища.

Код получился странным, хотелось бы понять, как сделать правильно (не понимаю, как ещё достать id через bottle.request.environ.get('beaker.session') ).

def get_uid():
	s = bottle.request.environ.get('beaker.session')
	dir(s) # без этого глючит
	return s._headers['cookie'].replace('beaker.session.id=', '')

Python 2.7.1

KM155TM2
()

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