Опубликовано 23 января 2009, 11:08 под Tracktor Bowling - Шаги по стеклу

Вчера самый главный холивар был работает аська или нет. У одних работает, у других нет, и те и другие готовы глотки друг другу перегрызть. Типичный холивар: обе стороны категоричны, а потому неправы, принимать можно любую, спор абсолютно бессмысленен, повод для разногласий надуман и т.п. Сотни комментов долбоёбов, да ещё с этими ебанутыми смайлами. Квип работает :-). Ай пиздец меня улыбнуло, надо же, ильхамоподелка работает. И всё это приходится читать, чтобы понять, что происходит. Я так думаю, что блокируют рюсских клиентов, которые начинают считать номера FLAP-пакетов со случайного числа, как это и предписывается в документации к OSCAR'у. В ICQ6 же область значений рандомизера несколько ограничена (в результате быдлокодинга или это такой хитрый план с миной замедленного действия), и пацаны, насниффав некоторое количество логинов, могут писать вот такие вот смешные патчи:

--- pidgin-2.5.4/libpurple/protocols/oscar/flap_connection.c.orig	2009-01-23 03:03:19.000000000 +0500
+++ pidgin-2.5.4/libpurple/protocols/oscar/flap_connection.c	2009-01-23 03:03:10.000000000 +0500
@@ -317,6 +317,8 @@
 {
 	FlapConnection *conn;
 
+	static const guint FlapLoginSeqs[] = { 5695, 23595, 23620, 23049, 0x2886, 0x2493, 23620, 23049, 2853, 17372, 1255, 1796, 1657, 13606, 1930,  23918, 31234,  30120, 0x1BEA, 0x5342, 0x30CC, 0x2294, 0x5697,0x25FA, 0x3303, 0x078A, 0x0FC5, 0x25D6, 0x26EE,0x7570, 0x7F33, 0x4E94, 0x07C9, 0x7339, 0x42A8 };
+
 	conn = g_new0(FlapConnection, 1);
 	conn->od = od;
 	conn->buffer_outgoing = purple_circ_buffer_new(0);
@@ -324,6 +326,8 @@
 	conn->subtype = -1;
 	conn->type = type;
 
+	conn->seqnum_out = FlapLoginSeqs[g_random_int_range(0, (sizeof FlapLoginSeqs) / (sizeof FlapLoginSeqs[0]))] - 1;
+
 	od->oscar_connections = g_slist_prepend(od->oscar_connections, conn);
 
 	return conn;

Ах, да, ещё одна короткая мысль, на этот раз точно в формате Twitter. Задолбали «профилактические работы» в НТК. Каждые два-три дня. Похоже на интенсивную уринотерапию и выжигание слизистой носоглотки соком чеснока во время обычного насморка, который сам пройдёт за неделю.

Опубликовано 21 января 2009, 00:11 под Психея - Бесконечный стук шагов

У видеокарты девятипиновый S-Video выход. Видимо, специально для того, чтобы сначала спаять компонентный кабель, подключить и полюбоваться на синий логотип AMI, а если переставить тюльпаны местами — то и на красный CMOS Setup, понять что сигнал-таки YC, обругать SONY, предусмотревших YcbCr, но совершенно позабывших про S-Video, порвать всё к хуям и идти искать грязный конденсатор на 470 пикофарад, чтобы получить унылое композитное дерьмо (самое интересное, что ЦАП на видеокарте в VGA и VESA-режимах вполне может выдавать композитный сигнал в яркость, но при загрузке драйверов nVidia у него эта способность мгновенно пропадает). Которое дрожит, неожиданно съезжает непонятно куда, ещё свистит что-то пиздец. По-моему на дне рождения Максимки во втором классе за Dendy и «Изумрудом» намного лучше всё было.

Ах да, при всём при этом продаются переходники VGA <=> YPbPr, реализующие сверхсекретный вариант DCC (иначе почему их нигде не купить?). Впрочем, зря я шучу, сделаю сам — сорвётся синхронизация, вылетит строчный транзистор, закоптится потолок, а я не в курсе что с телевизором, вы же знаете, я не смотрю и вообще в зал редко захожу.

(Далее)

Опубликовано 20 января 2009, 19:23

Система:

Поскольку правые части уравнений равны, можем перейти к эквивалентной системе

Раскрывая скобки и выполняя преобразования первого уравнения, получаем:

Для второго соответственно:

Приравнивая, получаем

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

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

Проверка на C:

#include <math.h>
#include <stdio.h>
#define EPSILON 10E-5

typedef struct {
    float x;
    float y;
} dot;

int getCircleEquation(dot dot1, dot dot2, dot dot3, float *x0, float *y0, float *r, int performTest)
{
    float det = (dot1.x * dot2.y + dot2.x * dot3.y + dot3.x * dot1.y
               - dot1.x * dot3.y - dot2.x * dot1.y - dot3.x * dot2.y);
    if (fabs(det) < EPSILON)
    {
        // Три точки на одной прямой, нельзя построить окружность
        return 0;
    }

    // Вычисляем ординату центра
    *y0 = (dot2.x * dot3.x * dot3.x - dot3.x * dot2.x * dot2.x +
           dot1.x * dot1.x * dot3.x - dot1.x * dot3.x * dot3.x +
           dot1.x * dot2.x * dot2.x - dot2.x * dot1.x * dot1.x +

           dot2.x * dot3.y * dot3.y - dot1.x * dot3.y * dot3.y +
           dot1.x * dot2.y * dot2.y - dot2.x * dot1.y * dot1.y +
           dot3.x * dot1.y * dot1.y - dot3.x * dot2.y * dot2.y) / (2 * det);

    // Вычисляем абциссу центра
    if (fabs(dot1.x - dot2.x) < EPSILON)
    {
        *x0 = (dot3.x * dot3.x + dot3.y * dot3.y
             - dot2.x * dot2.x - dot2.y * dot2.y
             + 2 * *y0 * dot2.y
             - 2 * *y0 * dot3.y) / (2 * (dot3.x - dot2.x));
    } else {
        *x0 = (dot2.x * dot2.x + dot2.y * dot2.y
             - dot1.x * dot1.x - dot1.y * dot1.y
             + 2 * *y0 * dot1.y
             - 2 * *y0 * dot2.y) / (2 * (dot2.x - dot1.x));
    }

    // Вычисляем радиус
    *r = sqrt(pow(dot1.x - *x0, 2) + pow(dot1.y - *y0, 2));

    // Тестирование
    if (performTest)
    {
        float r2 = sqrt(pow(dot2.x - *x0, 2) + pow(dot2.y - *y0, 2));
        float r3 = sqrt(pow(dot3.x - *x0, 2) + pow(dot3.y - *y0, 2));

        if (fabs(*r - r2) > EPSILON || fabs(*r - r3) > EPSILON || fabs(r2 - r3) > EPSILON)
        {
            printf("TEST FAIL: (%f,%f) (%f,%f) (%f,%f) => (%f %f) %f %f %f\n", dot1.x, dot1.y, dot2.x, dot2.y, dot3.x, dot3.y, *x0, *y0, *r, r2, r3);

        }
    }

    // Получили уравнение окружности
    return 1;
}

int main()
{
    float x0, y0, r;
    for (float x1 = -10.0; x1 < 10.0; x1 += 1)
    {
        for (float y1 = -10.0; y1 < 10.0; y1 += 1)
        {
            for (float x2 = -10.0; x2 < 10.0; x2 += 1)
            {
                for (float y2 = -10.0; y2 < 10.0; y2 += 1)
                {
                    for (float x3 = -10.0; x3 < 10.0; x3 += 1)
                    {
                        for (float y3 = -10.0; y3 < 10.0; y3 += 1)
                        {
                            dot dot1, dot2, dot3;
                            dot1.x = x1; dot1.y = y1;
                            dot2.x = x2; dot2.y = y2;
                            dot3.x = x3; dot3.y = y3;

                            if (!getCircleEquation(dot1, dot2, dot3, &x0, &y0, &r, 1))
                            {
                                printf("Unable to build (%f, %f) (%f, %f) (%f, %f)\n", dot1.x, dot1.y, dot2.x, dot2.y, dot3.x, dot3.y);
                            }
                        }
                    }
                }
            }
        }
    }
}
Опубликовано 15 января 2009, 23:40 под System of a Down - Soldier Side

В сентябре гордый лицеист-бюджетник, изображая крутых пацанов из школ октябрьского района, безумным голосом шутит с сибгутскими друзьями про то, что МАТАН ЭТО ПЕЗДЕЦ ЖЭСТЬ. В октябре, один раз забыв набрать в консоли bash-будильник, обнаруживает, что лекция первой парой в понедельник очень неудачно стоит, пишет bash-скрипт для отправки SMS «не отмечай меня» и начинает шутить про сон. (Далее)

Опубликовано 15 января 2009, 18:30 под Unknown Error - Shadows

Теперь наконец-то за сохранность данных на сервере можно не беспокоиться. Достал с балкона Pentium-II, поставил туда винт на 200 гигабайт, теперь кладовка выглядит вот так: (Далее)

Опубликовано 9 января 2009, 10:02 под Nirvana - Polly

Зимний сезон таймлапса окончен. Просто как-то неожиданно кончилось место на харде с фотографиями, он же /, в результате httpd не отвечает на запросы, по ssh не зайти — ну и ладно, нафотали достаточно, сейчас бы всё это смонтировать. (Далее)

Теги
1nsk C++ E-Business GNU/GPL-софт HTML/CSS ICQ IDE KDE last.fm Linux Linuxnsk Microsoft Motivator MySQL P2P Party PCI PHP Python Qt SATA SEO Sibnet thelogin.ru Timelapse USB VHDL Web 2.0 Webstream Windows Wireless А я говорил! Авто Админ Алкоголь Аниме Атмосфера Аудио Безобразие Бизнес Блоги Боты Бред Быт Велосипед Весна Вечер Взлом Видеозахват Винил Винтаж Вконтакте Вода Воспоминания Гетто Гламур Гопота Горский Графити Грузовики Дача Девушки Деньги Дизайн Домофон Драки Европа Еда Железо Затулинка Зима Игрушки Игры Идея Интересно Интернет Исследование История Казань Карикатуры Квартира Класс Концерты Коромшук Коты КПК Красиво Криминал Крыши Курение Лето Литература Лицей НГТУ Лохи Магнитофоны Маркса Мат Математика Машинный перевод Мегафон Менты Метро Мечты Мифы Мне стыдно Мобайл Можга Москва МТС Музыка Мультикассы Мультфильмы Мы помним Надписи Наука Недвижимость Непоняятно Новосибирск Ночь Обидно Обман Образование Омск Опечатки Орфография Осень Парк Пиратство Плохо Погода Поезда Политика Помойка Праздники Презрение Природа Провайдеры Программирование Протест Психология Путешествия Радиотехника Растения Реклама Религия Ремонт Рисунки Руины Рэп Салют Серверы Сервис Сериалы Скриншоты Смешно СМИ Снег Собаки Совет Софт Спам Спасём Россию Стоп-ляп Страх Стройка Студяга Танцы ТВ Трамваи Транс Транспорт Уважаю Ужас Умный дом Утро Филдрепорты Философия Форум ФПМИ Франция Хикки Хостинг Цитатник Школа 208 ЭГ Эксперимент Юго-Западный