LINUX.ORG.RU

Сообщения LIKAN

 

Регулировка ярокости с клавиатуры

Форум — Desktop

Всем бобра! После долгой паузы вернулся на онтопик. Arch потребовал немедленного обновления - сделал. После в xfce 4.12 довольно хреново работает регулировка яркости экрана с клавиатуры. (Сам ничего не настраивал - дефолт дефолтом) (Fn+F6/F7). После нажатия указанной комбинации система намертво повисает на секунду. Отвисает уже с новым уровнем яркости. (Уровня яркости в настройках я так кстати и не нашел). Как определить какой софт в операционке за это отвечает? Как его прибить или настроить по нормальному? ЗЫ fujitsu lh532 video - intel.

 

LIKAN
()

Посоветуйте мультиметр

Форум — Talks

Харе Кришна! Господа, понадобилась в жизни такая штука, как мультиметр, омы, вольты и амперы мерить. Типа DT-830. Но вот зараза, большинство из них питаются со всяких крон или ещё более странной ерунды. Можете посоветовать модельки, которые можно запитать элементами размера AA or AAA, стоимостью до 800р ? (пайку собственных схем просьба не предлагать)

 ,

LIKAN
()

Вычисление собственных векторов в pca

Форум — Development

Собственно мое понимание PCA. У исходной матрицы А - колонки - это измерения, строки - это наблюдения/эсперименты Считаем ковариационную матрицу - А' * A вычесть среднее. Потом у ковариационной матрицы находим нужное кол-во собственных векторов - они и будут главными компонентами.
Но при попытке разобраться в opencv-шной реализации PCA меня ждал сюрприз. Допустим, что у нас матрица 2х10000. Т е явно хочется снизить размерность. Если мы посчитаем A' * A - то получиться вычисление ковариационки - 10000 х 10000, что over 9000. Отчаянные парни из opencv делают следующее. Они умножают A * A' , получают ковариационку - 2 х 2. Считают её собственные вектора, которые имеют размерность 2 и их 2 штука. (упаковывают их в матрицу 2х2 - eigenvectors). Потом они считают вектор средних для А, который будет иметь размерность 1 х 10000. Потом дублируют его как строку столько раз, сколько строк в матрице изначальной (ну и получают размерность, как изначальная матрица) - назовём её mean_mat. И потом происходит следующий финт, даже не ушами, а чем-то похлеще. Eigenvectors = Eigenvectors' * mean_mat. В итоге получается матрица 2 * 10000. Как я понимаю - это 2 «собственных» вектора по 10000 каждый. Т е по крайней мере размер векторов получается такой, как если бы они изначально ковариационку правильно посчитали - A' * A. Только вот почему эти ребята имеют право так поступать? Есть у этого алгоритма ловкого вычисления собственных векторов имя? И почему его не используют в lda реализации из opencv (там честно считают ков. матрицы 10000 х 10000).

 , ,

LIKAN
()

Использование LDA для снижения размерности

Форум — Development

LDA - общеизвестен как алгоритм классификации. Но в большинстве статей указывается, что он также может быть использован для снижения размерности. Вопрос, каким образом это будет осуществляться? Понятно, что если есть трехмерные данные, которые хорошо линейно разделяются на два класса, то данные можно ловко спроектировать на пл-ть, перпендикулярную к разделяющей, и получить снижение размерности на 1. (То же для случаев большей размерности) Но такое скромное снижение размерности не выдержит ни какой конкуренции с каким нибудь PCA. Можно ли LDA рассматривать, как конкурент PCA? Как, в случае первого, осуществляется снижение размерности?

 

LIKAN
()

Конфигурация большого кол-ва видео-карт

Форум — General

Есть конфигурация пк с двумя дискретными видео + видео-выход на материнке (очевидно есть ещё встроенная видюха). Так вот всякая служебная инфа при загрузке машины (выход в efi меню) + меню граба отображается ТОЛЬКО через выход одной из дискретных видюх. А вот весь установочный гуй убунты ТОЛЬКО через встроенную. Система поставлена. Теперь граб не отображается вообще нигде. А декстоп убунты можно получить, только заранее вставив кабель монитора в выход материнки. Как бы всю эту ерунду разрулить. Наиболее предпочтительный вариант - это если всё будет идти через выход дискретной карты. Да и граб-меню увидеть бы хотелось бы, у меня дуалбут. Если важно - то вся система на ссд, грузиться все очень быстро.

 , ,

LIKAN
()

Генерация тестового набора данных

Форум — Development

