LINUX.ORG.RU

Сообщения Kroz

 

Видяху PCI-E 3.0 в слот PCI-E 1.0

Форум — General

Всем привет.

Сломалась видяха, нужно покупать новую i. e. незапланированный апгрейд. Люблю покупать вещи на вырост. Посему присмотрел GIGABYTE GV-R787OC-2GD на Radeon HD 7870. Она PCI-E 3.0, а у меня на материнке только PCI-E 1.0. Посему вопросы:

1. Можно ли вставить такую видяху в слот PCI-E 1.0?
2. Как/насколько это скажется на перформансе в играх? (по сравнению с как если бы было слот PCI-E 3.0)
3. Как/насколько это скажется на перформансе всяких OpenCL и прочего майнинга?
4. Как/насколько это скажется на перформансе декодирования видео?
5. В каких случаях/приложениях еще будет заметна разница i. e. чего я еще не спросил, но стоило бы?

и еще (если знаете)
6. На мамке сейчас процессор Core2 Duo, 2Gb DDR2, 500W блок питания. Что-то из этого может «ограничить» такую видяху?
7. Какие могут быть траблы/особенности с такой видяхой в онтопике?

Заранее благодарен ответившим.

Kroz
()

Разыскивается торрент клиент... Пользователей transmission просьба заглянуть.

Форум — General

Всем привет!

Ищу торрент клиент, который бы:
1. Мог работать в режиме демона
2. Имел удобный WEB, и QT/GTK интерфейс
3. Автоматом «подхватывал» торрент файлы из каталога
4. Мог бы работать с симлинками. То есть после скачивания файла я его переместил на другой раздел, переименовал, но сделал правильный симлинк в то место, в которое он скачался, и клиент продолжил бы его раздавать.

Сейчас пользуюсь Deluge. Но он не умеет 4.

Знаю, что transmission умеет 1-3. Народ, transmission умеет 4?

KTorrent еще хорош, но AFAIK не умеет 1. Остальные не присматривал.

Порекомендуйте, пожалуйста, клиент, который умеет 1-4.

Спасибо.

Kroz
()

KDE: пропали настройки шрифтов

Форум — General

Всем привет!

В кедах были настройки шрифтов, DPI, сглаживания и т. п. Это было в System Settings > Application Appearance > Fonts . Теперь кинулся - нет. Знаю 100% что было, так как только что проверил на другом ноуте с более старыми кедами.

Версия кед: 4.11.4 (самая свежая в Gentoo).

Под новым пользователем (чистыми конфигами) проверял - тоже нет.

Подтвердите баг. Или что может быть причиной и как вернуть?

 

Kroz
()

Правило для udev: запуск скрипта в включении USB устройства

Форум — General

Всем привет!

Имеется: планшет USB (ака большой тачпад) wacom. Что нужно: при подключении планшета чтобы автоматом запускался скрипт. Сейчас скрипт я запускаю вручную при каждом логине или переподключении планшета. Хочется сделать через udev.

Скрипт: /usr/local/bin/wacom_set.sh

Описания планшета:

$ lsusb | grep -i wacom
Bus 002 Device 004: ID 056a:0302 Wacom Co., Ltd

Содержимое /lib/udev/rules.d/65-libwacom.rules: http://pastebin.com/DDnSZXr2

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

/dev/input/event[345]
/dev/input/mouse[012]
/dev/input/by-id/usb-Wacom_Co._Ltd._Intuos_PTS-event-mouse -> ../event3
/dev/input/by-id/usb-Wacom_Co._Ltd._Intuos_PTS-if01-event-mouse -> ../event4
/dev/input/by-id/usb-Wacom_Co._Ltd._Intuos_PTS-if01-mouse -> ../mouse1
/dev/input/by-id/usb-Wacom_Co._Ltd._Intuos_PTS-if02-event-mouse -> ../event5
/dev/input/by-id/usb-Wacom_Co._Ltd._Intuos_PTS-if02-mouse -> ../mouse2
/dev/input/by-id/usb-Wacom_Co._Ltd._Intuos_PTS-mouse -> ../mouse0
, при условии что, как я понял из вывода lsusb, ENV{ID_MODEL_ID}==«0302», которого в наборе правил нет? Или чего я не понимаю?

При включении планшета в USB, вот лог:

