Через тернии к деньгам и лицензии

August 20th, 2009 Begemot

Никогда не думал что такое случится.
Но иногда случаются странности, недавно одна фирма захотела купить 5 лицензий, спросили quote, спросили W-9. А потом говорят – что платить могут только напрямую мне. Типа покупать через Плимус или Авангейт им юридический отдел не позволяет…

Что интересно эта же фирма, в свое время, много лет назад у меня прекрасно покупала через плимус. Сначала покупали просто люди – было четко видно как программа распространяется по организации, потом пару раз админы по нескольку лицензий. А теперь видимо у них сменились юр. отдел и запрещает им покупать через регистраторов:)

В общем спустя месяца полтора переписки пришел мне чек Feedex’om. Имя на конверте перевранно, а на самом чеке отсутствует вообще, есть только название “компании”. Был уверен, что не смогу обналичить, но вчера все таки удалось сдать в Приват после уговоров (в других банках не приняли), хотя сказали что могут и тут завернуть. Теперь посмотрим что из этого выйдет в итоге.

А все-таки странно чего это вдруг серьозная контора не может купить через регистратора…


О безопасном приведении типов

August 3rd, 2009 Begemot

Семь раз отмерь – один отрежь (с)

Ну или вернее о той ерунде которую я сегодня написал.

Задача была такая: подменяем оконную процедуру, при получении определенного сообщения берем wParam, преобразуем к указателю на нужный класс и вызываем функцию член. Сразу представили ужасы, ждущие пользователя если нам придет это сообщение (откуда-нибудь), но без указателя на наш класс. А значит надо, как-то проверять. Как?

Первое что приходит в голову – dynamic_cast<>(), читаем что бы освежить запас мудрости:

Безопасное приведение по иерархии наследования, в том числе и для виртуального наследования.
dynamic_cast(base_class_ptr_expr)
Используется RTTI (Runtime Type Information), чтобы привести один указатель на объект класса к другому указателю на объект класса. Классы должны быть полиморфными, то есть в базовом классе должна быть хотя бы одна виртуальная функция. Если эти условие не соблюдено, ошибка возникнет на этапе компиляции. Если приведение невозможно, то об этом станет ясно только на этапе выполнения программы и будет возвращен NULL.
dynamic_cast(base_class_ref_expr)
Работа со ссылками происходит почти как с указателями, но в случае ошибки во время исполнения будет выброшено исключение bad_cast.

Спасибо Алёне, там же читаем и про остальные возможности приведения типов в c++.

dynamic_cast<>() приведение конечно безопасное, но wParam в XXX* преобразовывать оно разумеется не хочет, не компилится. Выкрутился следующим образом, благо у меня был базовый класс:

XXXBase  * t = reinterpret_cast<XXXBase*>(wParam);
XXX * p = NULL;
try
{
   p = dynamic_cast<XXX>(t);
}
catch(...) {}

if (p)
{
// all ok...
}

Абсолютно не представляю насколько это идеологически правильно, переносимо или хорошо, скорее всего неправильно, криво и непереносимо:). Но у меня работает, почему dymamic_cast кидает исключение вместо того что бы вернуть NULL, я правда не понимаю, но практика (Visual Studio 2008) показывает что так и есть.

Тестировалось передачей 0 в качестве wParam и заменой первой строчки на

int * tt = new int(4);
XXXBase  * t = reinterpret_cast<XXXBase>(tt);

Все ок – исключение ловится, замалчивается, указатель остается нулевой.


Как обезопасить свой adsense аккаунт

July 22nd, 2009 Begemot

Сегодня мелькнул рецепт в сврус, спасибо Олегу Афонину. И я как порядочный человек, в полном соответствии с концепцией GTD или какой другой системы, решил что раз это можно сделать за 5 минут, то зачем же отладывать?

В двух словах в Adsense предусмотрен механизм защиты от подстав со стороны third-party товарищей или сайтов – можно разрешить показ объявлений только на ваших проверенных сайтах. Таким образом если кто-то тупо заимствует ваш контент\сайт вместе с кодом адсенса и крутит на “плохих” сайтах – вы уже как бы и не причем.

В общем логинимся в свой аккаунт адсенс, дальше AdSense Setup -> Allowed Sites (Настройка Adsense -> Разрешенные сайты). Выбираем “Only allow certain sites to show ads for my account” (“Разрешить только определенным сайтам показывать объявления для моего аккаунта”) и вбиваем в текстовое поле список всех своих сайтов.

