LINUX.ORG.RU

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

 

мотосезон

Форум — Talks

Привет всем! Скоро открытие нового мотосезона! Поздравляю тех, кто уже открыл! :)

Напоминалка автомобилистам — мотоцикл всё так же незаметен на дороге, внимательней смотрите в зеркала перед манёврами. Мотоциклисты, помните — вас на дороге никто не видит и не слышит, ваша жизнь только в ваших руках.

Obey-Kun
()

[beatles] Eleonor Rigby — женский кавер

Форум — Talks

Народ, кто-нибудь может подсказать имя исполнителя? Слышал как-то кавер на эту песню от женщины. Что запомнилось — стервозный панконутый голос. Плюс, первые секунды она распевалась.

Obey-Kun
()

Ebay и ставка в последние секунды (snipping)

Форум — Talks

Очень нужно выиграть два лота (костюм BMW Rallye Pro 2). С ебэем дела не имел. Кто-нибудь имел дело с автоматизацией ставки в последние секунды? Или просто с проведением ставки в последние секунды.

Obey-Kun
()

«Behind the headlines». Как переводится?

Форум — Talks

«За кулисами»?

Obey-Kun
()

[Qt] Пара ссылок на актуальные темы.

Форум — Talks

1) Qt и Android. Живёт и развивается: http://labs.qt.nokia.com/2011/02/28/necessitas/

2) Qt и роман Nokia c MS. http://habrahabr.ru/blogs/qt_software/114077/

Написанное по второй ссылке радует. А ведь правда, разработка Qt после поглощения Нокией Троллей выглядела несколько суматошной.

 

Obey-Kun
()

Вышли QtCreator 2.1.0, Qt 4.7.2

Форум — Talks

Такие дела. Помимо прочего, теперь Quick официально поддерживается.

Obey-Kun
()

[Qt] Накидайте скриншотов одного приложения/окна/диалога под разными платформами

Форум — Talks

Тут один товарищ утверждает, что приложения на wxwidgets на разных платформах смотрятся роднее, чем приложения на Qt. А особенно под виндой. Накидайте скриншотов, опровергающих это, будьте добры.

 

Obey-Kun
()

Продолжение «Автор программы под GPLv2 нарушает GPLv2». Признавайтесь, кто?

Форум — Talks

Либа того автора добавлена в антивирусные базы как вирус — http://sharewareplaza.com/klen-library-virus_92808.html.

Признавайтесь, кто? Я тут не при чём, честно.

Да, это продолжение темы.

Obey-Kun
()

[C++] [компиляторы] Множественное наследование

Форум — Development
#include <iostream>
using namespace std;

class MyBase1
{
public:
    MyBase1() {
        cout << "Con1\t" << this << endl;
    }
    MyBase1(const MyBase1 &other) {
        cout << "CCon1\t" << this << endl;
    }
    ~MyBase1() {
        cout << "Des1\t" << this << endl;
    }
    
};

class MyBase2
{
public:
    MyBase2() {
        cout << "Con2\t" << this <<  endl;
    }
    MyBase2(const MyBase2 &other) {
        cout << "CCon2\t" << this << endl;
    }
    ~MyBase2() {
        cout << "Des2\t" << this << endl;
    }
};

class MyBase12 : public MyBase1, MyBase2
{
public:
    MyBase12() {
        cout << "Con12\t" << this <<  endl;
    }
    MyBase12(const MyBase12 &other) {
        cout << "CCon12\t" << this << endl;
    }
    ~MyBase12() {
        cout << "Des12\t" << this << endl;
    }
};

class MySuperClass : public MyBase12
{
public:
    MySuperClass() {
        cout << "ConS\t" << this << endl;
    }
    MySuperClass(const MySuperClass &other) {
        cout << "CConS\t" << this << endl;
    }
    ~MySuperClass() {
        cout << "DesS\t" << this << endl;
    }
};

void func(MyBase12 r)
{
    cout << "COPY:\t" << &r <<  endl;
}

int main()
{
    const char *delim = "*****************\n";
    MySuperClass o;
    cout << "ORIG:\t" << &o << endl << delim;
    func(o);
    cout << delim;
}

gcc версия 4.5.2 20110127 (prerelease) (GCC) x86_64

Con1    0x7fff30141e66
Con2    0x7fff30141e66
Con12   0x7fff30141e66
ConS    0x7fff30141e66
ORIG:   0x7fff30141e66
*****************
Con1    0x7fff30141e67
Con2    0x7fff30141e67
CCon12  0x7fff30141e67
COPY:   0x7fff30141e67
Des12   0x7fff30141e67
Des2    0x7fff30141e67
Des1    0x7fff30141e67
*****************
DesS    0x7fff30141e66
Des12   0x7fff30141e66
Des2    0x7fff30141e66
Des1    0x7fff30141e66
Тут всё ожидаемо.

