LINUX.ORG.RU

Сообщения Glaciuse

 

Как нарисовать закрашенный круг на GLSL #version 120

Может у кого-нибудь есть вершинный и фрагментные шейдеры, которые рисуют закрашенный круг в (x, y) с радиусом r ?

В инете есть туториалы, но они для более новых шейдеров и конкретно для glsl #120 я не нашел :(

Буду очень признателен, если у кого-нить что-нибудь завалялось.
Заранее спасибо!

 , ,

Glaciuse
()

Keyboard: Cannot enable. Maybe the USB cable is bad?

Fedora 22.

После втыкания клавы в dmesg идет следующее:

[ 446.528564] usb 1-1-port2: disabled by hub (EMI?), re-enabling...
[ 446.528813] usb 1-1.2: USB disconnect, device number 5
[ 447.534761] usb 1-1-port2: Cannot enable. Maybe the USB cable is bad?
[ 448.360846] usb 1-1-port2: Cannot enable. Maybe the USB cable is bad?
[ 449.186916] usb 1-1-port2: Cannot enable. Maybe the USB cable is bad?
[ 449.259964] usb 1-1.2: new low-speed USB device number 9 using ehci-pci
[ 449.661764] usb 1-1.2: device not accepting address 9, error -32
[ 449.661949] usb 1-1-port2: unable to enumerate USB device 
[ 458.482939] usb 1-1.2: new low-speed USB device number 10 using ehci-pci
[ 459.311016] usb 1-1-port2: Cannot enable. Maybe the USB cable is bad?
[ 460.137095] usb 1-1-port2: Cannot enable. Maybe the USB cable is bad?
[ 460.210127] usb 1-1.2: new low-speed USB device number 12 using ehci-pci
[ 460.612013] usb 1-1.2: device not accepting address 12, error -32
[ 460.685185] usb 1-1.2: new low-speed USB device number 13 using ehci-pci
[ 461.087041] usb 1-1.2: device not accepting address 13, error -32
[ 461.087224] usb 1-1-port2: unable to enumerate USB device 
[ 476.388926] usb 1-1-port2: Cannot enable. Maybe the USB cable is bad?
[ 477.215034] usb 1-1-port2: Cannot enable. Maybe the USB cable is bad?
[ 478.041074] usb 1-1-port2: Cannot enable. Maybe the USB cable is bad?
[ 478.867307] usb 1-1-port2: Cannot enable. Maybe the USB cable is bad?
[ 478.867609] usb 1-1-port2: unable to enumerate USB device

Но USB cable not bad потому как на соседнем компе, где винда все работает отлично и если втыкать не клаву, а жесткий/флешку тоже все ок.
Ноут старенький, никаких USB 3.0 там нет, в биосе ничего не потыкать, там просто нет пунктов связанных с USB.
Причем пробовал 2 разные клавы и у обеих такая проблема.
Проблема не только у Fedor'ы, но тоже самое было в арче и появилась эта штука после обновления.

Может кто-то сталкивался?
Заранее спасибо за любую помощь.

 

Glaciuse
()

Как реализовать односвязный Си список в python через ctypes?

Целый день мучаюсь и не получается реализовать сишный список:


typedef struct List List;

typedef struct List
{
    unsigned char message;
    void* data;
    List* next;
};

Как все это сделать на питоне через ctypes?
Вот как я пробовал:

# Объявляем нашу структуру таким образом, чтоб можно было ссылаться на саму себя
class MessageStruct(ctypes.Structure):
    pass

MessageStruct._fields_ = [('message', ctypes.c_ubyte),
                          ('data', ctypes.c_void_p),
                          ('next', ctypes.POINTER(MessageStruct))]
После созданию голову списка вот так:
struct = MessageStruct()
struct.message = ctypes.c_ubyte(0)
struct.data = ctypes.c_void_p(0)
struct.next = None

