LINUX.ORG.RU

Сообщения kto_tama

 

Поменять кодировку

В каталоге лежит большое количество html-файлов в кодировке 1251.
Можно как-нибудь из командной строки поменять в них кодировку на утф ?

kto_tama
()

Текстовой редактор с двойным окном

Раз пошла такая пьянка про диффы , то у меня тоже вопрос. Интересуют прежде всего гуевые редакторы. Есть ли в юниксе текстовые редакторы , которые позволяют открыть одновременно на экране 2 файла , разбив экран на 2 половинки по вертикали ?

kto_tama
()

Что такое кризис

kto_tama
()

glibc detected double free or corruption

Вылез глюк : в плюсовом приложении при использовании malloc/free приложение падает с сабжем . Нашел затычку : перед запуском приложения выполнить команду :
export MALLOC_CHECK_=0

Может , есть более элегантное решение ?

kto_tama
()

Йота

Народ , кто в дефолт-сити живет , хотелось бы услышать ваше мнение.
Я запустил из-под линукса и выяснил , что выше 100 килобайт в секунду мне не прыгнуть - какая-то яма возле моего дома получается.
Хотя в принципе даже торренты можно качать.
Но иногда просто падает , хрен знает из-за чего , приходится делать телодвижения.
Вообще народ говорит , что скорость бывает на порядок больше.
А есть альтернатива для усб-модемов ?

kto_tama
()

Восстановление партиции

Мне тут товарищ диск принес.
У него на нем линуксовая партиция оказалась помеченной как W95 FAT16.
Он устанавливал на другой диск хр и как-то умудрился ее зацепить.
Винда говорит , что партиция еще не отформатирована , и предлагает ее отформатировать.
Я перепробовал cfdisk , parted , но все на эту партицию ругаются , не могут прочитать и говорят , что суперблок потертый.
Есть ли какая надежда вытащить файловую систему ?

kto_tama
()

касперский теперь очень быстрый !

kto_tama
()

Синхронизация потоков

Задача : имеется глобальная структура , в которой есть флаг .
Для работы с этим флагом нужно создать 2 потока , каждый из которых будет выполнять отдельную функцию : первый поток - назовем его left - будет активировать этот флаг , второй - right - деактивировать .
Процесс активации-деактивации сделать поочередным в течении неопределенного промежутка времени.
Из кода понятно , что если закомментировать блокировку , то работать это не будет.
У меня вот какой вопрос : что изменится , если раскомментировать условную переменную ?
Визуально - вроде ничего , поэтому непонятно ...

kto_tama
()

Отключить показ аватар

Часто вызывающие аватары отвлекают внимание от существа. Причем размер этих аватар великоват . Предлагаю в профиль добавить опцию - отключать показ аватар.

kto_tama
()

client reconnect

Есть ли в стандартных posix сокетах стандартная возможность у клиента сделать автоматический реконнект после того , как сервер отвалился ? Т.е. что-то типа SetConnectTimeout , OnConnectRetry() ...

kto_tama
()

Video capture

Может , кто имел дело со следующей проблемой :
к компу по файрваре порту подсоединена видео-камера
Видео захватывается с помощью dvgrab и передается ffmpeg-у примерно так :
dvgrab -format raw -frames 25 - | ffmpeg -i - ........

ffmpeg берет данные из контейнера , все работает , НО :
текущий кадр , приходящий в ffmpeg , отстает от реального кадра на 3 секунды
Пробовал строить все мыслимые комбинации из параметро dvgrab-а и ffmpeg-а , но рантайм-рассинхронизация кадров в 3 секунды так и осталась .


kto_tama
()

Идентификация цифровых камер в линуксе

Купил видео-камеру canon Маленькая коробочка такая , умещается в ладошке В линуксе камера определяется влет ! Скачиваешь простым кликом отснятый материал в формате avi и тут же смотришь его на компе Винда ЖЕ в упор не видит камеру ! :-) Прилагается сидюк , который надо проинсталлировать Линукс , вообще говоря , двигается в правильном направлении