Есть в opencv утилита opencv_createsamples. Служит для генерации положительного набора данных при создании каскада Хаара.
На вход подается шаблон, на поиск которого тренеруется каскад, и несколько файлов фона. Программа как-то деформирует шаблон и размещает его случайным образом поверх фона. Есть флаг, отображающий рез-тат в окошке. Выходом данной программы является .vec файл. Но хочеться сгенерировать тестовый набор данных. Те сделать то же самое, что и эта програмка, только чтоб выходом был набор картинок. Как это осуществить?

 

LIKAN
()

Помогите настроить энергосбережение

Форум — Desktop

Есть ноутбук fujitsu lh532. Ноутбук под виндой живет в два раза дольше, чем под онтопиком, хотя в (arch) linux все очень тайлово, минималистично и не ярко (подсветка - 17%). powertop выглядит примерно вот так вот

The battery reports a discharge rate of 7.41 W
The estimated remaining time is 1 hours, 7 minutes

Summary: 1202,8 wakeups/second,  172,4 GPU ops/seconds, 0,0 VFS ops/sec and 8,0% CPU use

                Usage       Events/s    Category       Description
             17,0%                      Device         Display backlight
             17,0%                      Device         Display backlight
             27,5 ms/s     957,0        Process        /usr/bin/Xorg.bin :0 -seat seat0 -auth /run/lightdm/root/:0 -nolist
            100,0%                      Device         USB device: USB Mouse (A4Tech)
              0,0 pkts/s                Device         Network interface: enp3s0 (r8169)
              0,0 pkts/s                Device         Network interface: wlp4s0 (iwlwifi)
             17,3 ms/s      57,8        Process        /home/likan/.xmonad/xmonad-x86_64-linux
              3,4 ms/s     147,9        Interrupt      [30] i915
              7,0 ms/s       6,9        Process        /usr/lib/chromium/chromium --ppapi-flash-path=/usr/lib/PepperFlash/
              5,1 ms/s      32,3        Process        dzen2 -x 0 -y 752 -w 450 -h 16 -ta l -fg #9d9d9d -bg #020202 -fn -*
              4,5 ms/s      19,6        Process        dzen2 -x 0 -y 0 -w 950 -h 16 -ta l -fg #9d9d9d -bg #020202 -fn -*-m
              3,6 ms/s       5,9        Process        dzen2 -x 450 -y 752 -w 916 -h 16 -ta r -fg #44aacc -bg #020202 -fn
              2,4 ms/s      28,4        Process        xmonad-x86_64-l
              2,9 ms/s       2,0        Process        dzen2 -x 950 -y 0 -w 416 -h 16 -ta r -fg #9d9d9d -bg #020202 -fn -*
              0,8 ms/s      21,5        Process        [irq/31-iwlwifi]
              1,2 ms/s       7,8        Process        /usr/bin/xfce4-terminal
            197,7 us/s      19,6        Process        [rcu_preempt]
              0,7 ms/s       1,0        Timer          posix_timer_fn
             79,9 us/s      17,6        Interrupt      [31] iwlwifi
            335,6 us/s       7,8        Timer          tick_sched_timer
            138,8 us/s       9,8        kWork          ieee80211_iface_work
            372,8 us/s       1,0        Interrupt      [9] RCU(softirq)
            337,7 us/s       1,0        kWork          i915_gem_idle_work_handler
            296,0 us/s       1,0        Interrupt      [7] sched(softirq)
             93,7 us/s       3,9        Process        /usr/lib/chromium/chromium --type=gpu-process --channel=1148.0.5543
Установлен и настроен по вики пакет TLP. Используется встроенная карточка. Как узнать подается ли питание на дискретную карту? Как проверить активен ли bluetooth?
ЗЫ Была замечательная статья megabaks, но статья 2010 года. Хочется что-то точно такое же, но посвежее.

 ,

LIKAN
()

Помогите разобраться с синтаксисом scala

Форум — Development

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

for(i <- 0 until count) {
                // enemy: The name of this enemy
                // dist: The distance to your cannon of this enemy
                val Array(enemy, _dist) = readLine split " "
                val dist = _dist.toInt
            }
Что за ерунда? readLine split " " - вернет Array[String]. А это Array(enemy, _dist) - что за динозавр? Как к нему потом обращаться? Что такое _dist и как оно может существовать за пределами Array? Как потом обращаться к этим переменным(или как правильно по русски называть объект val) за пределами for?

 

LIKAN
()

Не могу получить доступ к устройству

Форум — General

Есть у меня вот такое у-во