# Буду работать только с указателем на голову
struct_p = ctypes.pointer(struct)

Дальше я объявил 2 функции: добавления нового элемента и вывод списка:

def add_message(message_struct, message, data):
    current_struct = message_struct
    while current_struct.contents.next:
        current_struct.contents = current_struct.contents.next

    new_struct = MessageStruct()
    new_struct.message = message
    new_struct.data = data
    new_struct.next = None
    current_struct.contents.next = ctypes.pointer(new_struct)

def print_messages(message_struct):
    current_struct = message_struct
    while current_struct.contents:
        print('message:', current_struct.contents.message,
              'data:', current_struct.contents.data)
        current_struct.contents = current_struct.contents.next
B вызываю их вот так:
add_message(struct_p, 5, 0)
add_message(struct_p, 7, 0)
add_message(struct_p, 3, 0)

print_messages(struct_p)
Но вывод идет в бесконечном цикле:
message: 0 data: None
message: 0 data: None
message: 0 data: None
message: 0 data: None
message: 0 data: None
.....

Что я делаю не так?
Заранее спасибо!

 , ,

Glaciuse
()

Как найти градиент поля с точками?

Нужно найти градиент плотности для двумерного поля, на котором находятся точки. Как это сделать?
Задача которую нужно решить:
Допустим имея координату (x, y) нужно разместить новую точку, где плотность точек от этой координаты на расстоянии r минимальна.

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

 

Glaciuse
()

Arch. После перезагрузки меняются имена сетевых интерфейсов.

Ставлю арч впервые. Только вот залил базовую систему и имею минимальную среду с консолькой и единственное что доставил пока это wicd.
После перезагрузки меняются имена интерфейсов:

eth0 <-> enp2s0
wlan0 <-> wlp2s1
Шанс что сменится интерфейс 50/50 или около того
Это такая фишка арча или что?
Пробовал прописывать правила для udev в
/etc/udev/rules.d/10-network.rules
типа:
SYBSYSTEM=="net", ATTR{address}=="5c:ac:4c:57:c6:94", NAME="wireless_card"
И данная строка работает ТОЛЬКО когда интерфейсы называются так:
enp2s0
wlp2s1
Т.е. с данной строкой я получаю либо такое:
enp2s0
wireless_card
либо такое:
eth0
wlan0
Выглядит так, как-будто udev грузится через раз, раз правила не выполняются.

ЧЯДНТ? Спасибо!

 ,

Glaciuse
()

python3 + PyQt5 + PyOpenGL = black screen

Прошу прощения у ярых ненавистников винды, но не работает именно там.
На Ubuntu 13.10 все работает замечательно, а на глючной винде 7 x64 запускается приложения и вместо OpenGL сцены черный экран, сцена как бы перерисовывается, но не отображается. Драйвера стоят. В консоль ничего не пишет.
Вот код, который пытаюсь выполнить:

# -*- coding: utf-8 -*-
# file graphics_window.py

from OpenGL.GL import *
from PyQt5.QtOpenGL import *


class GraphicsWindow(QGLWidget):
	def __init__(self, parent=None):
		super(GraphicsWindow, self).__init__(parent)

	def paintGL(self):
		glColor3f(0.0, 0.0, 1.0)
		glRectf(-5, -5, 5, 5)
		glColor3f(1.0, 0.0, 0.0)
		glBegin(GL_LINES)
		glVertex3f(0, 0, 0)
		glVertex3f(20, 20, 0)
		glEnd()

	def resizeGL(self, w, h):
		glMatrixMode(GL_PROJECTION)
		glLoadIdentity()
		glOrtho(-50, 50, -50, 50, -50.0, 50.0)
		glViewport(0, 0, w, h)

	def initializeGL(self):
		glClearColor(0.0, 0.0, 0.0, 1.0)
		glClear(GL_COLOR_BUFFER_BIT)
В main вызывается так:
from PyQt5 import QtWidgets
import graphics_window


