Поменять кодировку
В каталоге лежит большое количество html-файлов в кодировке 1251.
Можно как-нибудь из командной строки поменять в них кодировку на утф ?
В каталоге лежит большое количество html-файлов в кодировке 1251.
Можно как-нибудь из командной строки поменять в них кодировку на утф ?
Раз пошла такая пьянка про диффы , то у меня тоже вопрос. Интересуют прежде всего гуевые редакторы. Есть ли в юниксе текстовые редакторы , которые позволяют открыть одновременно на экране 2 файла , разбив экран на 2 половинки по вертикали ?
Вылез глюк : в плюсовом приложении при использовании malloc/free приложение падает с сабжем . Нашел затычку : перед запуском приложения выполнить команду :
export MALLOC_CHECK_=0
Может , есть более элегантное решение ?
Народ , кто в дефолт-сити живет , хотелось бы услышать ваше мнение.
Я запустил из-под линукса и выяснил , что выше 100 килобайт в секунду мне не прыгнуть - какая-то яма возле моего дома получается.
Хотя в принципе даже торренты можно качать.
Но иногда просто падает , хрен знает из-за чего , приходится делать телодвижения.
Вообще народ говорит , что скорость бывает на порядок больше.
А есть альтернатива для усб-модемов ?
Мне тут товарищ диск принес.
У него на нем линуксовая партиция оказалась помеченной как W95 FAT16.
Он устанавливал на другой диск хр и как-то умудрился ее зацепить.
Винда говорит , что партиция еще не отформатирована , и предлагает ее отформатировать.
Я перепробовал cfdisk , parted , но все на эту партицию ругаются , не могут прочитать и говорят , что суперблок потертый.
Есть ли какая надежда вытащить файловую систему ?
Задача : имеется глобальная структура , в которой есть флаг .
Для работы с этим флагом нужно создать 2 потока , каждый из которых будет выполнять отдельную функцию : первый поток - назовем его left - будет активировать этот флаг , второй - right - деактивировать .
Процесс активации-деактивации сделать поочередным в течении неопределенного промежутка времени.
Из кода понятно , что если закомментировать блокировку , то работать это не будет.
У меня вот какой вопрос : что изменится , если раскомментировать условную переменную ?
Визуально - вроде ничего , поэтому непонятно ...
Часто вызывающие аватары отвлекают внимание от существа. Причем размер этих аватар великоват . Предлагаю в профиль добавить опцию - отключать показ аватар.
Есть ли в стандартных posix сокетах стандартная возможность у клиента сделать автоматический реконнект после того , как сервер отвалился ? Т.е. что-то типа SetConnectTimeout , OnConnectRetry() ...
Может , кто имел дело со следующей проблемой :
к компу по файрваре порту подсоединена видео-камера
Видео захватывается с помощью dvgrab и передается ffmpeg-у примерно так :
dvgrab -format raw -frames 25 - | ffmpeg -i - ........
ffmpeg берет данные из контейнера , все работает , НО :
текущий кадр , приходящий в ffmpeg , отстает от реального кадра на 3 секунды
Пробовал строить все мыслимые комбинации из параметро dvgrab-а и ffmpeg-а , но рантайм-рассинхронизация кадров в 3 секунды так и осталась .
Купил видео-камеру canon Маленькая коробочка такая , умещается в ладошке В линуксе камера определяется влет ! Скачиваешь простым кликом отснятый материал в формате avi и тут же смотришь его на компе Винда ЖЕ в упор не видит камеру ! :-) Прилагается сидюк , который надо проинсталлировать Линукс , вообще говоря , двигается в правильном направлении
Ну очень сильно бросается в глаза Например : http://www.linux.org.ru/view-message.jsp?msgid=3512062&lastmod=1234894131344
Я так понимаю , что у вас нет возможности на правку заголовков ?
Приложение запускается НЕ из под рута. Могут ли у него быть ограничения на запись в каталог /tmp ?
В апаче есть базовая фича , позволяющая ему выступать в роли форвард-прокси :
<Proxy *>
Order deny,allow
Deny from all
Allow from internal.example.com
</Proxy>
Возникла идея навернуть на эту фичу логический модуль обработки клиентских запросов . Допустим , в каждом клиентском запросе есть уникальный id-шник .
Каким образом можно проанализировать этот id-шник ?
т.е. нужно его получить и сделать произвольный форвард на internal.example1.com , internal.example2.com , internal.example3.com ... и т.д.
Я не очень силен в много-поточном программировании , поэтому предлагаю вам посмотреть на этот код и подсказать , где могут быть подводные камни У меня все работает , но как-то все подозрительно гладко Имеется общий ресурс - очередь Имеются 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); }
Программа создает процессы с помощью 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; }
Есть стековый класс : 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 { ... }
во время инсталяции было предложено завести пользователя
после инсталяции зашел не-рутовым пользователем
рут там есть , но вообще неактивирован
седни на лоре день музыки , поэтому :
всем слушать Chucho Valdes
кто не в танке : это кубинский джазовый музыкант и пианист
всем скачать и слушать его концерт Lucumi , который лежит вот тут :
http://torrents.ru/forum/viewtopic.php?t=828798
у кого нет доступа к торренту , может не беспокоиться ...
почему именно Chucho Valdes ?
потому что это классика современного фортепианного джаза
по ссылке - его сольник , божественная музыка :-)
← назад | следующие → |