$ ls -l /dev/ttyUSB0 
crw-rw---- 1 root uucp 188, 0 дек 29 15:39 /dev/ttyUSB0

И есть программка, которая к нему обращается. Добавляю я своего юзера в группу uucp
$ cat /etc/group | grep uucp
uucp:x:14:likan
Пытаюсь запустить програмулину от этого пользователя и получаю
Cannot open serial device /dev/ttyUSB0
От рута все работает. ЧЯНД?

 

LIKAN
()

Открыть программы в разных вкладках терминала

Форум — General

Действующие лица - xfce4-terminal и 4 самописные софтины которые постоянно пишут кой-что ценное в стандратный поток вывода. Задача написать такой скрипт, который открывал бы окошко терминала с четырьмя вкладками по софтине в каждой. Пытался сделать как-то вот так вот

xfce4-terminal -e "softina1" &&
xfce4-terminal --tab -e  "softina2" &&
xfce4-terminal --tab -e "softina3" &&
xfce4-terminal --tab -e "softina4"
на практике, кол-во открываемых вкладок зависит от погоды на марсе.

 ,

LIKAN
()

Фильтр по колонкам

Форум — Development

Как в R получить список имён или номеров колонок, которые соответствуют заданному условию?

 

LIKAN
()

Сохранить модель в файл

Форум — Development

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

 

LIKAN
()

Помогите разобраться с sendto

Форум — Development

Есть такая вот функция

int send_sres(uint8_t *rand, char *imsi, uint8_t *sres)
{

	//const char* cmdPath = DEFAULT_CMD_PATH;

	//char rspPath[200];
	//sprintf(rspPath,"/tmp/OpenBTS.console.%d.%8lx",getpid(),time(NULL));


	//printf("command socket path is %s\n", cmdPath);


	// the socket
	int sock = socket(AF_INET,SOCK_DGRAM,0);
	if (sock<0) {
		perror("opening datagram socket");
		exit(1);
	}
	FILE *bts_addr;
	bts_addr = fopen(DEFAULT_BTS_ADDR,"r");
	if(bts_addr == NULL)
		perror("Error while loading bts_addr file\n");
	char *inaddr=NULL;
	size_t inaddr_len=0;
	getline(&inaddr,&inaddr_len,bts_addr);
	fclose(bts_addr);
	// destination address
	struct sockaddr_in cmdSockName;
	memset(&cmdSockName, 0, sizeof(struct sockaddr_in));
	cmdSockName.sin_family = AF_INET;
   	cmdSockName.sin_addr.s_addr = inet_addr(inaddr);
   	printf("Server addr %s\n", inaddr); 
   	cmdSockName.sin_port = htons(5065); 
	

	// locally bound address
	struct sockaddr_in rspSockName;
	memset(&rspSockName, 0, sizeof(struct sockaddr_in));
	rspSockName.sin_family = AF_INET;
	rspSockName.sin_addr.s_addr = inet_addr("127.0.0.1");
	rspSockName.sin_port=htons(5066);
	
	if (bind(sock, (struct sockaddr *) &rspSockName, sizeof(struct sockaddr_in))) {
		perror("binding name to datagram socket");
		free(inaddr);
		exit(1);
	}
	

		char *randc;  //fgets(inbuf,199,stdin);
		//char *cmd; 
		char buf[128];

		randc=osmo_hexdump_nospc(rand,16);

		 strcat(strcat(strcat(strcpy(buf, "getsres "), imsi), " "), randc);
		 printf("rand : %s\n",buf);


	

		// use the socket
		if (sendto(sock, buf, sizeof(buf),0,(struct sockaddr*)&cmdSockName,sizeof(struct sockaddr))<0) {
			perror("sending datagram");
			printf("Error sent to socket\n");
		}
		else{
			printf("We successfully sended rand\n");	
		}

		const int bufsz = 100000;
		char resbuf[bufsz];
		int nread = recv(sock,resbuf,bufsz-1,0);
		if (nread<0) {
			perror("receiving response");
		}
		resbuf[nread] = '\0';
		printf("%s\n",resbuf);
		if (nread==(bufsz-1)) printf("(response truncated at %d characters)\n",nread);
	 	osmo_hexparse(resbuf,sres,4);
	free(inaddr);	
	close(sock);

}
Попытка выполнения заканчивается следующим
rand : getsres 250016387796246 89eef4f1949bb3d686fc49179d415847
sending datagram: Invalid argument
Error sent to socket

В чем дело, какой из аргументов левый?

 ,

LIKAN
()