class MyClass(QtWidgets.QWidget):
	def __init__(self, parent=None):
		super(MyClass, self).__init__(parent)
	
		self.graphics_window = graphics_window.GraphicsWindow()
		self.graphics_window.show()

def main():
	app = QtWidgets.QApplication(sys.argv)

	my_class = MyClass()
	my_class.show()

	app.exec_()

if __name__ == '__main__':
	main()
Может кто-то сталкивался с подобным?
Спасибо!

 pyopengl, ,

Glaciuse
()

Компиляция ядра для arm машины. Как определить defconfig?

Вот есть у меня планшет с cortex A7, armv7, чип MTK8389, хочу под него скомпилировать ядро.
Как определить какая машина XXX из /arch/arm/configs/XXX_defconfig наиболее близка к моей?
Ищу это потому что нужно собрать uImage, для которого вроде как надо указывать:

   zreladdr-y	+= 0x00008000
params_phys-y	:= 0x00000100
initrd_phys-y	:= 0x00800000
из /arch/arm/mach-XXX/Makefile.boot, ибо make uImage ругается что собрать uImage нельзя, т.к. не указан LOADADDR

Glaciuse
()

Контроль событий привязанных к Fn+F<1-12> сочетаниям клавиш

Есть 2 разные машины с линуксом. На одной стоит gentoo, на другой debian.
На обоих замечается поведение, при котором после перезагрузки системы разные устройства привязанные к сочетания Fn+F<1-12> самопроизвольно включаются/выключаются.
На машине с gentoo это bluetooth, на машине с debian веб-камера и wi-fi.
Это не приятно и хотелось бы чтобы все было детерминировано и если я включил wifi, то после перезагрузки он так и оставался включенным.
Как выяснилось эмулировать сочетания Fn+F<1-12> той же xdotool нельзя. Как быть?
Спасибо.

Glaciuse
()

Как зашифровать флешку/внешний диск ?

Нужно кроссплатформенное решение, не требуюущее установку нового софта. (или хотябы Linux & Windows)
Пробовал True Crypt и все бы хорошо, но хочется чтобы было 2 раздела:

  • 1й - раздел с софтом для расшифровки, который будет виден при подключении флешки/диска
  • 2й - зашифрованный раздел, который был бы не виден при вставлении флешки/диска (ну или просто неразмеченная область)

В True Crypt нашел только создание файла-контейнера, который находится рядом с софтом для расшифровки.
На отдельный раздел его вынести не удалось.
Знаю что в выносе на отдельный раздел нет никакого практического смысла, просто хочется так сделать.
Возможно ли?

Спасибо!

Glaciuse
()

python2 и кодировка

Есть вот такой вот символ:

>>> a = u'\xe9'

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

>>> print a
é
>>> b = '123' + a
u'123\xe9'

А нужно получить:

>>> b
'123é'

Спасибо!

 ,

Glaciuse
()

Как по-простому воспроизвести mp3 на python?

Есть несколько кнопок, при нажатии на которые должны воспроизводиться mp3 файлы соответствующие этим кнопкам.

Идеальным вариантом был бы какой-нибудь одинокий модуль, умеющий это делать на linux и windows
Получилось сделать это через pygame, но если mp3 файл загружать прямо перед воспроизведением, то звук трещит
Пытался сделать через pyaudio, но не нашел примеров как воспроизводить mp3, везде только wav

python 3.3
Спасибо!

 , ,

Glaciuse
()

Вопрос по python и lambda

Доброго времени суток!

>>> a = 5
>>> f1 = lambda: print(a)
>>> a = a + 1
>>> f2 = lambda: print(a)
>>> f1()
6
>>> f2()
6

Как сделать так, чтобы результат был таким:

>>> f1()
5
>>> f2()
6

python 3.2

Спасибо!

 ,

Glaciuse
()

Видео вместо обоев.

