LINUX.ORG.RU

Сообщения Xenesz

 

Вставка в командную строку по средней кнопке мыши

Форум — General

Хаюшке, All.

Есть такая удобная фишка, как вставка выделенного мышью текста при нажатии средней кнопки мыши. И есть такая удобная вещь, как MC. Но в нём такая фишка в командной строке не работает (если не скрыть панели, что нежелательно). Как объехать? Заранее спасибо за ответы.

 

Xenesz ()

mapped_file_source: исключение на пустом файле

Форум — Development

После нормального получения хэша нескольких файлов обломался на файле нулевой длины и соорудил тест.

std::string emptyname = "zero.cpp"; // Тестовый файл нулевой длины
unsigned char emptyhash[MD5_DIGEST_LENGTH];
boost::iostreams::mapped_file_source emptymap;
emptymap.open(emptyname);
if (emptymap.is_open()) {
    MD5( (unsigned char*) emptymap.data(), emptymap.size(), emptyhash );
    emptymap.close();
}
Вылетает с сообщением
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::exception> >'
  what():  std::exception
Aborted
Можно заранее проверять файл на ненулевую длину, но какого лешего?

Гугл дал подтверждение только в одном электрописьме, которое ничего не прояснило.

 ,

Xenesz ()

C++: несовместимые по const геттеры

Форум — Development

или О Нарушенных Обещаниях.

Добрейшего всем.

У меня есть вектор элементов кастомного класса Item, которые надо сортировать двумя способами: по размеру и по хэшу.
Для этого я делаю два соответствующих геттера:

long getSize() const;
unsigned char* getHash();
Обращаю внимание на то, что getHash() не const, так как он же генерирует хэш, если хэш не был установлен. Посчитать заранее все хэши слишком дорого.
[UPD]
Хэши хранятся в объектах, getHash() изменяет значение соответствующего приватного члена
[/UPD]
Дальше пишется функтор с параметром field, принимающим значение SIZE или HASH
struct cmpItem
и оператор
bool operator() ( const Item& left, const Item& right)
суть которого следующая
if ( field == SIZE ) return left.getSize() < right.getSize();
/* if ( field == HASH ) return left.getHash() < right.getHash(); */

Сортировка вектора по размеру

std::vector<Item> scroll;
...
std::sort( scroll.begin(), scroll.end(), cmpItem(SIZE) );
работает как задумано, а с сортировкой по хэшу проблемы.

Если раскомментить в функторе

if ( field == HASH ) return left.getHash() < right.getHash();
то компилятор жалуется:

passing ‘const Item’ as ‘this’ argument of ‘unsigned char* Item::getHash()’ discards qualifiers

что логично, ибо этот метод не костантный.
Если привести getSize() к аналогичному getHash() виду (без const)

long getSize();
и соответственно поправить оператор
bool operator() ( Item& left, Item& right)
то вываливается простыня ошибок, из которых наиболее вразумительны

no match for call to ‘(cmpItem) (Item&, const Item&)’
no match for call to ‘(cmpItem) (const Item&, Item&)’

У меня такие вызовы не используются, это желание компилятора «шоб було»?

Нельзя иметь один функтор для неизменяющего метода и изменяющего метода?
Если я должен оба метода сделать не константными, то как?

 ,

Xenesz ()

C++: массив элементов переменного размера

Форум — Development

Добрейшего всем.

Нужно прочитать пути-имена файлов с stdin, отсортировать по размеру и посчитать кое-какую статистику. Файлов может быть несколько сотен тысяч или больше. Хочется, чтобы это не занимало десятки секунд и не съедало много памяти.

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

Насколько я понимаю, std::vector в принципе подходит, но при добавлении элементов он будет иногда перестраиваться, а это, по-моему, несколько дольше, и доступ к элементу в итоге будет не быстрее.

Какие ещё варианты?

UPD Исправлено: s/имена файлов из каталога/пути-имена файлов с stdin/

 

Xenesz ()

Именительный или творительный

Форум — Talks

Уважаемые знатоки, внимание на экран. Вопрос задаёт телезритель из Индии.
(Оригинал на инглеше, перевод мой.)