Тут главное ничего не забыть 🙂 Потому как если сайт забудете – объявления показываться будут, но засчитаться вам нет. Ну и второе не забыть об этом при создании нового сайта.

И помните это занимает меньше 10 минут!
Почему 10 а не 5? Потому что пришлось пройтись по всем ftp и заглянуть к регистратору чтобы быть уверенным что ничего не забыл. Заодно и auto-renew отключил для пары сайтов.

Posted in Шаровароварение
Comments Off on Как обезопасить свой adsense аккаунт


Старый домен никому не нужен?

July 19th, 2009 Begemot

Чтобы купить что-нибудь ненужное, нужно

сначала продать что-нибудь ненужное (с)

Никому старый домен не нужен, для всяких разных дел ?:)

Есть http://small-helpers.com/. ПР =  0 (упал с 4ки по-моему), народу примерно 300 в месяц, денег нету, но зато возраст 3 года:) Если кому надо, отдам за маленькую постоянную ссылку в  футере, единственное условие не для дорвеев и прочей нечисти.


Рутина, вирусы и автосабмит

July 15th, 2009 Begemot

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

Comodo scaner нашел сотню подозрительных объектов и ничего серьезного, cureit как назло лежит. Вот сижу думаю, чо делать. Снести бы все нафиг и 7ку поставить, вот это было бы правильно – да времени нету.


Следите и воздастся вам

July 11th, 2009 Begemot

Народ не в курсе, что на свете есть нейтрино,

И дуализм корпускулярно-волновой (c)

Недавно google reader принес мне в клюве полезную запись, повествующую, о том как использовать поиск твиттера для отслеживания упоминаний о своем продукте. Я сразу добавил, теперь отслеживаю, иногда упоминают:) И вы тоже можете

http://search.twitter.com/search.atom?q=product+name

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

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

http://blogs.yandex.ru/search.rss?text=product

все туда же, в rss читалку.

P.S. если вдруг тут есть севастопольцы или крымчане, или просто сочуствующие – выскажитесь про Севастополь.


глупый вечерний лог

July 9th, 2009 Begemot

Пришел с работы усталый

Пришло письмо от юзера, по дохлому продукту

Письмо бессмысленное, типа “круто, всегда хотел учить английский, инновации это хорошо”

Вопроса нет, что отвечать неясно, хотел забить

Решил что все-таки не стоит, написал “спасибо за комментарий”

Через 20 минут ордер.

Ляпота.

Через 30 минут написали с работы, надо сроооочно исправить баг, осваивал vnc. Надо линять нафик.


Шароварка в Ахтырке

June 25th, 2009 Begemot

Первая традиционная восточно-украинская шароварка в Ахтырке. Хотя шароваркой это назвать трудно – шаровару почти не обсуждали, тайн не открывали:) Все было ближе простой к встречи компанией на природе с шашлыками…

Приехали, посидели, пообщались, выпили, закусили, покупались на речке – красота:)

Больше рассказывать особо нечего, зато есть много фотографий, фотографировали все кому нелень – Карполан, Максим Рева, Сергей Кравченко и Вячеслав Колдовский, ( оказывается уже все фотки залили на сайте swrus’a)

Особое спасибо Сергею за организацию мероприятия и Жене за организацию неорганизованных.


TrialPay жжот

June 21st, 2009 Begemot

Получил ордер с trialpay’a, мне перепало $36 – двойная стоимость обычной лицензии, радует:)


Кто первый встал того и тапки

June 16th, 2009 Begemot

Клиентская оптимизация – Скорость имеет значение – О влиянии скорости загрузки страниц и реакции посетителей. Конечно модель использования пользователем гугла или амазона весьма отличается, от модели работы с простым шароварным сайтом, но тем не менее я думаю общий вывод – чем медленнее тем хуже, все равно подходит. К тому же вроде и сам гугл подтверждает – Page Load Time As Future Factor in AdWords Quality Score.

Вот тут можно проверить скорость загрузки своего сайта.

Если вдруг чего-то там у вас не так, то профессионалы говорят, что все можно исправить – Книга «Разгони свой сайт», доступна для как для покупки так и для бесплатного скачивания (что приятно, хотя сам пока не читал).

 

Пара ссылок: