Задачка на out-of-box thinking: бутыли из крепкого орешка
Есть 2 бутыля: 5л и 3л. Нужно набрать 4л воды.
Дать 2 решения.
Да, задача из Крепкого Орешка, многие знают.
Кто заранее знает ответ (а не додумался) - молчите, пусть думают.
Есть 2 бутыля: 5л и 3л. Нужно набрать 4л воды.
Дать 2 решения.
Да, задача из Крепкого Орешка, многие знают.
Кто заранее знает ответ (а не додумался) - молчите, пусть думают.
В продолжение А сможете ли вы найти площадь круга? by
teod0r
Есть три комнаты: к1, к2, к3. В каждую ведет закрытая дверь. В комнатах по одной лампочке. Возле трех дверей стоит панель с тремя выключателями: в1, в2, в3. Но вот проблема: какой выключатель от какой комнаты (какую лампочку включает) мы не знаем.
Мы стоим перед тремя закрытыми дверьми и панелью выключателей. Сейчас мы можем включать и выключать любые выключатели. После этого мы можем войти в две комнаты. После этого нам нужно будет сказать какой выключатель от какой комнаты.
Как это сделать?
Upd 1: изначально лампочки выключены.
Upd 2: рушить стены между комнатами нельзя
Upd 3: ждать пока перегорит нельзя
UPD: можно войти в 2 комнаты.
P. S. Ребята, кто знает решение - не спешите отвечать, пусть народ пому^W поучится...
Все привет!
Слушаю транс, в основном Goa (но не только). Все, что у себя - надоело, посоветуйте годного радио.
Пока слушаю trance.fm, но немного не то. Еще слушал подкасты Group Therapy, но в онлайне не нашел. Одни из моих любимых треков - записи из bpm.fm, но то, что я нашел в онлайне... в общем не транс там, видать просто «программы» есть какие-то.
Из любимого - Infected Mushroom, Alien Project, Guy Salama, Astral Projection... Вообще сборников много слушаю. Paul Oakenfold не нравится.
Есть на ЛОР'е любители транса?
Всем привет!
Есть NAS Synology . Вставил HDD, создал volume. Поскольку инфы туда нужно залить много, решил вытащить HDD и вставить его в комп. А там такое:
$ fdisk -l /dev/sdc
Disk /dev/sdc: 931,5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00038c31
Device Boot Start End Blocks Id System
/dev/sdc1 256 4980735 2490240 fd Linux raid autodetect
/dev/sdc2 4980736 9175039 2097152 fd Linux raid autodetect
/dev/sdc3 9437184 1953520064 972041440+ fd Linux raid autodetect
Всем привет.
Сломалась видяха, нужно покупать новую 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. Какие могут быть траблы/особенности с такой видяхой в онтопике?
Заранее благодарен ответившим.
Всем привет!
Ищу торрент клиент, который бы:
1. Мог работать в режиме демона
2. Имел удобный WEB, и QT/GTK интерфейс
3. Автоматом «подхватывал» торрент файлы из каталога
4. Мог бы работать с симлинками. То есть после скачивания файла я его переместил на другой раздел, переименовал, но сделал правильный симлинк в то место, в которое он скачался, и клиент продолжил бы его раздавать.
Сейчас пользуюсь Deluge. Но он не умеет 4.
Знаю, что transmission умеет 1-3. Народ, transmission умеет 4?
KTorrent еще хорош, но AFAIK не умеет 1. Остальные не присматривал.
Порекомендуйте, пожалуйста, клиент, который умеет 1-4.
Спасибо.
Всем привет!
В кедах были настройки шрифтов, DPI, сглаживания и т. п. Это было в System Settings > Application Appearance > Fonts . Теперь кинулся - нет. Знаю 100% что было, так как только что проверил на другом ноуте с более старыми кедами.
Версия кед: 4.11.4 (самая свежая в Gentoo).
Под новым пользователем (чистыми конфигами) проверял - тоже нет.
Подтвердите баг. Или что может быть причиной и как вернуть?
Всем привет!
Имеется: планшет 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
При включении планшета в 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 ?
Заранее спасибо откликнувшимся!
Всем привет!
Купил планшет 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)
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
Содержимое /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
lsmod говорит что модуль wacom не подгружен.
xsetwacom --list devices показывает пустоту.
Если подгрузить модуль вручную с помощью modprobe, то в dmesg проскакивает одна строка:
Nov 9 22:41:53 localhost kernel: [ 1200.716516] usbcore: registered new interface driver wacom
Да, lsusb все видит:
$ lsusb | grep -i wacom
Bus 002 Device 005: ID 056a:0302 Wacom Co., Ltd
Куда копать? Udev? Модуль ядра?
Всем привет!
Понравился 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
Всем привет!
Все чаще пользуюсь vim, но чувствую, что не хватает некоторых полезных функций, которые есть в GUI редакторах (а парочку я додумаю), а именно:
1. Сдвинуть строку/диапазон строк вправо/влево (ident)
2. Закомментировать/раскомментировать
3. Запомнить позицию (bookmark), переходить по букмаркам вперед/назад
4. Открыть несколько файлов и переключаться между ними
Додумываю:
5. Сохранить файл и скормить его скрипту/компилятору, увидеть результат работы скрипта/компилятора
6. Разделить окно на две части, чтобы вверху показывало один участок файла, внизу - другой.
7. Найти и заменить по регекспу (ну, как sed s/.../.../p )
8. Copy/paste между файлами.
9. И еще: можно чтобы все это (ну, может кроме двух последних) работало без выхода в командный режим, то есть по Ctrl+(что-то)?
Премного благодарен.
Всем привет.
Цель топика:
- гентушникам, которые не читают новости, обратить внимание на одну важную новость;
- понять, для всех ли случаев это применимо.
!Ъ: с последним обновлением прочитайте eselect news .
По сути: говорится, что с ноября /usr на отдельной партиции будет поддерживаться только при условии наличия initramfs. При этом за деталями посылают сюда: http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken ; ключевое слово в ссылке - systemd.
Вопрос: а если у меня не systemd, а openrc, да еще и с eudev, это актуально? Вообще, кто запрещает /usr на отдельной партиции: systemd, udev или кто-то еще?
Всем привет!
Пришло от хостера письмо, мол, «на вашем сайте найден вирус, бла-бла-бла». Посмотрел файлы: действительно, в конец index.html и некоторых других была дописана строка - JS скрипт. Почистил вручную.
Вопрос: почему такое могло произойти, и что нужно сделать, чтобы в будущем такого не было?
Дополнительный данные:
- Сайт у хостинг-провайдера hosting.ua.
- Человек, который создавал сайт, никаких настроек не делал; .htaccess состоит из одной строки «deny from all», но, похоже, это сделал провайдер как только обнаружил червя.
- Доступ только по ftp; ssh нет.
Думаю, должно быть что-то правильное в .htaccess, может убрать write из атрибутов файлов... Но не шарю я в этом. Подскажите, плиз.
UPD: Имя вируса: Trojan.Iframe-14
Всем привет.
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;
}
Как я ждал этого!!!
Начал писать на 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
Если кто еще не пробовал - рекомендую!
Всем привет!
Хочу скомпильнуть сей неказистый код:
#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;
}
$ 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
ЧЯДНТ?
Всем привет!
Нужно скорее ваше мнение, так как вопрос на самом деле больше философский..
Симптом: При выключение компьютера падает Плазма, и пока не нажмешь какой-то там Ok, не дает выключить компьютер. При разборке полетов оказалось, это поведение вызывает один плазмоид.
Итак: разработчики KDE пишут что это нормально. https://bugs.kde.org/show_bug.cgi?id=320393
Лично я в сомнениях. Вот мои противоречивые аргументы:
1. Вот если бы ядро крашилось и вешало комп, а это было бы из-за какого-то /bin/cat , то это как-то не совсем нормально, так?
2. С другой стороны одна программа (KDE, Plasma) не может отвечать за действия других.
3. Стретьей стороны, по-хорошему KDE/kdm/что там еще должно управлять сессией и программами, которые в ней (сессии) запущены. И если какая-то программа (пусть плазмоид) сделала что-то не так, это не должно влиять на нормальную работу KDE (в данном случае на нормальный процесс выключения компьютера). Вроде тоже правильно.
Но как-то у меня однозначного мнения не сказывается.
А как вы считаете, нормальное ли это поведение Плазмы: останавливать процесс выключение компа сообщением о Crash при неверной работе плазмоида? Должны ли разработчики KDE исправить это?
Буду благодарен за аргументированные мнения.
Всем привет.
Помогите составить регулярное выражение.
Нужно распарсить 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; здесь важна сама регулярка.
Заранее спасибо!
Всем привет!
Уже очередной раз при обновлении пакета в 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 все же есть, можно ли его убивать без негативных последствий?
Всем привет!
Капитан Очевидность Мейнтейнеры 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 запускать перед стартом программы (например, при старте системы)?
| ← назад | следующие → |