'Он был умным' и 'Он был умный' — оба предложения имеют одно и то же значение, но в первом используется творительный падеж.
Так в чём разница между ними и когда следует использовать творительный падеж?

Тут товарищи академики с dic.academic.ru подсказывают, что в современном русском именительный падеж в сказуемом архаичен, кроме «меня зовут…» или «они называются…» Однако я чаще слышу фразы типа «водитель был пьяный» или «куртка была белая». Можно ещё краткую форму прилагательного использовать, но она выглядит книжной, особенно для женского или среднего рода («стена была бела»). Какая форма правильна в современном русском языке? Заранее благодарен за ответы.

А линукс тут при том, что у меня гента.

 ,

Xenesz ()

Некромодерация

Форум — Linux-org-ru

Чисто из любопытства: это кто у нас режет темы трёхлетней выдержки?

Xenesz ()

Перемещение файлов торрента во время раздачи

Форум — General

Уважаемые знатоки. У меня есть торрент на раздаче. Я внезапно перемещаю файл торрента и подсовываю вместо него мягкую ссылку на новое местоположение файла. Верно ли, что торрентовый клиент при этом не может обломаться?

Xenesz ()

Пошто тему удавили?

Форум — Linux-org-ru

Зря, ПМСМ.

Не было содому, ни давёжу, ни погрому. Даже было кое-что интересного, несмотря на кривой зачин.

Xenesz ()

Патентный троллинг — инновационная отрасль

Форум — Talks

Гугл проиграл в суде ещё тридцать мегабаксов. На этот раз не какому-то гиганту, а невеликому патентному троллю Vringo, который в прошлом году купил старые патенты Lycos. В предмете разбирательства, ПМСМ, ничего нового и интересного, и сумма кагбе не особо впечатляет, тем более что истцы желали изначально получить почти полмиллиарда, но суд их существенно окоротил.

Дело Virgo примечательно тем, что патентная атака непосредственно отображалась фондовым рынком, инвесторы реагировали на каждую юридическую процедуру.

Патентные дела уже претендуют стать отраслью экономики.

!Ъ могут также посмотреть доставляющих картинок.

Xenesz ()

Заменить содержимое div, зная class и содержимое

Форум — Development

Дано: динамически генерируемая страница на плюсаче. Люди в кругах представлены элементами вида

<div class="jn Gs">Linus Torvalds</div>
Элементы различаются только текстом между <div…> и </div>.

Требуется: дописать текст в элементе. Например:

The Linus Torvalds

После поисков и консультаций нарисовался код для greasemonkey:

// ==UserScript==
// @name        G+ tags
// @namespace   https://plus.google.com/*
// @description Tag people in circles
// @include     https://plus.google.com/*
// @version     1
// ==/UserScript==


​​var elements = document.getElementsByClassName("jn Gs");
for(i=0;i<=elements.length;i++) {
    content = elements[i].innerHTML;
    switch(content) {
        case "Linus Torvalds" :
            elements[i].innerHTML = "The " + content;
            break;
        default : 
            elements[i].innerHTML = content + " - who?";
    }            
}

Но получился Fig. 1. Кто подскажет, что могло пойти не так?

Или как можно решить задачу с помощью других, желательно простых инструментов типа Stylish?

 , ,

Xenesz ()

Ненужные либы и модули

Форум — Talks

Допустим, вы лепите очередной лисапедик для домашних нужд. Берёте библиотечку… не то. Ещё одну… Наконец, находите то, что заточено как по мерке.

Что вы делаете с библиотеками и модулями, которые не пригодились? Варианты видятся такие:

  • Нищебродопроблемы. Диски стоят дёшево, нехай либы лежат, авось ещё понадобятся.
  • Я верю в П-тр-га и доверяю своей памяти, я точно знаю, какие пакеты у меня установлены (включая модули из CPAN и подобное). Я в любой момент могу сказать, какие можно вынести.
  • Я с самого начала рисую для лисапеда пакет с зависимостями, при каждом билде он обновляется, все не пригодившиеся пакеты можно потом снести автоматом, как orphaned.
  • Свой вариант. (?)

Как кто справляется?

 ,

Xenesz ()

sed: объединить строки в абзаце

Форум — General

Прощу помощи у знатоков sed. Пусть дан текст вида

    Рыба рыба рыба рыба рыба