Можно ли сделать сабж?
Система gentoo
Xfce4, emerald и compiz сейчас стоят.

Glaciuse
()

vim: выполнять функцию после нажатия кливиши

Как можно выполнять функцию после каждого нажатия на клавиши в insert mode ?
Разбираюсь в написании плагинов, хочу сделать просто автодополнение хедеров в cpp
Т.е. юзер вводит «#include », в плагине проверяется соответствие регулярному выражению и если это действительно «#include», то в popup вываливается содержимое /usr/include
Так вот как при каждом нажатии клавиши можно было бы проверять соответствие регулярке?
Спасибо!

Glaciuse
()

Как получить доступ к FTP через посредника?

Есть 2 машины, которые должны через посредника подключаться к ftp
Вот как это выглядит
Как можно такое реализовать?
Спасибо.

Glaciuse
()

eix: /usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.15' not found

Вот такая ошибка вылезла после обновления мира.
Вываливается эта ошибка не только при запуске eix, а так же при запуске всех других прог, юзающих эту либу.
На других форумах писали что помогает установка gcc более новой версии, мне не помогло.
Кто-нибудь сталкивался с таким?

 ,

Glaciuse
()

Поднятие своего почтового сервера. Безопасность.

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

Буду благодарен за любую информацию.

Glaciuse
()

Как завести 4G модем (Huawei E3276) на Gentoo?

Купил себе мегафоновский модем M150 (он же Huawei E3276). Модем видится как cd-rom и никаких ttyUSB в /dev нет.
При попытке установить Mobile Partner в комплекте все крэшится на командах rmmod -f <какой-то модуль>. Залез в скрипт убрал эти строки, стало крэшится на компиляции драйвера «hw_cdc_driver», ругается на ошибки в исходнике. Исходник вроде как писался под ядра 2.6.

В комплекте была куча скомпилированных модулей, но они все под ядра 2.6, а у меня 3.11, пробовал modprob'ить, ругается на кривой Exec.

В своем ядре включил все что только можно, что относилось бы к модему, перелазил кучу форумов, ответа так и не нашел. В комплекте с Mobile Partner'ом шли правила для udev, но они не работают корректно, т.к. им нужен этот несчастный модуль «hw_cdc_driver»
На сайте производителя исходников драйвера найти не смог, либо они запрятаны хорошо, ли Huawei не хорошие ребята. Может кто-то сталкивался с подобными проблемами и у него получалось что-то?

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

Glaciuse
()

The LUKS device /dev/sda2 does not contain a LUKS header

Купил себе 4G модем.
Чтобы он заработал, пересобрал ядро на своей генте с поддержкой ppp.
После перезагрузки при запуске вываливается сие чудо.
Как это может быть связано?
конфиг grub:

set root=(hd0,1)
linux /gentoo-3.11.0-amd64 crypt_root=/dev/sda2 real_rool=/dev/mapper/root root=/dev/ram0 quiet
initrd /initramfs-genreknel-x86_64-3.11.0-gentoo
P.S. Больше ничего кроме как добавления в ядро поддержки ppp не делал.

Glaciuse
()

Ошибка при установке MATE 1.6.0 на Gentoo

Пишет при установке mate-common-1.6.2:

....
Cannot find $EPATCH_SOURCE!
....
Это вроде как ему (mate-common'у) не удается найти патч в папке:
/var/lib/layman/mate/mate-base/mate-common/files
А в этой папке у меня:
# ls /var/lib/layman/mate/mate-base/mate-common/files
mate-common-1.6.1-automake-1.14.patch
Пробовал изменить версию этого патча в папке на 1.6.2, патч нашелся, но не подошел.

Также есть версия mate-common-1.7.0, но ее поставить не получилось, т.к. emerge не мог скачать ни с одного из зеркал архив с исходником, да и не известно, заработал бы с этим пакетом mate.

Что делать?

Glaciuse
()

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