MSVC++ 2010 Express

Con1    0012FF4B
Con2    0012FF4C
Con12   0012FF4B
ConS    0012FF4B
ORIG:   0012FF4B
*****************
Con1    0012FE60
Con2    0012FE61
CCon12  0012FE60
COPY:   0012FE60
Des12   0012FE60
Des2    0012FE61
Des1    0012FE60
*****************
DesS    0012FF4B
Des12   0012FF4B
Des2    0012FF4C
Des1    0012FF4B
А тут обратите внимание на адреса объектов второго класса. Почему так?

 

Obey-Kun
()

Регистрация программы для ЭВМ в Роспатенте. GPL. Топик 2.

Форум — Talks

В предыдущем топике на вопрос о том, можно ли в России регистрировать свою программу в Роспатенте, если её планируется потом распространять под GPL, ответили, что можно. А теперь предоставляю вам мнение специалиста.

Юрист

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

Я

Хм, впервые от Вас это услышал. Где можно про это почитать? Я всегда думал, что регистрировать ПО в Роспатенте нужно просто для того, чтобы в случае чего можно бы было легко доказать своё авторство. А исключительное оно или нет — не важно. Я ошибался?

Скажем, я автор некоторой программы, распространяющейся под GPL. Некоторый человек нарушил права и начал эту программу распространять, закрыв исходники (что нарушает лицензию) или, например, удалив упоминания о моём авторстве. Тут ведь доказывать государству, что именно я являюсь автором, будет сложнее?

Юрист

Если бы все можно было открыть и прочитать, не было бы потребности в специалистах, все открывали и смотрели бы. По заданому вами вопросу требуется системное толкование ГК совместно с условиями GPL. Для того, чтобы ответить на этот вопрос, надо уходить в теорию. Для начала, необходимо разделить понятие «авторство» на две его составляющие: правовую и обыденную.

Что касается обыденного понимания авторства, то есть как определенной связи между субъектом и созданным им произведением, то тут вы совершенно правы. В обыденном понимании, создав программу и лицензировав ее под GPL, вы безусловно являетесь ее автором. Как минимум, вы можете этим гордиться.

Правовой аспект авторства существенно сложнее. Начнем с того, что гражданское законодательство РФ до сих пор не содержит такого правового понятия как «открытая лицензия». Регистрация права авторства, т.е. по-сути, перевод права из разряда идеальных в разряд юридических, влечет определенный комплекс правовых мер.

Согласно ст. 1255 ГК РФ автору произведения принадлежат:

  • исключительное право на произведение
  • право авторства
  • право автора на имя
  • право на неприкосновенность произведения
  • право на обнародование произведения

В силу ст. 1265 ГК РФ правом авторства является право признаваться автором произведения, а правом автора на имя - право использовать или разрешать использование произведения под своим именем, под псевдонимом, без указания имени. Эти права неотчуждаемы и непередаваемы. Отказ от этих прав ничтожен в силу закона.

С. 1266 ГК РФ презюмирует право автора требовать отказ от внесения изменений в его произведение без согласия автора.

Таким образом, как вы сами видите, положения российского законодательства совершенно не применимы к тем свободам, которые дает GPL. Как следствие, регистрация права авторства на программу в уполномоченном органе, неизбежно выводит ее из сферы GPL на территории РФ. При этом, в других юрисдикциях, та же самая программа сможет без дефектов распространяться по GPL.

P.S. Все вышесказанное является моим профессиональным мнением, которое я никому не навязываю и не предлагаю им руководствоваться. Я встречал в литературе различные точки зрения, в том числе и прямо противоположные, но на мой взгляд, они неверны.

Вот такая фигня, товарищи.

Obey-Kun
()

Как пишете списки инициализации?

Форум — Development

Вариант 1:

MainWidget::MainWidget(QWidget *parent)
    : QWidget(parent)
    , m_polygon1()
    , m_polygon2()
    , m_some_stuff("We have very very very very very long line here")
{
    // ...
}

Вариант 2:

MainWidget::MainWidget(QWidget *parent)
    : QWidget(parent),
    m_polygon1(),
    m_polygon2(),
    m_some_stuff("We have very very very very very long line here")
{
    // ...
}

Вариант 3:

MainWidget::MainWidget(QWidget *parent):
    QWidget(parent),
    m_polygon1(),
    m_polygon2(),
    m_some_stuff("We have very very very very very long line here")
{
    // ...
}

Или как-то иначе? Просто понял, что даже в тех проектах, где принято операторы делать в новой строке, то есть

