LINUX.ORG.RU

Сообщения Obey-Kun

 

[loroogle] Песня

Форум — Talks

Песня из детства в памяти вспыла. Вот такой кусок:

Хэй-на-на, мама Италия, а хэй-на-на, ...

Это не Nah Neh Nah от Vaya Con Dios. Судя по всему, там не «мама Италия», а что-то созвучное. Есть идеи?

 

Obey-Kun
()

[очкастость] [ЖЖ] продолжение темы про контактные линзы

Форум — Talks

Продолжение этой темы.

Сегодня сходил в Очкарик на диагностику (это бесплатно, надо тролько предварительно записаться). Зрение за год не изменилось никак вообще.

Она посоветовала сначала взять 15 пар однодневок, а потом перейти на двухнедельные или сразу на месячные. Типа, сначала лучше попрактиковаться на одноразовых снимать-одевать, да и запарывать я их могу поначалу.

Дала попробовать линзу Acuvue Oasis for Astigmatism (одну, причём не совсем с нужными характеристиками — нужную заказывать и ждать нужно, дала бы две, но хоть как-то близко подходящих ему линз не было). Ну в общем-то порадовало, хотя, конечно, глаз немножко офигел от моих неумелых попыток одеть линзу.

Кстати, она сказала, что 1-Day Acuvue Oasis for Astigmatism в количестве 15 пар будет стоить 1500 р (что меня удивило, ведь в рунете дороже). Жаль, конечно, что у меня астигматизм, ведь дорого.

Я посмотрю, как глаз будет себя чувствовать, и линзы выберу исходя из этого. Может, захочу более мягкие линзы. Или с бОльшим содержанием воды, например.

Вот такая штука. Если кто думает о покупке контактных линз, знайте — боятся тут нечего, во всяком случае можете взять 15 пар однодневых и попробовать, как оно.

Очки я не перестану носить. Линзы беру в первую очередь для мото, сноуборда и mtb.

ps: ещё нашёл занимательный блог http://biofilcon.com/

 

Obey-Kun
()

Я вижу мёртвые сосуды. Это нормально?

Форум — Talks

Уже давно вижу мёртвые сосуды. Вижу их, например, глядя на светлое небо. По небольшому участку на каждом глазе. Они прозрачные и тонкие, не мешают и не изменяются во времени (или изменяются, но я этого не замечаю).

Это нормально?

Obey-Kun
()

[очкастость] Посоветуйте линзы

Форум — Talks

В связи с покупкой мотоцикла, хочу купить линзы. Очки под шлемом носятся нормально, но обзор недостаточен — страдает безопасность.

У меня астигматизм (не помню сколько) и близорукость около 1. Видно без очков дорожную ситуацию плохо, это я ещё на велосипеде приметил.

Нужны такие линзы, которые можно бы было носить хотя бы 2 недели кряду.

А Линукс тут при том, что Торвальдс носит очки.

Obey-Kun
()

[АААААААААА] что это за штуки?

Форум — Talks

Фото

Кто-нибудь знает, что за штуки на фото? Там внутри жидкость и фигурки. Сама эта штука — как высокий пончик, то есть внутри дырка, можно её «вывернуть». Можно перекатывать её, в руках мять. Наверное, для младенцев игрушка.

Если точнее, по форме типа тора. Что-то похожее можно получить вращением прямоугольника со скругленными углами вокруг оси, лежащей в его плоскости.

Много лет назад покупал такое в Праге.

Что это и где это можно теперь купить?

Obey-Kun
()

[ура ура] [ЖЖ] [мото] съездил в Питер

Форум — Talks

Теперь у меня есть оно.

Транзиты и документы в Москву привёз, а само чудо там осталось, на зимнем хранении.

Так-то.

P.S.: там жетоны в метро!!111

upd: ещё фото.

 

Obey-Kun
()

[C++] [STD] size_type vs int в качестве счётчика цикла итерации.

Форум — Development

Что лучше для, например, итерации по vector<int> v?