kto_tama
()

Ошибки в заголовках топиков

Ну очень сильно бросается в глаза Например : http://www.linux.org.ru/view-message.jsp?msgid=3512062&lastmod=1234894131344

Я так понимаю , что у вас нет возможности на правку заголовков ?

kto_tama
()

Запись в /tmp

Приложение запускается НЕ из под рута. Могут ли у него быть ограничения на запись в каталог /tmp ?

kto_tama
()

Apache в качестве прокси

В апаче есть базовая фича , позволяющая ему выступать в роли форвард-прокси :

<Proxy *>
Order deny,allow
Deny from all
Allow from internal.example.com
</Proxy>

Возникла идея навернуть на эту фичу логический модуль обработки клиентских запросов . Допустим , в каждом клиентском запросе есть уникальный id-шник .
Каким образом можно проанализировать этот id-шник ?
т.е. нужно его получить и сделать произвольный форвард на internal.example1.com , internal.example2.com , internal.example3.com ... и т.д.

kto_tama
()

Producer <-> Consumer

Я не очень силен в много-поточном программировании , поэтому предлагаю
вам посмотреть на этот код и подсказать , где могут быть подводные камни 
У меня все работает , но как-то все подозрительно гладко   
Имеется общий ресурс - очередь
Имеются 2 группы по пять потоков  
Обе группы начинают коллективно насиловать эту очередь
Первая группа добавляет в очередь , вторая - забирает
Все написано в лучших традициях ричарда незабвенного нашего стивенса 

#define	MAXNITEMS 		1000000
#define	MAXNTHREADS			100

int		nitems;			

struct node* List ;

struct {
  pthread_mutex_t	mutex;
  pthread_cond_t	cond;
  int				nready;	
  int	count;
  long producer_sum  ;
  struct node* List ;
} put = { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER };

struct {
  pthread_mutex_t	mutex;
  pthread_cond_t	cond;
  int				nready;	
  int	count;
  long consumer_sum  ;
  struct node* List ;
} get = { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER };

void	*produce(void *), *consume(void *);
int  Length(char * name , struct node* head);
int  Pop(struct node** headRef);
void Add(struct node** headRef, int num) ;
 
int main(int argc, char **argv)
{
	int			i, nthreads, count[MAXNTHREADS] , count2[MAXNTHREADS];
	pthread_t	tid_produce[MAXNTHREADS], tid_consume[MAXNTHREADS];

	List = NULL ;

	if (argc != 3)
	{
		printf("usage: prodcons2 <#items> <#threads>\n");
		exit(0);
	}
	nitems = atoi(argv[1]);
	nthreads = atoi(argv[2]);

	for (i = 0; i < nthreads; i++) 
	{
		count[i] = 0;
		pthread_create(&tid_produce[i], NULL, produce, &count[i]);
		count2[i] = 0;
		pthread_create(&tid_consume[i], NULL, consume, &count2[i]);
	}

	for (i = 0; i < nthreads; i++) 
	{
		pthread_join(tid_produce[i], NULL);
		pthread_join(tid_consume[i], NULL);
		printf("count[%d] = %d  count2[%d] = %d\n", i, count[i], i, count2[i]);	
	}

	printf("producer_sum =%d  consumer_sum =%d\n" , put.producer_sum , get.consumer_sum);  // results in len == 3
	printf("producer counter =%d  consumer counter =%d\n" , put.count , get.count);  // results in len == 3
    printf("queue length =%d\n",Length("List",List));  // results in len == 3

	exit(0);
}