Обработка данных в R

Форум — Development

Есть таблица, хочу убрать из неё колонки, где процент значения N/A выше порогового (порог задать руками). Как это сделать?

 

LIKAN
()

Неожиданное снижение размерности

Форум — Development

Есть такой вот код на R

dim(training)
[1] 11776   160
 dim(testing)
[1] 7846  160
numIndex <- sapply(training, is.numeric)
preProc <-preProcess(training[,numIndex],method="pca",pcaComp=50)
trainPC<-predict(preProc,training[,numIndex])
modelFit<-train(training$classe~.,method="rpart",data=trainPC
testPC<-predict(preProc,testing[,numIndex])
length(predict(modelFit,testPC))
[1] 170
Что за ерунда? Почему было 7846 строк, а стало 170, как так?

 

LIKAN
()

3d plot на R

Форум — Development

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

plot(train$x[,1],train$y[,2],col=train$letter)
А вот для четырехмерного (три координаты и цвет) я сделать никак не могу. И ещё было б неплохо, чтоб все это дело можно было вращать.

 

LIKAN
()

Куда пропадают пакеты?

Форум — Development

Есть два приложения, использующих zmq, на первом развернут zmq_router

void *context = zmq_ctx_new ();
mitm_socket = zmq_socket (context, ZMQ_ROUTER);
int rc = zmq_bind (mitm_socket, "tcp://*:5556");
....
zmq_send(mitm_socket,((struct osmocom_ms*)ms)->name,strlen(((struct osmocom_ms*)ms)->name)+1,ZMQ_SNDMORE);
    
    if(zmq_send (mitm_socket, json_dumps(root,0), strlen(json_dumps(root,0))+ 1,ZMQ_NOBLOCK) == -1){
		//zmq_close (requester);
    	//zmq_ctx_destroy (context);
    	vty_notify(ms,"Inside send\n");
		return -2;
	}
На втором zmq_dealer (оно слушает сразу 2 сокета, в данном случае интересен только osmo)
int ling_period_osmo=3000;
    int recv_timeout_osmo=3000;
    void *osmo_context = zmq_ctx_new ();
    void *osmo_socket = zmq_socket (osmo_context, ZMQ_DEALER);
    zmq_setsockopt (osmo_socket, ZMQ_IDENTITY,identity, sizeof(identity));
    zmq_setsockopt (osmo_socket, ZMQ_LINGER, &ling_period_osmo, sizeof(int));
    zmq_setsockopt (osmo_socket, ZMQ_RCVTIMEO, &recv_timeout_osmo, sizeof(int));
    if(zmq_connect (osmo_socket, "tcp://localhost:5556") == -1){
        printf("Couldn't connect to osmocom\n");
        return NULL;
    }
rc=receive_message_from_router(main_socket, &buffer);
        printf("Thread %d: recv status from bts %d\n",*(int*)arg, rc);
        if(rc < 0){
            //printf("Waiting from osmo\n");
            rc=receive_message_from_router(osmo_socket, &buffer);
f(rc >=0){
                printf("Thread %d:Reseive from osmo   ",*(int*)arg);
            }
        }
        else
            printf("Thread %d:Reseive from bts ",*(int*)arg);
......
int receive_message_from_router(void * responder,zmq_msg_t *buffer){
    zmq_msg_t last;
    zmq_msg_init (&last);
    zmq_msg_t message;
    zmq_msg_init (&message);
    int result;
    while(1){
        result = zmq_msg_recv (&message, responder, 0);

        if(result == -1)
            return -1;
       else
           printf("Data from router \"%s\"\n",zmq_msg_data(&message));
        int64_t more;           //  Multipart detection
        more = 0;
        size_t more_size = sizeof (more);
        zmq_getsockopt (responder, ZMQ_RCVMORE, &more, &more_size);

        if (!more){
            zmq_msg_copy (&last, &message);
            break;

        }//  Last message part
    }
     zmq_msg_copy (buffer, &last);
     zmq_msg_close(&last);
     zmq_msg_close (&message);
    return 0;
}
Так вот, zmq_dealer шлет некоторую команду, когда приложение с zmq_router её выполнит оно шлет дилеру какое оно хорошее (или не хорошее). Так вот, столкнулся с такой бедой, что время от времени zmq_router замолкает полностью. Команды принимает, приложение их выполняет, ф-ция zmq_send возвращает не -1. А вот пакета нет, ни zmq_dealer, ни в wireshark-е его не видно (тут я конечно могу наврать, в полотенце вывода пакет можно просто не рассмотреть). С чем такое поведение может быть связано? Никакой корреляции с внешними событиями проследить не могу. Сетевое соединение надежное.

 ,

LIKAN
()

ошибка: ожидается идентификатор

Форум — Development

Помогите разобраться. В программу входят вот такие строки

#include <sys/ptrace.h>
....
struct syscallentry syscall_ptrace = { 
    .name = "ptrace",
    .num_args = 4,
    .arg1name = "request",
    .arg1type = ARG_OP,
    .arg1list = { 
        .num = 25, 
        .values = { PTRACE_TRACEME, PTRACE_PEEKTEXT, PTRACE_PEEKDATA, PTRACE_PEEKUSR,
                PTRACE_POKETEXT, PTRACE_POKEDATA, PTRACE_POKEUSR, PTRACE_GETREGS,
                PTRACE_GETFPREGS, PTRACE_GETSIGINFO, PTRACE_SETREGS, PTRACE_SETFPREGS,
                PTRACE_SETSIGINFO, PTRACE_SETOPTIONS, PTRACE_GETEVENTMSG, PTRACE_CONT,
                PTRACE_SYSCALL, PTRACE_SINGLESTEP, PTRACE_SYSEMU, PTRACE_SYSEMU_SINGLESTEP,
                PTRACE_KILL, PTRACE_ATTACH, PTRACE_DETACH, PTRACE_GETSIGMASK,
                PTRACE_SETSIGMASK },
    },  
    .arg2name = "pid",
    .arg3name = "addr",
    .arg3type = ARG_ADDRESS,
    .arg4name = "data",
    .sanitise = sanitise_ptrace,

    .flags = AVOID_SYSCALL,
};
Компиляция заканчивается вот такой ерундой
lcc: "/usr/include/sys/ptrace.h", строка 33: ошибка: ожидается идентификатор
    PTRACE_TRACEME = 0,
    ^

lcc: "/usr/include/sys/ptrace.h", строка 37: ошибка: ожидается идентификатор
    PTRACE_PEEKTEXT = 1,
    ^

lcc: "/usr/include/sys/ptrace.h", строка 41: ошибка: ожидается идентификатор
    PTRACE_PEEKDATA = 2,
    ^

lcc: "/usr/include/sys/ptrace.h", строка 49: ошибка: ожидается идентификатор
    PTRACE_POKETEXT = 4,
    ^

lcc: "/usr/include/sys/ptrace.h", строка 53: ошибка: ожидается идентификатор
    PTRACE_POKEDATA = 5,
    ^

lcc: "/usr/include/sys/ptrace.h", строка 61: ошибка: ожидается идентификатор
    PTRACE_CONT = 7,
    ^

lcc: "/usr/include/sys/ptrace.h", строка 65: ошибка: ожидается идентификатор
    PTRACE_KILL = 8,
    ^

lcc: "/usr/include/sys/ptrace.h", строка 70: ошибка: ожидается идентификатор
    PTRACE_SINGLESTEP = 9,
    ^

lcc: "/usr/include/sys/ptrace.h", строка 94: ошибка: ожидается идентификатор
    PTRACE_ATTACH = 16,
    ^

lcc: "/usr/include/sys/ptrace.h", строка 98: ошибка: ожидается идентификатор
    PTRACE_DETACH = 17,
    ^

lcc: "/usr/include/sys/ptrace.h", строка 112: ошибка: ожидается идентификатор
    PTRACE_SYSCALL = 24,
    ^
Файл <sys/ptrace.h> у меня выглядит следующим образом http://pastebin.com/dVaMfCzr

Сделал тестовый файл

#include <stdio.h>
#include <sys/ptrace.h>

void main(){
	printf("HW %d\n",PTRACE_SYSCALL);
}
Работает отлично, в чем может быть дело?

 

LIKAN
()

Что за константа MODULE_ADDR

Форум — Development

Портирую небольшую програмулину на e2k. В програмулине есть некоторая константа MODULE_ADDR, которая объявляется отдельно для каждой архитектуры.
Для i386: MODULE_ADDR 0xa0000000
Для x86_64: #define MODULE_ADDR 0xffffffffa0000000UL
Для arm

 
#define PAGE_OFFSET     0xC0000000
#define MODULE_ADDR     (PAGE_OFFSET - 0x00800000)
Что это за константа, и как её в операционке найти?

 , ,

LIKAN
()

Как определить, по какому адресу загружено ядро в память

Форум — Development

Как в онтопике определить, по какому адресу загружено ядро в память?

 

LIKAN
()

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