for(int i = 0; i < v.size(); ++i)
{
 //...
}
for(vector<int>::size_type i = 0; i < v.size(); ++i)
{
 //...
}

Чую, что второй вариант, но почему-то в литературе почти всегда применяется первый. Так что лучше?

 ,

Obey-Kun
()

[C++] Я правильно понимаю предназначение const_cast?

Форум — Development

У меня среди полей класса есть некоторый массив.

Этот массив заполняется только в конструкторе. Больше он не меняется.

Логично бы было сделать этот массив константным. Но его заполнение делается по сложному алгоритму, так что заполнение в списке инициализации не представляется возможным, приходится заполнять в теле конструктора.

Решение — сделать его константным, а заполнение провести, воспользовавшись const_cast для снятия константности.

Так?

 

Obey-Kun
()

[Qt] Иерархия и сигналы-слоты

Форум — Development

Вот у меня есть MainWindow. Там лежит вью, у вью есть сцена. Там же есть док, в доке куча всякой фигни.

Где-то в глубине дока может появляться виджет. Причём так как он появляться может в разных местах (или в виде диалога, или в виде встроенного), то и и пэрент у него может разниться. Этот виджет слёт сигналы, которые должна получать сцена.

Где и как идеологически правильно сигнально-слотово связывать такой виджет со сценой?

 

Obey-Kun
()

Гребнечесанию внешних событий цикл с Qt

Форум — Talks

Кто-нибудь может объяснить, зачем вообще делают вот такое: http://ru.efreedom.com/Question/1-1051333/%D0%93%D1%80%D0%B5%D0%B1%D0%BD%D0%B... ?

Obey-Kun
()

[Qt Undo Framework] Борьба с утечками памяти в QUndoCommand'ах

Форум — Development

Итак. У меня есть команды для создания и для удаления некоторого объекта из модели.

class CreateItemCommand : public QUndoCommand
{
public:
    CreateItemCommand(ItemModel *model, QUndoCommand *parent = 0):
      QUndoCommand(parent),
      m_model(model),
      m_item(new Item) {
    } 

    void redo() {
        m_model->addItem(m_item);
    }
    void undo() {
        m_model->removeItem(m_item);
    }
private:
    ItemModel *const m_model;
    Item *const m_item;
};
class RemoveItemCommand : public QUndoCommand
{
public:
    RemoveItemCommand(ItemModel *model, Item *item, QUndoCommand *parent = 0):
      QUndoCommand(parent),
      m_model(model),
      m_item(item) {
    }

    void redo() {
        m_model->removeItem(m_item);
    }
    void undo() {
        m_model->addItem(m_item);
    }
private:
    ItemModel *const m_model;
    Item *const m_item;
};

Всё бы хорошо, но такой простой подход чреват утечками памяти. Если так получилось, что на итем не ссылаются больше никакие команды (то есть они уничтожены тем или иным способом) и он не находится в ItemModel, то он занимает лишнюю память.

Qt Undo Framework устроен так, что команды в могут удаляться в одном из следующих случаев:

  1. делается QUndoStack::clear();
  2. при отменённой команде в QUndoStack добавляется некоторая другая команда;
  3. в QUndoStack установлен лимит количества команд (undoLimit) и мы вышли за его пределы.

Таким образом, команды могут удаляться находясь как в отменённом, так и в применённом состоянии. И контролировать память при этом несколько затруднительно.

В случае собственной модели решение проблемы простое: нигде не храним указатели на Item напрямую. Везде используем QSharedPointer<Item>CreateItemCommand, в RemoveItemCommand и в ItemModel). Не надо заботиться об удалении — этот итем самоудалится, если на него больше ничего не ссылается. Тут даже деструкторы писать не надо.

Всё усложняется, если мы не контролируем то, как хранятся указатели на итемы в ItemModel. Например, если ItemModel унаследован от QGraphicsScene (а там, как известно, итемы хранятся в виде обычных указателей). Как тут быть?

P.S.: по ходу, в примере из документации Qt как раз-таки допущен косяк, из-за которого будет происходить такая утечка памяти — единожды созданные итемы ни при каких условиях не удаляются. Запощу завтра в их багзиллу.