void * produce(void *arg)
{
	for ( ; ; ) {
		pthread_mutex_lock(&put.mutex);
		if (put.count >= nitems) {
			pthread_mutex_unlock(&put.mutex);
			return(NULL);		/* array is full, we're done */
		}
		Add(&List, put.count ); 
		put.producer_sum +=put.count;
		put.count++;
//		printf("producer =%d  consumer =%d\n" , put.count , get.count);  // results in len == 3
		pthread_mutex_unlock(&put.mutex);

		pthread_mutex_lock(&get.mutex);
		if (get.nready == 0)
			pthread_cond_signal(&get.cond);
		get.nready++;
		pthread_mutex_unlock(&get.mutex);

		*((int *) arg) += 1;
	}
	return(NULL);		/* array is full, we're done */
}

void * consume(void *arg)
{
	for ( ; ; ) {
			pthread_mutex_lock(&get.mutex);
			if (get.count >= nitems ) 
			{
				pthread_mutex_unlock(&get.mutex);
				return(NULL);		/* array is full, we're done */
			}
			if(get.count < put.count)
			{
				int queue = Pop(&List ); 
				get.consumer_sum += queue;
				get.count ++;
//				printf("producer =%d  consumer =%d\n" , put.count , get.count);  // results in len == 3
				*((int *) arg) += 1;
			}
			pthread_mutex_unlock(&get.mutex);
	
			pthread_mutex_lock(&put.mutex);
			if (put.nready == 0)
				pthread_cond_signal(&put.cond);
			put.nready++;
			pthread_mutex_unlock(&put.mutex);
	}
	return(NULL);
}

>>>

kto_tama
()

Критическая секция

Программа создает процессы с помощью fork , которые получают доступ к стандартному выводу ошибок . Порядок вывода произвольный .
Можно ли его упорядочить по возрастанию , не используя блокировку ?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/wait.h>

#define BUFSIZE 1024

int main(int argc, char *argv[]) {
    char buffer[BUFSIZE];
    char *c;
    pid_t childpid = 0;
    int delay;
    volatile int dummy = 0;
    int i, n;

    if (argc != 3){   /* check for valid number of command-line arguments */
        fprintf (stderr, "Usage: %s processes delay\n", argv[0]);
        return 1;
    }
    n = atoi(argv[1]);
    delay = atoi(argv[2]);
    for (i = 1; i < n; i++)
        if (childpid = fork())
            break;
    snprintf(buffer, BUFSIZE,
             "i:%d  process ID:%ld  parent ID:%ld  child ID:%ld\n",
             i, (long)getpid(), (long)getppid(), (long)childpid);

    c = buffer;
   /********************** start of critical section **********************/
    while (*c != '\0') {
        fputc(*c, stderr);
        c++;
        for (i = 0; i < delay; i++)
            dummy++;
    }
   /********************** end of critical section ************************/
    if (wait(NULL) == -1)
        return 1;
    return 0;
}

>>>

kto_tama
()

Как класс преобразовать в структуру ?

Есть стековый класс :

class Stack  
{
  private:
     int size;
     int top;
     int* values;
  public:
     Stack(int size = DEFAULT_SIZE);
     virtual ~Stack();
     bool isFull();
     bool isEmpty();
     void push(int);
     int pop();
};

Как его привести к виду 

struct Stack
{
  ...
}

>>>

kto_tama
()

Как в 8-й бубунте зайти рутом ?

во время инсталяции было предложено завести пользователя
после инсталяции зашел не-рутовым пользователем
рут там есть , но вообще неактивирован

>>>

kto_tama
()

Любите ли вы джаз так , как люблю его я ?

седни на лоре день музыки , поэтому :
всем слушать Chucho Valdes
кто не в танке : это кубинский джазовый музыкант и пианист
всем скачать и слушать его концерт Lucumi , который лежит вот тут :
http://torrents.ru/forum/viewtopic.php?t=828798
у кого нет доступа к торренту , может не беспокоиться ...
почему именно Chucho Valdes ?
потому что это классика современного фортепианного джаза
по ссылке - его сольник , божественная музыка :-)

>>>

kto_tama
()

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