Nov 29 23:39:41 localhost kernel: [ 8129.136141] hub 2-6:1.0: state 7 ports 4 chg 0000 evt 0010
Nov 29 23:39:41 localhost kernel: [ 8129.136382] hub 2-6:1.0: port 4, status 0101, change 0001, 12 Mb/s
Nov 29 23:39:41 localhost kernel: [ 8129.240143] hub 2-6:1.0: debounce: port 4: total 100ms stable 100ms status 0x101
Nov 29 23:39:41 localhost kernel: [ 8129.254162] hub 2-6:1.0: port 4 not reset yet, waiting 10ms
Nov 29 23:39:41 localhost kernel: [ 8129.316150] usb 2-6.4: new full-speed USB device number 6 using ehci-pci
Nov 29 23:39:41 localhost kernel: [ 8129.327141] hub 2-6:1.0: port 4 not reset yet, waiting 10ms
Nov 29 23:39:41 localhost kernel: [ 8129.404397] usb 2-6.4: skipped 1 descriptor after interface
Nov 29 23:39:41 localhost kernel: [ 8129.404402] usb 2-6.4: skipped 1 descriptor after interface
Nov 29 23:39:41 localhost kernel: [ 8129.404405] usb 2-6.4: skipped 1 descriptor after interface
Nov 29 23:39:41 localhost kernel: [ 8129.404640] usb 2-6.4: default language 0x0409
Nov 29 23:39:41 localhost kernel: [ 8129.405767] usb 2-6.4: udev 6, busnum 2, minor = 133
Nov 29 23:39:41 localhost kernel: [ 8129.405770] usb 2-6.4: New USB device found, idVendor=056a, idProduct=0302
Nov 29 23:39:41 localhost kernel: [ 8129.405773] usb 2-6.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Nov 29 23:39:41 localhost kernel: [ 8129.405775] usb 2-6.4: Product: Intuos PTS
Nov 29 23:39:41 localhost kernel: [ 8129.405778] usb 2-6.4: Manufacturer: Wacom Co.,Ltd.
Nov 29 23:39:41 localhost kernel: [ 8129.405860] usb 2-6.4: usb_probe_device
Nov 29 23:39:41 localhost kernel: [ 8129.405864] usb 2-6.4: configuration #1 chosen from 1 choice
Nov 29 23:39:41 localhost kernel: [ 8129.406173] usb 2-6.4: adding 2-6.4:1.0 (config #1, interface 0)
Nov 29 23:39:41 localhost kernel: [ 8129.406206] usbhid 2-6.4:1.0: usb_probe_interface
Nov 29 23:39:41 localhost kernel: [ 8129.406209] usbhid 2-6.4:1.0: usb_probe_interface - got id
Nov 29 23:39:41 localhost kernel: [ 8129.406228] wacom 2-6.4:1.0: usb_probe_interface
Nov 29 23:39:41 localhost kernel: [ 8129.406232] wacom 2-6.4:1.0: usb_probe_interface - got id
Nov 29 23:39:41 localhost kernel: [ 8129.406279] input: Wacom Intuos PT S Pen as /devices/pci0000:00/0000:00:1d.7/usb2/2-6/2-6.4/2-6.4:1.0/input/input13
Nov 29 23:39:41 localhost kernel: [ 8129.406385] usb 2-6.4: link qh2-0601/d3b30d00 start 0 [1/2 us]
Nov 29 23:39:41 localhost kernel: [ 8129.407156] usb 2-6.4: adding 2-6.4:1.1 (config #1, interface 1)
Nov 29 23:39:41 localhost kernel: [ 8129.407186] usbhid 2-6.4:1.1: usb_probe_interface
Nov 29 23:39:41 localhost kernel: [ 8129.407189] usbhid 2-6.4:1.1: usb_probe_interface - got id
Nov 29 23:39:41 localhost kernel: [ 8129.407204] wacom 2-6.4:1.1: usb_probe_interface
Nov 29 23:39:41 localhost kernel: [ 8129.407207] wacom 2-6.4:1.1: usb_probe_interface - got id
Nov 29 23:39:41 localhost kernel: [ 8129.407252] input: Wacom Intuos PT S Finger as /devices/pci0000:00/0000:00:1d.7/usb2/2-6/2-6.4/2-6.4:1.1/input/input14
Nov 29 23:39:41 localhost kernel: [ 8129.407406] usb 2-6.4: adding 2-6.4:1.2 (config #1, interface 2)
Nov 29 23:39:41 localhost kernel: [ 8129.407431] usbhid 2-6.4:1.2: usb_probe_interface
Nov 29 23:39:41 localhost kernel: [ 8129.407434] usbhid 2-6.4:1.2: usb_probe_interface - got id
Nov 29 23:39:41 localhost kernel: [ 8129.407447] wacom 2-6.4:1.2: usb_probe_interface
Nov 29 23:39:41 localhost kernel: [ 8129.407450] wacom 2-6.4:1.2: usb_probe_interface - got id
Nov 29 23:39:41 localhost kernel: [ 8129.407493] input: Wacom Intuos PT S Finger as /devices/pci0000:00/0000:00:1d.7/usb2/2-6/2-6.4/2-6.4:1.2/input/input15
Nov 29 23:39:41 localhost mtp-probe: checking bus 2, device 6: "/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-6/2-6.4"
Nov 29 23:39:41 localhost mtp-probe: bus: 2, device: 6 was not an MTP device
Nov 29 23:39:41 localhost kernel: [ 8129.410023] usb 2-6.4: unlink qh2-0601/d3b30d00 start 0 [1/2 us]
Nov 29 23:39:41 localhost kernel: [ 8129.420076] ehci-pci 0000:00:1d.7: reused qh d3b30d00 schedule
Nov 29 23:39:41 localhost kernel: [ 8129.420082] usb 2-6.4: link qh2-0601/d3b30d00 start 0 [1/2 us]
Nov 29 23:39:41 localhost kernel: [ 8129.422778] usb 2-6.4: link qh2-0601/d3adc0c0 start 1 [1/3 us]
Nov 29 23:39:41 localhost kernel: [ 8129.424123] usb 2-6.4: unlink qh2-0601/d3b30d00 start 0 [1/2 us]
Nov 29 23:39:41 localhost kernel: [ 8129.426103] usb 2-6.4: unlink qh2-0601/d3adc0c0 start 1 [1/3 us]
Nov 29 23:39:41 localhost kernel: [ 8129.432496] ehci-pci 0000:00:1d.7: reused qh d3adc0c0 schedule
Nov 29 23:39:41 localhost kernel: [ 8129.432501] usb 2-6.4: link qh2-0601/d3adc0c0 start 1 [1/3 us]
Nov 29 23:39:41 localhost kernel: [ 8129.439031] usb 2-6.4: link qh2-0601/d3adc840 start 0 [1/3 us]
Nov 29 23:39:41 localhost kernel: [ 8129.444021] usb 2-6.4: unlink qh2-0601/d3adc840 start 0 [1/3 us]
Nov 29 23:39:41 localhost kernel: [ 8129.450483] ehci-pci 0000:00:1d.7: reused qh d3adc840 schedule
Nov 29 23:39:41 localhost kernel: [ 8129.450488] usb 2-6.4: link qh2-0601/d3adc840 start 0 [1/3 us]
Nov 29 23:39:41 localhost kernel: [ 8129.456707] usb 2-6.4: link qh2-3008/d3b30d00 start 1 [1/2 us]
Nov 29 23:39:41 localhost kernel: [ 8129.463013] usb 2-6.4: unlink qh2-3008/d3b30d00 start 1 [1/2 us]
Nov 29 23:39:41 localhost kernel: [ 8129.470433] ehci-pci 0000:00:1d.7: reused qh d3b30d00 schedule
Nov 29 23:39:41 localhost kernel: [ 8129.470438] usb 2-6.4: link qh2-3008/d3b30d00 start 1 [1/2 us]

Еще раз повторю вопрос: как сделать чтобы, при втыкании планшета в USB, автоматом запускался /usr/local/bin/wacom_set.sh ?

Заранее спасибо откликнувшимся!

 ,

Kroz
()

Помогите подключить планшет Wacom

Форум — General

Всем привет!

Купил планшет Wacom Intuos Pen + Touch S black/silver (CTH-480S-RUPL). Ну никак не получается заставить его работать. Помогите, плиз.

xf86-input-wacom установлен, INPUT_DEVICES=«evdev wacom» .

Ядро 3.6.2.

Драйвер собран модулем:

Device Drivers --->
    Input device support --->
        <*> Event interface
        [*] Tablets --->
             <M> Wacom Intuos/Graphire tablet support (USB)
dmesg при подключении:
Nov  9 22:35:30 localhost kernel: [  817.957739] hub 2-5:1.0: state 7 ports 4 chg 0000 evt 0010                                                                                                                 
Nov  9 22:35:30 localhost kernel: [  817.957973] hub 2-5:1.0: port 4, status 0101, change 0001, 12 Mb/s
Nov  9 22:35:30 localhost kernel: [  818.062109] hub 2-5:1.0: debounce: port 4: total 100ms stable 100ms status 0x101
Nov  9 22:35:30 localhost kernel: [  818.073104] hub 2-5:1.0: port 4 not reset yet, waiting 10ms
Nov  9 22:35:31 localhost kernel: [  818.135116] usb 2-5.4: new full-speed USB device number 5 using ehci_hcd
Nov  9 22:35:31 localhost kernel: [  818.146106] hub 2-5:1.0: port 4 not reset yet, waiting 10ms
Nov  9 22:35:31 localhost kernel: [  818.223864] usb 2-5.4: skipped 1 descriptor after interface
Nov  9 22:35:31 localhost kernel: [  818.223869] usb 2-5.4: skipped 1 descriptor after interface
Nov  9 22:35:31 localhost kernel: [  818.223872] usb 2-5.4: skipped 1 descriptor after interface
Nov  9 22:35:31 localhost kernel: [  818.224108] usb 2-5.4: default language 0x0409
Nov  9 22:35:31 localhost kernel: [  818.225235] usb 2-5.4: udev 5, busnum 2, minor = 132
Nov  9 22:35:31 localhost kernel: [  818.225239] usb 2-5.4: New USB device found, idVendor=056a, idProduct=0302
Nov  9 22:35:31 localhost kernel: [  818.225241] usb 2-5.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Nov  9 22:35:31 localhost kernel: [  818.225244] usb 2-5.4: Product: Intuos PTS
Nov  9 22:35:31 localhost kernel: [  818.225246] usb 2-5.4: Manufacturer: Wacom Co.,Ltd.
Nov  9 22:35:31 localhost kernel: [  818.225334] usb 2-5.4: usb_probe_device
Nov  9 22:35:31 localhost kernel: [  818.225337] usb 2-5.4: configuration #1 chosen from 1 choice
Nov  9 22:35:31 localhost kernel: [  818.225616] usb 2-5.4: adding 2-5.4:1.0 (config #1, interface 0)
Nov  9 22:35:31 localhost kernel: [  818.225653] usbhid 2-5.4:1.0: usb_probe_interface
Nov  9 22:35:31 localhost kernel: [  818.225655] usbhid 2-5.4:1.0: usb_probe_interface - got id
Nov  9 22:35:31 localhost kernel: [  818.225685] usb 2-5.4: adding 2-5.4:1.1 (config #1, interface 1)
Nov  9 22:35:31 localhost kernel: [  818.225716] usbhid 2-5.4:1.1: usb_probe_interface
Nov  9 22:35:31 localhost kernel: [  818.225718] usbhid 2-5.4:1.1: usb_probe_interface - got id
Nov  9 22:35:31 localhost kernel: [  818.225741] usb 2-5.4: adding 2-5.4:1.2 (config #1, interface 2)
Nov  9 22:35:31 localhost kernel: [  818.225769] usbhid 2-5.4:1.2: usb_probe_interface
Nov  9 22:35:31 localhost kernel: [  818.225772] usbhid 2-5.4:1.2: usb_probe_interface - got id
Nov  9 22:35:31 localhost mtp-probe: checking bus 2, device 5: "/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-5/2-5.4"
Nov  9 22:35:31 localhost mtp-probe: bus: 2, device: 5 was not an MTP device
То есть одно определило 3 интерфейса (2-5.4:1.0 , 2-5.4:1.1, 2-5.4:1.2), но в /dev/input никакого нового устройства не появилось (типа мыши или event*).

Содержимое /proc/bus/input/devices

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input0
U: Uniq=
H: Handlers=kbd event0 
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input1
U: Uniq=
H: Handlers=kbd event1 
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input2
U: Uniq=
H: Handlers=sysrq kbd event2 
B: PROP=0
B: EV=120013
B: KEY=4 2000000 3803078 f800d001 feffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7

I: Bus=0003 Vendor=046d Product=c01b Version=0110
N: Name="Logitech USB-PS/2 Optical Mouse"
P: Phys=usb-0000:00:1d.7-5.3/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.7/usb2/2-5/2-5.3/2-5.3:1.0/input/input3
U: Uniq=
H: Handlers=mouse0 event3 
B: PROP=0
B: EV=20017
B: KEY=3f0000 0 0 0 0 0 0 0 0
B: REL=103
B: MSC=10
B: LED=ff00
То есть wacom нет.

lsmod говорит что модуль wacom не подгружен.

xsetwacom --list devices показывает пустоту.

Если подгрузить модуль вручную с помощью modprobe, то в dmesg проскакивает одна строка:

Nov  9 22:41:53 localhost kernel: [ 1200.716516] usbcore: registered new interface driver wacom
В /dev/input , /proc/bus/input/devices без изменений.

Да, lsusb все видит:

$ lsusb | grep -i wacom
Bus 002 Device 005: ID 056a:0302 Wacom Co., Ltd

Куда копать? Udev? Модуль ядра?

 ,

Kroz
()

ebuld для KDE плазмоида eyasdp

Форум — General

Всем привет!

Понравился KDE4 плазмоид eyasdp, который ставит кнопки выключения/перезагрузки/..., дабы лишний раз в меню не тянуться. Сделал под него .ebuild для Gentoo. Выкладываю дабы:
- может кому-то виджет приглянется
- может кто-то почерпнет что-то по ebuild'о-писанию (тут, кстати, cmake используется)
- кто найдет ошибки/замечания - маякуйте, буду признателен

Всем, кому не терпится сказать «не нужно», просьба проходить мимо.

/usr/local/portage/kde-misc/plasma-eyasdp/plasma-eyasdp-1.1.0.ebuild

# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=5

KDE_MINIMAL="4.7.0"
QT_MINIMAL="4.7.0"

inherit cmake-utils kde4-base

DESCRIPTION="KDE4 plasmoid. eYaSDP allows to set a number of system buttons in your panel or desktop for comfortable and quick access."
HOMEPAGE="http://kde-look.org/content/show.php/eYaSDP?content=146530"
SRC_URI="http://kde-look.org/CONTENT/content-files/146530-eyasdp-1.1.0.tar.bz2"

#S="${WORKDIR}/eyasdp-1.1.0"
S="${WORKDIR}/${P#plasma-}"
#MY_P="${P#plasma-}"

LICENSE="GPL"
SLOT="0"
KEYWORDS="~x86 ~amd64"
IUSE=""

DEPEND="
$(add_kdebase_dep plasma-workspace)
dev-util/automoc
dev-lang/perl
"
RDEPEND="$(add_kdebase_dep plasma-workspace)"

Предполагается, что в make.conf есть PORTDIR_OVERLAY=«/usr/local/portage/»

Еще: скрипт, для определения минимального списка библиотек, от которых напрямую зависит определенный запускаемый файл/библиотека. Скрипт исключает непрямые зависимости; например, если plasma_applet_eyasdp.so зависит от libkworkspace.so.4 и libplasma.so.3, а libkworkspace.so.4 также зависит от libplasma.so.3, то libplasma.so.3 будет исключен из списка, так как предполагается, что при «подключении» libkworkspace.so.4 автоматически «подключится» и libplasma.so.3.

#!/bin/sh

# List minimum dependensies

Help()
{
	echo "List minimum dependencies of a dynamic executable"
	echo
	echo "Usage: $0 <executable file or library>"
}

ListDependencies()
{
	ldd "$1" 2>/dev/null | while read L1 A L2 OTHER ; do
		if [[ "${L1:0:1}" == "/" ]] ; then
			echo "$L1"
		else
			[[ -n "$L2" ]] && echo "$L2"
		fi
	done
}

if [[ $# != 1 ]]; then
	Help
	exit 1
fi

ldd "$1" >/dev/null 2>/dev/null

if [[ $? != 0 ]]; then
	echo "Incorrect input file; shall be executable binary (ELF, .so etc)"
	exit 2
fi

F_DIRECT=`mktemp`
F_INDIRECT=`mktemp`
F_TMP=`mktemp`
F_TMP2=`mktemp`

F=""

ListDependencies "$1" | sort | uniq > "$F_DIRECT"

cat /dev/null > "$F_INDIRECT"
F="$F_DIRECT"

#echo -n "Working"
while true ; do
	
	cp "$F_INDIRECT" "$F_TMP"

	cat "$F" | while read L ; do
		ListDependencies "$L"
	done >> "$F_TMP"
	
	cat "$F_TMP" | sort | uniq > "$F_TMP2"

	SIZE_INDIRECT=`ls -l "$F_INDIRECT" | awk '{print $5;}'`
	SIZE_TMP=`ls -l "$F_TMP2" | awk '{print $5;}'`
	
	[[ "$SIZE_INDIRECT" == "$SIZE_TMP" ]] && break
	
	mv "$F_TMP2" "$F_INDIRECT"
	F="$F_INDIRECT"
#	echo -n "."

done

rm "$F_TMP"
rm "$F_TMP2"

#echo

cat "$F_DIRECT" | while read L ; do
	L2=`cat "$F_INDIRECT" | grep "^$L$"`
	[[ -z "$L2" ]] && echo "$L"
done

rm "$F_DIRECT"
rm "$F_INDIRECT"

Hope this helps

 , ,

Kroz
()

Подскажите как в vim сделать...

Форум — General

Всем привет!

Все чаще пользуюсь vim, но чувствую, что не хватает некоторых полезных функций, которые есть в GUI редакторах (а парочку я додумаю), а именно:
1. Сдвинуть строку/диапазон строк вправо/влево (ident)
2. Закомментировать/раскомментировать
3. Запомнить позицию (bookmark), переходить по букмаркам вперед/назад
4. Открыть несколько файлов и переключаться между ними
Додумываю:
5. Сохранить файл и скормить его скрипту/компилятору, увидеть результат работы скрипта/компилятора
6. Разделить окно на две части, чтобы вверху показывало один участок файла, внизу - другой.
7. Найти и заменить по регекспу (ну, как sed s/.../.../p )
8. Copy/paste между файлами.

9. И еще: можно чтобы все это (ну, может кроме двух последних) работало без выхода в командный режим, то есть по Ctrl+(что-то)?

Премного благодарен.

 

Kroz
()

Вниманию гентушников: новость про /usr на отдельном разделе

Форум — General

Всем привет.

Цель топика:
- гентушникам, которые не читают новости, обратить внимание на одну важную новость;
- понять, для всех ли случаев это применимо.

!Ъ: с последним обновлением прочитайте eselect news .

По сути: говорится, что с ноября /usr на отдельной партиции будет поддерживаться только при условии наличия initramfs. При этом за деталями посылают сюда: http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken ; ключевое слово в ссылке - systemd.

Вопрос: а если у меня не systemd, а openrc, да еще и с eudev, это актуально? Вообще, кто запрещает /usr на отдельной партиции: systemd, udev или кто-то еще?

 ,

Kroz
()

Сайт заразили простым трояном; как уберечься на будущее?

Форум — Web-development

Всем привет!

Пришло от хостера письмо, мол, «на вашем сайте найден вирус, бла-бла-бла». Посмотрел файлы: действительно, в конец index.html и некоторых других была дописана строка - JS скрипт. Почистил вручную.

Вопрос: почему такое могло произойти, и что нужно сделать, чтобы в будущем такого не было?

Дополнительный данные:
- Сайт у хостинг-провайдера hosting.ua.
- Человек, который создавал сайт, никаких настроек не делал; .htaccess состоит из одной строки «deny from all», но, похоже, это сделал провайдер как только обнаружил червя.
- Доступ только по ftp; ssh нет.

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

UPD: Имя вируса: Trojan.Iframe-14

 ,

Kroz
()

Мне всегда казалось, что несколько потоков должны грузить все ядра процессора...

Форум — Development

Всем привет.

UPD2: добавлены реализации boost и OpenMP, почищен код, добавлены комменты в код, немного переформулировано ТЗ (суть не поменялась).

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

Решил написать простую программу генерации простых чисел по методу вычеркивания. В развитии этой темы, написал 6 алгоритмов, 4 из которых многопоточные, близнецы, но используют std:thread (метод Initiate3), std:async (Initiate4), boost (Initiate5), OpenMP (Initiate6). Изначально ожидал, что многопоточные алгоритмы загрузят все ядра процессора на 100% и дадут увеличение скорости работы программы. Результаты удивили:
- Все реализации выполняются примерно за одно время (даже OpenMP).
- Многопоточные реализации не быстрее однопоточной, а иногда даже медленнее!!!
std:thread - грузит одно ядро на 100%
std:async - грузит два ядра, общая нагрузка не более 100% одного ядра.
boost - грузит одно ядро
OpenMP - грузит два ядра (суммарная нагрузка 200%), но при этом выполняется не быстрее (обогреватель воздуха помещения)!

Вопрос 1: почему Initiate3,4,5 не грузит все ядра на полную мощность?
Вопрос 2: почему Initiate6 (OpneMP) грузит все ядра, но пи этом не быстрее?
Вопрос 3: Как получить профит от многопоточности в данной конкретной задаче?

Для тех, кто решится помочь - заранее спасибо, и вот инфа в помощь:

Краткое представление алгоритма. Создается массив, элементы которого соответствует числам 3, 5, 7... (ведь четные числа не простые априори). Если соотв. число простое, то значение элемента массива 1, если не простое - 0 (для чистоты эксперимента специально заменил bool на unsigned char). Заполняет массив функция Initiate, в параметрах которой - максимальное число до которого искать. Initiate1 втупую проверяет каждое число, Initiate2 - при нахождении простого числа проходит массив вперед и убирает (помечает не-простыми) соотв. числа, Initiate3,4,5,6 - то же, но с многопоточностью. MarkNonPrime2 и MarkNonPrime3 - близнецы, но вторая предназначена для запуска в отдельном потоке. Остальное, думаю, будет понятно из кода.

Запускать так:

$ g++ -std=c++11 -lpthread -L/usr/lib -lboost_thread prime.cpp -fopenmp -O0 -o prime && time ./prime

Выбор реализации - в main() вызвать нужный метод InitiateX.

Длительность выполнения программы регулировать изменяя параметр InitiateX в main.

Собственно код (prime.cpp):

#include <iostream>
#include <iomanip>
#include <vector>

#include <thread>

#include <future>

#include <boost/thread/thread.hpp>

using namespace std;

// Maximum threads that could be spawned (except OpenMP)
#define MAX_THREAD 100

class CPrimeNumbers{
public:
  vector<unsigned char> numbers; // Array starts with 3 and has a step of 2: 3, 5, 7, 9 ...
  
  inline uint NumberToIndex(const uint number) {return (number-3)/2;}; // BUG: check whether number is < 3
  inline uint IndexToNumber(const uint index) {return index*2+3;};
  
  void MarkNonPrime2(const uint v,const uint max); // Single thread version: mark all N*v numbers (N - integer, N*v<=max) as non-prime
  static void MarkNonPrime3(CPrimeNumbers *sno, const uint v,const uint max); // Multithreading version: mark all N*v numbers (N - integer, N*v<=max) as non-prime
public:
  // Find all prime numbers - different realizations
  void Initiate1(const uint max=6); // Simple algorithm - checking each number
  void Initiate2(const uint max=6); // Marking-forward algorithm, single thread
  void Initiate3(const uint max=6); // Marking-forward algorithm, multithreading using C++11, std::thread
  void Initiate4(const uint max=6); // Marking-forward algorithm, multithreading using C++11, std::async
  void Initiate5(const uint max=6); // Marking-forward algorithm, multithreading using Boost
  void Initiate6(const uint max=6); // Marking-forward algorithm, multithreading using OpenMP
  
  void Print(); // Outhput prime numbers found
  bool IsPrime(uint number); // Check whether given number is prime
};

bool CPrimeNumbers::IsPrime(uint number)
{
  uint i;
  
  // BUG: check whether number is =0
  if (number<4)
    return true;
  
  if (number%2==0)
    return false;
  
  for (i=0;i<NumberToIndex(number);i++)
    if ( numbers[i]==1 && number%IndexToNumber(i) == 0 )
      return false;
    
  return true;
};

/*static*/ void CPrimeNumbers::MarkNonPrime3(CPrimeNumbers *sno, const uint v,const uint max)
{
  uint n;
  
  n=v*3;
  while (n<=max) {
    sno->numbers[sno->NumberToIndex(n)]=0;
    n+=v*2;
  }
};

void CPrimeNumbers::MarkNonPrime2(const uint v,const uint max)
{
  uint n;
  
  n=v*3;
  while (n<=max) {
    numbers[NumberToIndex(n)]=0;
    n+=v*2;
  }
};

void CPrimeNumbers::Initiate6(const uint max)
{
  uint head,i;
  
  numbers.assign(NumberToIndex(max)+1,1);
  
  for (head=3;head<=max;head+=2) {
    if ( numbers[NumberToIndex(head)]==1 ) { // Is prime/unchecked yet
      if (!IsPrime(head)) { // Is not prime
        numbers[NumberToIndex(head)]=0;
      }
      else{ // Is prime
        /*********** Multithreading using OpenMP ***********/
        #pragma omp parallel
        {
          MarkNonPrime3(this,head,max);
        }
      }
    }
  };
};

void CPrimeNumbers::Initiate5(const uint max)
{
  uint head,i;
  vector<boost::thread> threads;
  
  numbers.assign(NumberToIndex(max)+1,1);
  
  for (head=3;head<=max;head+=2) {
    if ( numbers[NumberToIndex(head)]==1 ) { // Is prime/unchecked yet
      if (!IsPrime(head)) { // Is not prime
        numbers[NumberToIndex(head)]=0;
      }
      else{ // Is prime
        /*********** Multithreading using Boost ***********/
        if ( threads.size()==MAX_THREAD) {
          threads[0].join();
          threads.erase(threads.begin());
        }
        threads.push_back( boost::thread(MarkNonPrime3,this,head,max) );
      }
    }
  };
  
  for (auto t=threads.begin();t!=threads.end();t++)
    t->join();
};

void CPrimeNumbers::Initiate4(const uint max)
{
  uint head,i;
  
  numbers.assign(NumberToIndex(max)+1,1);
  
  for (head=3;head<=max;head+=2) {
    if ( numbers[NumberToIndex(head)]==1 ) { // Is prime/unchecked yet
      if (!IsPrime(head)) { // Is not prime
        numbers[NumberToIndex(head)]=0;
      }
      else{ // Is prime
        /*********** multithreading using C++11, std::async ***********/
        async(launch::async,  MarkNonPrime3,this,head,max );
      }
    }
  };
};

void CPrimeNumbers::Initiate3(const uint max)
{
  uint head,i;
  vector<thread> threads;
  
  numbers.assign(NumberToIndex(max)+1,1);
  
  for (head=3;head<=max;head+=2) {
    if ( numbers[NumberToIndex(head)]==1 ) { // Is prime/unchecked yet
      if (!IsPrime(head)) { // Is not prime
        numbers[NumberToIndex(head)]=0;
      }
      else{ // Is prime
        /*********** Multithreading using C++11, std::thread ***********/
        if ( threads.size()==MAX_THREAD) {
          threads[0].join();
          threads.erase(threads.begin());
        }
        threads.push_back( thread(MarkNonPrime3,this,head,max) );
      }
    }
  };
  
  for (auto t=threads.begin();t!=threads.end();t++)
    t->join();
};

void CPrimeNumbers::Initiate2(const uint max)
{
  uint head,i;
  
  numbers.assign(NumberToIndex(max)+1,1);
  
  for (head=3;head<=max;head+=2) {
    if ( numbers[NumberToIndex(head)]==1 ) { // Is prime/unchecked yet
      if (!IsPrime(head)) { // Is not prime
        numbers[NumberToIndex(head)]=0;
      }
      else{ // Is prime
        /*********** Single thread ***********/
        MarkNonPrime2 (head,max);
      }
    }
  };
  
};

void CPrimeNumbers::Initiate1(const uint max)
{
  uint i;
  uint head;
  
  numbers.assign(NumberToIndex(max)+1,1);
  
  for (head=3;head<=max;head+=2) {
    if (! IsPrime(head) )
      numbers[NumberToIndex(head)]=0;
  };
  
};

void CPrimeNumbers::Print()
{
  uint n;
  
  n=3;
  for (auto i:numbers) {
    if (i) cout << n << " ";
    n+=2;
  }
  cout << endl;
}

int main()
{
  CPrimeNumbers s;
  
  /*********** Choose the algorithm ***********/
  s.Initiate1(100000);
  s.Print();
  
  return 0;
}

 , , ,

Kroz
()

foreach в c++

Форум — Development

Как я ждал этого!!!

Начал писать на php и использовать тамошний foreach. Удобная конструкция скажу я вам; заметил, что обычным for вообще почти перестал пользоваться. На C++ же делал по-старинке/по-привычке: for (int i=0;i<N;i++) . Это раз. Кроме того, в C++ очень напрягала работа с STL/итераторами: монструозные конструкции выходят.

Про развитие C++ читал, но никак не доходили руки. И вот решил попробовать:

#include <iostream>
#include <vector>

using namespace std;

int main()
{
  vector<uint> v;

  v.push_back(3);
  v.push_back(5);
  v.push_back(6);

  // Вот здесь!!!
  for(auto i:v)
    cout << i << " ";

  cout << "\n";

  return 0;
}
$ g++ -std=c++11 delme3.cpp -o delme3 && ./delme3
3 5 6
Да здравствует более читабельный код!!!

Если кто еще не пробовал - рекомендую!

 ,

Kroz
()

Хочу c++11 в gcc - не работает

Форум — Development

Всем привет!

Хочу скомпильнуть сей неказистый код:

#include <iostream>

using namespace std;

int main( )
{
    int count = 10;
    int& countRef = count;
    auto myAuto = countRef;

    countRef = 11;
    cout << count << " ";

    myAuto = 12;
    cout << count << endl;
}
Как видно, здесь используется auto, которое описано в c++11. Пытаюсь скомпилировать:
$ gcc -std=c++11 delme.cpp 
/tmp/ccrF4TIa.o: In function `main':
delme.cpp:(.text+0x38): undefined reference to `std::cout'
delme.cpp:(.text+0x3d): undefined reference to `std::ostream::operator<<(int)'
delme.cpp:(.text+0x4d): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
delme.cpp:(.text+0x64): undefined reference to `std::cout'
delme.cpp:(.text+0x69): undefined reference to `std::ostream::operator<<(int)'
delme.cpp:(.text+0x71): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
delme.cpp:(.text+0x79): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
/tmp/ccrF4TIa.o: In function `__static_initialization_and_destruction_0(int, int)':
delme.cpp:(.text+0xab): undefined reference to `std::ios_base::Init::Init()'
delme.cpp:(.text+0xc2): undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccrF4TIa.o:(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
collect2: error: ld returned 1 exit status

$ gcc --version
gcc (Gentoo 4.7.3 p1.0, pie-0.5.5) 4.7.3
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ emerge -pv gcc

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] sys-devel/gcc-4.7.3:4.7  USE="cxx fortran mudflap nls nptl openmp (-altivec) -doc (-fixed-point) -gcj -go -graphite -gtk (-hardened) (-libssp) -lto (-multilib) -multislot -nopie -nossp -objc -objc++ -objc-gc -regression-test -vanilla" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

ЧЯДНТ?

 , , ,

Kroz
()

Нормально ли что Plasma крашится из-за плазмоида.

Форум — General

Всем привет!

Нужно скорее ваше мнение, так как вопрос на самом деле больше философский..

Симптом: При выключение компьютера падает Плазма, и пока не нажмешь какой-то там Ok, не дает выключить компьютер. При разборке полетов оказалось, это поведение вызывает один плазмоид.

Итак: разработчики KDE пишут что это нормально. https://bugs.kde.org/show_bug.cgi?id=320393
Лично я в сомнениях. Вот мои противоречивые аргументы:
1. Вот если бы ядро крашилось и вешало комп, а это было бы из-за какого-то /bin/cat , то это как-то не совсем нормально, так?
2. С другой стороны одна программа (KDE, Plasma) не может отвечать за действия других.
3. Стретьей стороны, по-хорошему KDE/kdm/что там еще должно управлять сессией и программами, которые в ней (сессии) запущены. И если какая-то программа (пусть плазмоид) сделала что-то не так, это не должно влиять на нормальную работу KDE (в данном случае на нормальный процесс выключения компьютера). Вроде тоже правильно.

Но как-то у меня однозначного мнения не сказывается.

А как вы считаете, нормальное ли это поведение Плазмы: останавливать процесс выключение компа сообщением о Crash при неверной работе плазмоида? Должны ли разработчики KDE исправить это?

Буду благодарен за аргументированные мнения.

 ,

Kroz
()

Регулярное выражение для парсинга CSV файлов

Форум — General

Всем привет.

Помогите составить регулярное выражение.

Нужно распарсить csv файл, вот пример:

$ cat data.csv 
One "Two Three" Four
"Five Six Seven" "Eight Nine" "Ten Eleven"
Twelve Thirteen Fourteen

Разделитель - пробел. В цикле читаю каждую линию, потом регуляркой выделяю нужную запись. Проблема в том, что есть записи в двойных кавычках, и в них тоже есть пробелы, и они все портят. Нужно как-то объяснить, что разделители (пробелы) в двойных кавычках нужно игнорировать. Как это сделать?

Вот мой незамысловатый код, который выделяет вторую запись (PHP, запускаю из консоли):

<?
	$string='Twelve Thirteen Fourteen';
	$pattern='/(\S+)\s(\S+).*/i';
	$replacement='$2';
	$result=preg_replace($pattern,$replacement,$string);
	echo "$result\n";
?>

Ответ можете давать на любом из популярных языков (программирования), хоть через grep/sed; здесь важна сама регулярка.

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

 

Kroz
()

Что не так с /var/run ?

Форум — General

Всем привет!

Уже очередной раз при обновлении пакета в Gentoo пишет вот такое:

 * One or more symlinks to directories have been preserved in order to
 * ensure that files installed via these symlinks remain accessible. This
 * indicates that the mentioned symlink(s) may be obsolete remnants of an
 * old install, and it may be appropriate to replace a given symlink with
 * the directory that it points to.
 * 
 *      /var/run
 *

Если честно не до конца понимаю что это значит, точнее не понимаю можно ли симлинк /var/run убивать (при условии что у меня 5 минут назад пересобран мир).

Есть здесь гентушники, у кого нет /var/run ?
Если /var/run все же есть, можно ли его убивать без негативных последствий?

 

Kroz
()

sqlite vs mysql: mysqlв нужен в автозагруке?

Форум — General

Всем привет!

Капитан Очевидность Мейнтейнеры Gentoo вот такое написали:

 * We strongly recommend you set your Akonadi database backend to QMYSQL in your
 * user configuration. This is the backend recommended by KDE upstream.
 * Reports indicate that kde-base/kmail-4.10 does not work properly with the sqlite
 * backend anymore.
 * FOR THAT, YOU WILL HAVE TO RE-BUILD app-office/akonadi-server WITH mysql USEFLAG ENABLED.

Вопрос: если я скомпилю программу с USE=«mysql» вместо USE=«sqlite», нужно ли мне будет демон mysql/mariadb запускать перед стартом программы (например, при старте системы)?

 ,

Kroz
()

Ценообразование, ритейл: что такое front margin и back margin

Форум — Talks

Всем привет!

Есть здесь кто работает в ритейле или как-то с ним связан по вопросам ценообразования? Что такое front margin и back margin? Очень нужно знать, а Интернет молчит на эту тему.

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

P. S. FMCG

 

Kroz
()

Ноутбук Fujitsu LifeBook AH552 и запарывание UEFI BIOS: проблема решается?

Форум — General

Всем привет.

Уж очень понравился ноутбук Fujitsu LifeBook AH552. Но в Интернете много сообщиний типа такого: «Бен, я нид хелп... Запорол биос на ноуте (Fujitsu LifeBook AH552)» Бен, я нид хелп... Запорол биос на ноуте (Fujitsu LifeBook AH552)

Так в итоге: проблема решается (без обращения в сервис)? Если я куплю сей девайс, как мне избежать подобных проблем?

Cast Sahab

 , , ,

Kroz
()

Выбор ноутбука до 750USD (Sony Vaio, UEFI Secure Boot)

Форум — Talks

Всем привет!

Выбираю ноутбук. Требования:
1. Назначение: офис/веб-серфинг и т. п. Не игры. Не графика/видео.
2. Экран 15" (+/-)
3. Бюджет: 750 USD = 6000 грн = 25000 р (+5% если правда будет для чего увеличивать бюджет)
4. Intel i3/5/7 . Не AMD.
5. В силу п.1 и п.4 дискретная видеокарта скорее считается минусом, хоть и некритичным.
6. Не горячий. Чтобы не ставить на балкон с открытым окном для пересборки мира в Gentoo (имею печальный опыт)
7. Объем памяти не имеет значения, так как она стоит копейки, потом можно доставить.
8. Не Samsung, в силу нехороших новостей о них
9. С не обкуренной клавиатурой (вот такого не нужно), и чтобы Fn была не вместо Ctrl.
10. С нормальной поддержкой Линукс, но предустановленная Винда не является минусом (а может даже является плюсом).
11. Экземпляр с весом over 2.8кг сразу отбрасывается: качаемся в спортзале.
12. Не себе, сестре, поэтому рюшечки приветствуются

Пока что присмотрел такое (вот здесь в сравнении):
1. ASUS X55C (X55C-SX005H):
15,6"; 1366x768; Intel Core i3-3110M; RAM: 4096; Intel HD Graphics 4000; HDD: 500 GB; 2,5 кг; предустановленная ОС: Windows 8

2. Dell Vostro 3560 (210-38215slv):
15,6"; 1366x768; Intel Core i5-3210M; RAM: 4096; Intel HD Graphics 4000; HDD: 500 GB; 2,5 кг; предустановленная ОС: Linux
http://www.notebookcheck.net/Review-Dell-Vostro-3460-Notebook.81509.0.html

3. ASUS K55A (K55A-SX024D):
15,6"; 1366x768; Intel Core i5-3210M; RAM: 4096/8192; Intel HD 4000; HDD: 500 GB; 2,52 кг; предустановленная ОС: DOS

4. Sony VAIO SVE1512L1R/W:
15,5"; 1366x768; Intel Core i3-3110M; RAM: 4096/8192; Intel HD Graphics 4000; HDD: 640 GB; 2,7 кг; предустановленная ОС: Windows 8
(не совсем, но близко) http://www.notebookcheck.net/Review-Sony-Vaio-SV-E1511V1EW-Notebook.81608.0.html

5. Fujitsu Lifebook AH552 (AH552MPZA1RU):
15,6"; 1366x768; Intel Core i5-3210M; RAM: 8192; Intel HD Graphics 4000; HDD: 750 GB; 2,2 кг; предустановленная ОС: Windows 8 Pro
http://www.notebookcheck.net/Review-Fujitsu-LifeBook-AH552-SL-Notebook.80662....

Еще пару связанных вопросов:
q1. Sony Vaio кажется приемлемым вариантом; но как он дружит с Линуксом? ( Lighting)
q2. Как проверить, что не будет проблем с UEFI Secure Boot?

Заранее благодарю за комментарии по делу.

 , , ,

Kroz
()

WEB сервис, который не читает письма

Форум — Security

Всем привет!

Какие из популярных e-mail сервисов лучше с точки зрения приватности?

Kroz
()

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