Obey-Kun
()

Talks — нетехнические разговоры о Linux/Unix?

Форум — Linux-org-ru

Да ежу понятно, что разговоры там зачастую могут быть и техническими. И в основном, далеко не о Linux/Unix. И давно уже надоело видеть для галочки созданные комментарии типа «Ну а линукс тут при том, что некоторые хлебопечки используют его в качестве операционки».

Ну и таки к чему там такое описание? Лучше бы просто «разговоры, не попадающие ни в одну в тематику прочих групп». Как-то так.

Obey-Kun
()

[c++] [дурацкий вопрос из-за взрывающегося мозга] как сделать изящно?

Форум — Development
class SetBlocksTemperatureCommand : public QUndoCommand
{
public:
    SetBlocksTemperatureCommand(const QList<Block *> &blocks, double temperature,
                               QUndoCommand *parent = 0);
    void undo();
    void redo();
    
private:
    struct BlockWithOldTemperature {
        BlockWithOldTemperature(Block *block, double new_temperature);
        void restoreTemperature() {
                m_block->m_temperature = m_old_t;
        }
        void applyTemperature() {
                m_block->m_temperature = m_new_t;
        }
    private:
        Block *const m_block;
        const double m_old_t;
        const double m_new_t; //хрень :(
    };
    QList<BlockWithOldTemperature> m_blocks;
    double m_temperature;
};

А теперь, собственно, вопрос. Поле m_new_t будет одинаково для всех экземпляров класса BlockWithOldTemperature, созданных в одном и том же экземпляре класса SetBlocksTemperatureCommand (так просто получится по реализации). Возможно ли как-то сэкономить память и не класть в каждый экземпляр BlockWithOldTemperature по лишнему double'у?

 

Obey-Kun
()

Логическое представление замкнутой несамопересекающейся полилинии, разбитой на участки

Форум — Development

Для моей программы нужно создать класс, представляющий собой замкнутую полилинию. Причём эта полилиния разбита на участки, имеющие разные цвета. Как-то так: http://rghost.ru/3353697/image.png

Нужно уметь давать какой-то цвет некоторому участку этой полилинии (при этом оно перераспределяется при необходимости): http://rghost.ru/3353832/image.png

Но совсем запутался в логике всей этой фигни.

Полилинию хранить как упорядоченный набор точек (QList<QPointF>)? Как набор линий (QList<QLineF>)? Как полигон (QPolygonF)?

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

Если мы выделяем участок большой полилинии от точки до точки, то как определить направление? Ведь линия замкнутая и идти можно в 2 стороны.

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

Возможно, я заработался, может вы что-то придумаете?

Эта фигура будет класться в QGraphicsScene, но вопрос напрямую Qt не касается.

upd: ещё нужно уметь получать для произвольной точки, лежащей на этой полилинии, цвет.

Obey-Kun
()

[Qt] Оптимизация перерисовки виджета при изменении его геометрии (resize(), move() и пр.)

Форум — Development

Создаю программу для моделирования изменения энтальпийного (температурного, грубо говоря) поля при кондуктивной теплопередачи в массиве грунтов. Можете считать, для простоты понимания, что это CAD.

Там сцена и вью. В сцене лежит много-много кирпичиков. Кирпичики надо иногда, например, выделять. Для этого используется прямоугольное выделение. Прямоугольное выделение представлено как виджет, рисующийся во вьюпорте вью.

Проблема в том, что при изменении геометрии выделения (размеров или положения этого виджета), пускается paintEvent для области, являющейся окаймляющей старую и новую геометрию. При этом перерисовываются все кирпичики, лежащие и лежавшие только что под этим виджетом. А это долго, если их много (заметно от 1500).

Можно ли как-нибудь самому задавать QRegion, в котором должен пускаться paintEvent при resize/move?

Вот скриншот (для вашего вдохновения): http://rghost.ru/3347253/image.png

 

Obey-Kun
()