if(isSomeLongLongLongLongLongOkGuys("We have very very long line here")
   && isOtherLongLongLongHeyThere()) {
    // ...
}
так вот, даже в этих проектах пользуются вариантом 2. Как у вас в проекте принято?

Obey-Kun
()

[icq][вирт секс] что за фигня?

Форум — Talks

Впервые за год вошёл в ICQ. Через полчаса после смены статуса на «онлайн» стали стучаться девушки с предложениями виртуального секса, «познакомиться», «поболтать».

Что за фигня? Явно не боты, ведут нормальную беседу. Сразу их посылаю.

 

Obey-Kun
()

Мыть мясо

Форум — Talks

Нужно ли мыть мясо перед его приготовлением?

Погуглил, 95% людей говорят, что мыть надо, но изредка встречаются высказывания вроде: «Мыть мясо нельзя. С водой микробы могут просочиться во внутренние ткани куска. Те, что снаружи, погибнут во время тепловой обработки.»

Так мыть или нет?

Obey-Kun
()

Автор программы под GPLv2 нарушает GPLv2

Форум — Talks

Нашёл одну интересную личность, которая распространяет свои программы (бинарники) под GPLv2, но при этом не предоставляет доступ к исходникам. Точнее, предоставляет, но при выполнении нескольких условий (одно из которых — «вы должны пользоваться моей программой не менее полугода»).

Может мне кто-нибудь объяснить его логику?

Obey-Kun
()

[flash] На тему эволюции машинок. Разработка способа передвижения набора узлов, костей и мышц.

Форум — Talks

 

Obey-Kun
()

Дизайнеры форм. Использовать или нет?

Форум — Development

Вот посмотрел я сейчас несколько первых попавшихся софтин из KDE — все по дизайну простые донельзя. У себя .ui не использую, всё пишу руками в коде самой программы.

В каких случаях может понадобиться использования форм? Какие тут плюсы и минусы?

Да и вообще, Qt Designer я не осилил. При написании гуя в коде чувствую полный контроль. Или же Ъ пишут .ui—файлы руками? Или Ъ их таки вообще не используют?

Obey-Kun
()

Когда писать модульные тесты (unit tests)?

Форум — Development

Когда в жизни проекта наступает момент, в который необходимо заняться созданием юнит-тестов? Когда проект вырос в полноценную софтину/либу, выложен в сеть и далее планируется совершенствование? Или когда API проекта перестаёт меняться по 10 раз на дню? А может быть, когда проект переваливает за 9000 строк чистого кода? Какого критерия придерживаетесь вы?

В моём сейчас 10000 строк, но он пока не завершён. Необходимость юнит-тестов ещё не чувствуется, но скорей потому, что я повсеместно повтыкал ассерты.

Obey-Kun
()

Интересные игрушки

Форум — Talks

http://www.contrib.andrew.cmu.edu/~gchin/ — та, что на Хаскеле, любопытная.

Obey-Kun
()

[C] (j>1 && j<-1) равно true

Форум — Development
#include <stdio.h>

int main()
{
    unsigned j = 12;
    printf("j > -1: %i\n", j > -1);
    printf("j < -1: %i\n", j < -1);
    printf("j >  1: %i\n", j > 1);
}
j > -1: 0
j < -1: 1
j >  1: 1

Естественно, компилятор ругается на сравнение знакового и беззнакового целых выражений. Но в чём глубинный смысл результата?

Я сначала было подумал, что это из-за представления unsigned. Но после увеличения j на INT_MAX результат не поменялся.

 

Obey-Kun
()

Нечёткие (fuzzy) операции над полигонами. Посоветуйте либу.

Форум — Development

Нужно проводить сложение полигонов. Сейчас для этого использую QPainterPath с его unite, но по-хорошему оно не для того предназначено. Да и не прокатило оно мне. А не прокатило вот почему...

Представьте ситуацию. Есть два полигона. Они соприкасаются, то есть сторона одного из них лежит на стороне другого. Мне надо, чтобы при сложении получился один полигон. Посмотрите на картинку: http://img141.imageshack.us/img141/2749/fuzzyunion.png. Видите там точки p1 и p2? Ведь в компьютерном представлении они могут лежать немного вне полигона, т.е. при сложении может получиться 2 различных полигона. А надо-то один.

То есть, нужна либа, которая учитывала бы подобные проблемы с числами с плавающей запятой.

Библиотек для булёвых операций с полигонами много: GPC, clipper, boost::polygon и т.п. Но пробовать все воистину лень. Кто-нибудь может подсказать ту, где такое точно сработает? Или назвать те, где такое не работает.

Obey-Kun
()

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