рыба рыба рыба рыба; рыба ры-
ба рыба рыба.
    Рыба рыба рыба рыба рыба,
рыба рыба рыба рыба?
Требуется объединить строки внутри каждого абзаца (который начинается строкой с отступом) и удалить переносы:
Рыба рыба рыба рыба рыба рыба рыба рыба рыба; рыба рыба рыба рыба.
Рыба рыба рыба рыба рыба, рыба рыба рыба рыба?

 

Xenesz ()

Идентификация борнов

Форум — Talks

По ссылкам ниже какой-то электронный аванхард вперемежку с фоно. Кто-нибудь опознает исполнителя? (Пара треков, по ходу, малость битые.)

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.

 ,

Xenesz ()

ШГ и радуга

Форум — General

Посоветуйте тесты на «радугу». Глаз окончательно замылился. Или методу какую подбора параметров ШГ под монитор.

Заранее признателен.

 ,

Xenesz ()

check_license() { die

Форум — General
 * ERROR: app-misc/2gis-3.0.9.1 failed (setup phase):
 *   you no longer need this as portage supports ACCEPT_LICENSE itself
 * 
 * Call stack:
 *             ebuild.sh, line  85:  Called pkg_setup
 *   2gis-3.0.9.1.ebuild, line  23:  Called check_license '/var/lib/layman/sunrise/app-misc/2gis/../../licenses/2Gis-ru'
 *         eutils.eclass, line 1476:  Called die
 * The specific snippet of code:
 *   check_license() { die "you no longer need this as portage supports ACCEPT_LICENSE itself"; }

ЧЯДНТ и как с этим бороться?

 

Xenesz ()

Посоветуйте почтовый софт

Форум — General

Сабж.

Требования: консольный клиент, несколько аккаунтов на разных серверах, включая gmail.

Пожелания: управление виртуальными папками.

Приветствуются: истории успеха.

Не нужно: энтерпрайз.

 

Xenesz ()

Доставить письма в /var/spool/mail

Форум — General

Установлены fetchmail и maildrop в качестве delivery agent. При запуске fetchmail от обычного пользователя обламывается maildrop:

/usr/bin/maildrop: Unable to create a dot-lock at /var/spool/mail/13349.0.myhost.mydomain.
Каталог /var/spool/mail принадлежит root:mail.

Как правильно разрулить ситуацию?

 ,

Xenesz ()

Флаги для >=ебилда

Форум — General

При обновлении пожелал пересобраться буст:

The following USE changes are necessary to proceed:
#required by dev-python/tagpy-0.94.8-r1, required by dev-python/tagpy (argument)
>=dev-libs/boost-1.48.0-r2:1.48 python
хотя в /etc/portage/package.use/dev-libs есть строка:
>=dev-libs/boost-1.46.1-r1:1.46 python
То есть как бы питон включен и для >=1.48 (>=1.46). Для портеджа обычная арифметика не канает?

 

Xenesz ()

Теги в каментах

Форум — Linux-org-ru

Суть такова. Если скрестить кастование с тегами, можно в каментах кастовать не отдельных пользователей, а всех, кто подписался на тег. Если тема была про conky, а обсуждать активно стали lua, можно скастовать всех, кто им увлекается.

Идея малость сырая, но, может быть, кто-нибудь даст ума.

 

Xenesz ()

Человеки и обезьяны

Форум — Talks

Почему, когда всплывает фраза «человек произошёл от обезьяны» (фамилия род-вид обезяны не уточняется), то розентролли биологи начинают возводить эшафот и собирать дрова, приговаривая, что у нас с обезьянами только предки общие?

en.wikipedia.org

The anthropoids are the catarrhines (Old World monkeys and apes, including humans) and the platyrrhines (New World monkeys).

«обезьяны и э… обезьяны, включая людей»

en.wikipedia.org

Hominidae, also known as great apes

Опять обзывают человеков обезьянами (хоть и великими большими). Сами такие, между прочим.

Наши общие с гориллами предки уж точно обезьяны, не праприматы какие-нибудь.

В википедии ересь, а у биологов руки коротки? Или в чём тонкость? Почему «человек произошёл от обезьяны» — неправильно?

 ,

Xenesz ()

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