[2vahvarh etc] [мото] А что бы вы взяли на первый сезон? Бюджет 160к.

Форум — Talks

Сабж. Сам склоняюсь к Honda CB750.

Ещё радует Honda Transalp 600, но оно вряд ли в бюджет влезет. Но попой чую, что рано или поздно буду ездить на тур-эндуро.

Моц берётся в первую очередь для дальняков.

Obey-Kun
()

[магазины] PrestaShop, Magento, OpenCart

Форум — Web-development

Всё ещё ищу движок для магазина. Сократил до этих трёх.

Требования — fast checkout (оформления заказа одной страницей, без регистрации), multistore (несколько магазинов на базе одного — ну скажем это позволяет сделать из одной базы магазин тарелок, магазин ножей и магазин тарелок и ножей).

Multistore в полном объёме реализовано в Magento и OpenCart. У Престы такой фичи нет, но её хотят реализовать.

Fast checkout есть во всех этих магазинах — в виде аддонов у Magento и PrestaShop и искаропки в OpenCart.

Для шаблонов в Presta используется Smarty, в OpenCart собственная система с идеологией Model-View-Control, в Magento — собственная основанная на PHP система тем.

У Presta известны проблемы с SEO. Например, один и тот же товар доступен по разным ссылкам (т.н. duplicate content): http://www.prestashop.com/demo/1-ipod-nano.html и http://www.prestashop.com/demo/music-ipods/1-ipod-nano.html.

Самая большая пользовательская база — наверное, у Magento. Вы только посмотрите — http://www.magentocommerce.com/showcase.

Вот тут нашёл мнение одного опытного человека — http://forum.opencart.com/viewtopic.php?f=24&t=18431. Ему больше нравится OpenCart. Мне тоже.

А ЛОРовцы с чем-нибудь из вышеперечисленного имели дело?

Obey-Kun
()

Что произошло за последние 4 месяца?

Форум — Talks

Был на полевых работах в солнечном городе Магадане, только что прилетел. Источников информации там не было — для примера, о показательной порке Лужкова узнал с почти что месячной задержкой.

А что в мире OSS произошло, с ЛОРом и вообще?

Obey-Kun
()

[мото] владельцы есть?

Форум — Talks

Хотел брать мотоцикл ещё в прошлом году, но в итоге вложился в велосипед и всякую мелочь. MTB — это здорово, но одной-двух покатушек в неделю достаточно, чтобы чувствовать себя хорошо. И для города горный байк всё же не очень.

Сейчас улетаю надолго в Магадан, вернусь осенью. Появятся деньги. Пойду в мотошколу. Зимой буду брать коня — так дешевле, если я правильно понимаю, да и в сезон всё равно не успею.

Расскажите, пожалуйста, о своём опыте мотоводства. Как обучались, как покупали мотоцикл, экип? Какие были уборки? Технические проблемы? Часто ли останавливают люди в синих фуражках?

Бюджет на самого коня — 100к (и ещё 50к на экип, возможно побольше, и 20к на мотошколу). Хочу классику с минимумом пластика. Требования — чтоб поменьше кушало бензина и было неприхотливым в техническом плане, а также легко ремонтируемым в случае чего. Из претедентов пока YBR 125 и CB400. Склоняюсь к последнему, но пугает его мощность. Думаю, с лошадками в мотошколе определюсь. Но что ещё есть интересного с озвученными требованиями?

Obey-Kun
()

[вело] Москвичи 190 см и выше, кому MTB? 13к р.

Форум — Talks

http://forum.velomania.ru/showthread.php?p=1285475 — вот тут продают неплохой байк за 13000 р, в магазине аналогичный будет стоить порядка 25 тыщ, а то и около 30.

Довольно хорошая вещь для кросскантри, тем более за свои деньги. Этот байк 2006 года, по-моему мнению старые байки очень хороши. Сам владелец Скотта 2000 года.

Да, а ещё у меня при закрытии MPlayer почему-то зачастую (1 раз из 3) падают иксы. Есть идеи, почему? В логах пусто.

Obey-Kun
()

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