Saturday, August 4, 2012

Хана пришла этому блогу.

И вот почему. Всякую мелкую бытовуху гораздо приятней обсуждать с френдами, чем выкладывать её в бложик, который всё равно никто не комментирует (хотя кто-то читает-таки вроде бы). IT-related посты куда разумней писать на английском, что, я собственно, и намереваюсь делать на lomereiter.wordpress.com, где пока что в основном сугубо GSoC weekly reports обитают. Что касается всяческих идей, я теперь стал на ε умнее и буду их, пожалуй, копить в голове, изыскивая пути их когда-нибудь монетизировать. Ибо нехер разбрасываться такими вещами.
(Мешанина из русского и английского тоже выглядит крайне убого. Небось отпугивает англоязычных читателей, хотя хз, не осведомлялся. Вообще, всё больше склоняюсь к мнению, что русский язык нахрен не нужен, и более того, было бы неплохо выкинуть все языки, кроме одного, на свалку истории, кому надо — пусть изучают just for fun. Мне даже похрен, английский или китайский останется — просто дико неудобно все эти языковые барьеры преодолевать, сколько ж можно уже, в век транснациональных корпораций-то?..)

Такие дела.

Thursday, June 28, 2012

унылая бабка

Пошёл я тут, понимаешь, накануне отъезда в прачечную скармливать тупому баблоприёмнику мелочь в виде 1-2-5-10-рублёвых монеток, скопившуюся за полгода. И тут хренакс - бабка, которая всей их хренью заведует, чё-то бурчать начала, типа "вот вы все сцуки, уже который по счёту такой, а я вот каждый день всю вашу мелочь в магазин отношу... а вы тут ещё смеётесь... я вас запооомню... ууу". Я даже как-то проникся её тяжкой судьбой и отошёл от изначального плана, вместо 49 монеток всего 36 закинул. Такие дела. Придётся какому-нибудь кофейному автомату на вокзале теперь монетки скармливать. Ну не в магазин же идти, правда?

Но вообще между теми же кофейными автоматами и тупым баблоприёмником из местной прачечной есть одно существенное различие. Последний я неспроста называю тупым: эта мразь не выдаёт сдачи. Так что бабку даже, наверное, можно понять :))) Но с другой стороны она ж каждый день тазы со шмотками с места на место таскает, ну что ей стоит несколько килограммов мелочи до магазина дотащить?) (Хотя в худшем случае, т.е. при обслуживании сотни человек в сутки и если каждый закидывает около 150 рублей рублёвыми монетами, по моим прикидкам где-то 50 килограммов выходит. Но такой адский флэшмоб представить трудно :D (хмм... а чо, п*здатая идея, кстати))

Thursday, May 17, 2012

[гугл] ололо

Приехали, блджад. Вот что мне Google AdSense в почте щас отобразил:
Russian Language Courses
Learn Russian at Educacentre! 20 years of teaching experience.
Это гуглу надо учиться русскому, а то их сраный translate порой ухитряется смысл предложений искажать с точностью до наоборот при переводе с русского на английский.
Да и ваще гугл -- трэш. Этот свой Drive вот кинули на рынок без поддержки linux, гниды.
(Наверно, странно это всё писать из chromium через blogger.com, да. Ну а хули, работает же, и хрен с ним.)

Tuesday, April 17, 2012

[бред] порядок вежливости

А я вот тут намедни придумал способ количественного измерения вежливости. Правда, пока что только дискретно, так что назовём это порядком вежливости PV : человеки -> натуральный ряд (начиная с нуля)

Итак, пусть мы хотим измерить PV(Вася). Познакомим Васю с неким, допустим, Петей, который скажет Васе, что никогда не обижается, а потом в один прекрасный момент... ну, например, сделает как-нибудь так, чтобы Вася за него запнулся. Если PV(Вася) > 0, Вася извинится за то, что запнулся. А если больше 1, то извинится за то, что забыл, что Петя не обижается. Ну и так далее, так что PV(Вася) будет равняться глубине рекурсии.

Возникает естественный вопрос: а можно ли это дело как-то на всю вещественную ось продолжить, по типу факториала и гамма-функции? Наверное, можно что-нибудь изощрённое придумать. Скажем, если бы были средства для удаления памяти Васи за последние N дней, эксперимент можно было бы повторить дофига раз и взять среднее. Или взвешенное среднее. Или ещё что-нибудь, неважно... %-)

Friday, March 23, 2012

о почте россии

...а знаете, это как-то неправильно, что надо физический адрес адресата указывать. Хотя кто-то, наверное, скажет — эй, ну он же адресат, хрен ли тебе не нравится?
А вот не нравится, блджад! С хрена ли адрес обязан быть физическим? Может, я хочу послать человеку анонимусу открытку и при этом не знаю его адреса и знать не хочу, потому что уважаю его анонимность. А?! А вот если бы анонимус мог зайти на сайт российской почты, получить там uuid, который на протяжении им определённого времени будет оной службою маппиться в его физический адрес, а потом сообщить сий uuid мне для использования... Эх, мечты, мечты... :(

Monday, February 13, 2012

A few words about xmlCleanupParser

Today I wrote an application which uses both libxml2 and GStreamer. It crashed for some mysterious reason which turned out to be xmlCleanupParser called twice. Damn it, it turns out that the only reason for that function to exist is getting rid of valgrind messages!

This frees up a few global variables allocated by libxml2. A few
kilobytes at most, but if they get deallocated while somehow the library
is still in use, the application is very likely to crash.
  So never call this in a library.
  In an app the only safe place to call it is close to the exit
It's still useful to make sure there is no memory leak when running a
program under valgrind or equivalent memory checker.
(http://mail.gnome.org/archives/xml/2011-April/msg00048.html)

Cool, huh?!

I think it's worthwhile to emphasize the thought:

NEVER EVER FUCKING CALL xmlCleanupParser() IN A LIBRARY!

Friday, December 9, 2011

Инфиксная запись функций (С++)

В общем-то, последующее — полный изврат и к применению не рекомендуется :)


#include <functional>

template <typename Func> struct infix_operator;
template <typename Func> infix_operator<Func>& operator|(int, infix_operator<Func>&);
template <typename Func> int operator|(const infix_operator<Func>&, int );

template <typename Func>
struct infix_operator {
    typedef infix_operator<Func> infix_t;
    int left;
    static Func func;
    friend infix_t& operator|<>(int, infix_t&);
    friend int operator|<>(const infix_t&, int);
};
template <typename Func> Func infix_operator<Func>::func;

template <typename Func>
infix_operator<Func>& operator|(int left, infix_operator<Func>& op) {
    op.left = left; return op;
}

template <typename Func>
int operator|(const infix_operator<Func>& op, int right) {
    return infix_operator<Func>::func(op.left, right);
}

static struct : infix_operator<std::plus<int>> {} PLUS;
static struct : infix_operator<std::multiplies<int>> {} TIMES;
static struct : infix_operator<std::divides<int>> {} DIV;
static struct : infix_operator<std::modulus<int>> {} MOD;

#include <iostream>
int main() {
    std::cout << (((2 |PLUS| 3) |TIMES| (36 |DIV| 6)) |MOD| 17) << std::endl;
}