Есть такая штука -- Google summer of code. Проект от гугл в рамках, которого студенты пишут функционал опен-сурс проектов под надзором менторов за деньги(5000$ за 3 месяца).
Проекты попадаются очень интересные. Правда я за свою студенческую жизнь ни разу не прошел со своим proposal туда, а подавал я в следующие проекты SimpleCV и OpenCV , видимо зацепило меня в свое время компьютерное зрение. Опыт был для меня уникальный, писать какое-то предложение, на английском, обсуждать его с кем-то...интересно, но судя по результатам -- я не справился. Забавно, что одного из менторов, я потом нашел в ретвите кого-то из друзей. Фолловьте, попадаются интересные вещи у нее.
А кто то из читателей участвовал? Кто проходил? Как все прошло?
Tuesday, 23 June 2015
Friday, 19 June 2015
Еще пара прОмок от Aviasales
Как то я писал о том как не надо устраивать конкурсы. Думаю, что обоюдные выводы были сделаны. А вот некоторое время назад, ленту заполонили репосты вот такого вида
Ну вы их видели =) Ну и я по привычке решил глянуть, что там стоит за конкурсом.
Логика дизайнеров конкурса была такая:
1) Проходит тест
2) Получает результат
3) Предлагается расшарить результат
4) После выбора социальной сети открывается окошко для шаринга
5) По закрытию окошка, выпадает штука, где просят вбить почту, для участия в конкурсе
Пункт 4 и способы учета и накручивания ссылок мы проходили в прошлый раз. А пункт 5 выглядел новым и необычным. Исследуем!
Формируем curl запрос
Узнаем, что вариантов ответа не очень много: все ок, такая почта уже была, это не корректная почта. И при этом не требуется никаких дополнительных заголовков! Красота!
Участвующие в конкурсе почты где-то хранятся и для каждой отсылается письмо. А что если поменять регистр первого символа?!(gmail не учитывает регистр) Все ок, письмо пришло. А что если вставить точку разделитель?!(gmail и их игнорирует) Все ок!!! Кайфуем!
То есть для одной почты длиной N(для простоты возьмем вариант только с буквами), мы можем cгенерировать 2^(2*N - 1) вариантов почты. Что много! Потенциально можно забить их почтовый пул и потенциально выиграть их всех))
Потом пошли фиксы. Стали учитывать регистр, точки, сделали обязательными какие-то куки. Но все закрыть не смогли, оставлю это на сладкое =)
Так что ребята, проектируйте тщательнее или заказывайте у меня аудит ваших промо-акций %)
P.S. Ну а еще такая штука была в соседней промке с Санкт-Петербургом.
Участвующие в конкурсе почты где-то хранятся и для каждой отсылается письмо. А что если поменять регистр первого символа?!(gmail не учитывает регистр) Все ок, письмо пришло. А что если вставить точку разделитель?!(gmail и их игнорирует) Все ок!!! Кайфуем!
То есть для одной почты длиной N(для простоты возьмем вариант только с буквами), мы можем cгенерировать 2^(2*N - 1) вариантов почты. Что много! Потенциально можно забить их почтовый пул и потенциально выиграть их всех))
Потом пошли фиксы. Стали учитывать регистр, точки, сделали обязательными какие-то куки. Но все закрыть не смогли, оставлю это на сладкое =)
Так что ребята, проектируйте тщательнее или заказывайте у меня аудит ваших промо-акций %)
P.S. Ну а еще такая штука была в соседней промке с Санкт-Петербургом.
Thursday, 19 March 2015
Google Code Project shutting down: namba-serials-downloader и diesel-api
Вот и пришел конец славному репозиторию на Google Сode. В свое время я там хостил два домашних проектика, в реальности простенькие скрипты. Но воспоминания о них греют мне душу ламповым теплом. Поэтому я о них немножко расскажу, чтобы небыли забыты.
namba-serials-downloader
Как следует из названия - это штука для скачивания сериалов с намбы, когда то работала и позволяла смотреть мне сериалы, на моем клевеньком Nokia 5500. Вот это действительно лампово %) Все искомые паттерны вынесены в настройки, так что это оставляет шанс на работу скрипта и сейчас...наверняка с небольшими изменениями. Правда в эпоху скоростного интернета и ts.kg вряд ли это кому то нужно =)
Там даже в вике есть инструкция по пользованию =)
diesel-api
А эту штуку я использую до сих пор. С помощью нее я когда-тограбил корованы брутил пароли(набрутил пару тысяч пар, делая максимум 6 штук на логин), случайно устанавливал рекорд посещаемости, удалял массово сообщения и накручивал рейтинги себе и знакомым %)
В этом скрипте есть все: магические строки, примитивное кэширование, спагетти код! Но это все работает и приносит кучу фана! Пользуйтесь на здоровье!
Где-то должен быть еще метод для посылки личных сообщений, когда мне было не лень оповещать людей с небезопасными паролями, но он где-то потерялся.
Вообщем в связи c закрытием репозитория на Гугл коде, я пользуюсь встроенным механизмом переезда и переношу это все на github. Форкайте, чекауйте, пользуйтесь на здоровье!
PS А еще там была такая забавная штука, как evolution-mutation, за авторством Олега Пузанова и Андрея Похилько. Тоже забавно с ней поиграться :)
namba-serials-downloader
Как следует из названия - это штука для скачивания сериалов с намбы, когда то работала и позволяла смотреть мне сериалы, на моем клевеньком Nokia 5500. Вот это действительно лампово %) Все искомые паттерны вынесены в настройки, так что это оставляет шанс на работу скрипта и сейчас...наверняка с небольшими изменениями. Правда в эпоху скоростного интернета и ts.kg вряд ли это кому то нужно =)
Там даже в вике есть инструкция по пользованию =)
diesel-api
А эту штуку я использую до сих пор. С помощью нее я когда-то
В этом скрипте есть все: магические строки, примитивное кэширование, спагетти код! Но это все работает и приносит кучу фана! Пользуйтесь на здоровье!
Где-то должен быть еще метод для посылки личных сообщений, когда мне было не лень оповещать людей с небезопасными паролями, но он где-то потерялся.
Вообщем в связи c закрытием репозитория на Гугл коде, я пользуюсь встроенным механизмом переезда и переношу это все на github. Форкайте, чекауйте, пользуйтесь на здоровье!
PS А еще там была такая забавная штука, как evolution-mutation, за авторством Олега Пузанова и Андрея Похилько. Тоже забавно с ней поиграться :)
Sunday, 15 March 2015
Quicksort partitions
Зарубился я тут в сортировки. И даже отгреб от этого головную боль.
После того как написал Ламуто стало ясно, что он безбожно медленный. Решил проверить насколько. Вот оригинал:
Видно, что он плохо себя ведет на отсортированном массиве, постоянно вызывает swap на один и тот же индекс. Улучшим:
А теперь сравним с Хоаром:
А теперь глянем на время работы. Первый параметр размер проверяемого массива, второй seed для генератора случайного массива:
Вот так вот. То ли Ламуто - ламото, то ли я ламото -- криво заимплементил %)
После того как написал Ламуто стало ясно, что он безбожно медленный. Решил проверить насколько. Вот оригинал:
Видно, что он плохо себя ведет на отсортированном массиве, постоянно вызывает swap на один и тот же индекс. Улучшим:
А теперь сравним с Хоаром:
А теперь глянем на время работы. Первый параметр размер проверяемого массива, второй seed для генератора случайного массива:
Вот так вот. То ли Ламуто - ламото, то ли я ламото -- криво заимплементил %)
Friday, 20 February 2015
Све-то-фор!
Вот Svetofor.kg до сегодняшнего дня присылал спам на почту, и предлагал отписаться во такой ссылкой:
http://svetofor.kg/index.php?dispatch=newsletters.unsubscribe&list_id=1&s_id=6920&key=
и оно конечно же не отписывалось!
http://svetofor.kg/index.php?dispatch=newsletters.unsubscribe&list_id=1&s_id=6920&key=
и оно конечно же не отписывалось!
и стоило мне сделать вот так
и следующее письмо пришло с такой вот ссылкой:
http://svetofor.kg/index.php?dispatch=newsletters.unsubscribe&list_id=1&s_id=6920&key=ea66f147f9dcbbe2049c7d4d438da2b2Благодарю за своевременное реагирование! %))
Update
А дальше были попытки отписать всех от назойливой рекламы. Декрипт хэша не удался. Хэш два раза не работает.
Стал смотреть на чем базируется магазин. Оказалось на http://www.cs-cart.com/. Загуглил -- нашел модуль ответственный за рассылки и формирование. Оказалось что формируются случайные ключи на каждую рассылку для каждого пользователя. Пришлось смирится и бросить это все :)
Wednesday, 10 December 2014
Internet VPN
А помните такое время, когда в домашних сетях внешний трафик был дорогой, а внутренний уже безлимитный?! Вот тогда и появились всякие VPN-ки, которые позволяли экономить на внешнем трафике.
На всей этой волне хотел сам открыть свой VPN с лаптой и барышнями. Даже окупаемо было..от двух человек вроде и это в реалиях кыргызского хостинга. Ведь вся схема вертелась на покупке хостинга с безлимитным внешним трафиком и использованием этого сервера, как прокси сервера... Благо быстрый и доступный Интернет пришел раньше, чем я это реализовал %)
P.S. На корректность сетевых терминов вообще не претендую. Так что поправляйте меня)
Tuesday, 23 September 2014
Dreamspot или как не надо устраивать конкурсы
Предыстория
Ребятки из Hotellook и Quiksilver решили провести конкурс и подарить победителям крутые призы. Но провести конкурс нормально на мой взгляд у них не вышло...
Механика конкурса
Много времени было потрачено на изучение механики конкурса: реализации основной части, защиты от читинга, нахождению ошибок и слежке за изменениями.
Механика выбрана довольно стандартная, но с изысками в виде 4 социальных сетей.
Логика устроителей была такая:
Ребятки из Hotellook и Quiksilver решили провести конкурс и подарить победителям крутые призы. Но провести конкурс нормально на мой взгляд у них не вышло...
Механика конкурса
Много времени было потрачено на изучение механики конкурса: реализации основной части, защиты от читинга, нахождению ошибок и слежке за изменениями.
Механика выбрана довольно стандартная, но с изысками в виде 4 социальных сетей.
Логика устроителей была такая:
- Человек с девственными куками заходит на http://hotellook.ru/promo/dreamspot и мы его обзываем в виде Прилагательное + существительное(животное). Привязываем это существительное к 4 битному идентификатору(Id). Его домашней страничкой становится http://hotellook.ru/promo/dreamspot/users/Id.
- Человек привязывает свой профиль к одной(или нескольким?) социальным сетям, и его страничка обретает нормальное имя и аватарку из соц сети.
- Далее он выбирает на карте спот и шарит в его в соц-сетях.
- Его друзья шарят его линк в соц сети.
- В конце конкурса организатор смотрит на число репостов в своей системе и на число в профиле участника. Если плюс-минус совпадают и он первый - то ок, посылай его в СочИ, на казенные харчи!
Техническая часть начисления баллов была такова:
- При репосте линка с их странички, открывалось окно для репоста(твита). По закрытию окна, дергалось API их системы и начислялись баллы.
curl "http://hotellook.ru/promo/dreamspot/api/social_activities" -H "Cookie: uuid=1114cfd9" --data "spot_id=96&network_type=t" --compressed
, где spot_id это Id спота, которых 63 штуки и которые можно получать в виде JSON файла, а network_type это тип соц сети, всего у нас 4 варианта(t, v, f, g).
Вначале конкурса вроде можно было просто надергать их API-шки и сидеть с миллионом баллов %) - Вторая часть это процесс который раз в час дергает API социальных сетей и смотрит, сколько репостов данного линка было сделано. И корректирует количество репостов в системе в соответствии с этими данными.
Но если бы все было так просто :)
Ошибки и ошибочные суждения
Самой главной ошибкой на мой взгляд были правила, которые не давали никакой конкретики по вопросам определения победителя. Не были описаны механизмы разрешения спорных ситуаций, не прописаны термины конкурса(репост хотя бы). Это позволило организаторам трактовать правила по-своему, что и вызывает мое негодование.
Опишу самое запомнившиеся:
- как уже писал выше, вначале можно было дергая их API поднять свое ЧСВ, поэтому я поднял ЧСВ Упоротому Тамарину))
- Процесс учитывал все возможные варианты расшаренных ссылок. Ссылка была вот такого вида http://hotellook.ru/promo/dreamspot/Id/spot_id/network_type. Допустим мотивация искать ссылку для вк в фейсбуке я понять могу(правда орги вроде не очень об этом в курсах), ссылка может как хочешь двигаться между людьми. Но вот учитывать ссылки, которые я не шарил с страницы конкурса! Зачем?? Именно это мне и предъявляли организаторы, как "свидетельство" моего читинга. Хотя ссылки были, не все но были, просто плохо мою стену смотрели. Были и все ссылки, я их предусмотрительно положил в гуглдок и попросил его шарить. Спасибо всем кто шарил! Но организаторы не верят в такое %))
- Организаторы совсем забыли о настройках приватности и возможности скрывать свои посты из ленты. Разные соц сети обрабатывают эти ситуации по разному при получении данных о количестве репостов. Поэтому это большой вопрос к пригодности механики конкурса и качеству правил конкурса.
- То же самое по поводу удаленных постов. Учет производится абсолютно по разному.
- Ребятки Рубисты, фильтруйте параметры лучше. Можно было убить домашнюю страничку пользователя пихнув в качестве spot_id какую-нить чушь. Кто так развлекался и вывел меня! Сволуч, ненавижу тебя! %)
Например: curl "http://hotellook.ru/promo/dreamspot/api/social_activities" -H "Cookie: uuid=1114cfd9" --data "spot_id=hui&network_type=t" --compressed - Был выбран слабенький идентификатор для домашней странички. Всего 4 бита, можно было сбрутить парочку аккаунтов.
- Или можно было не брутить. А используя мозг, google image и прямые руки вытащить данные с странички соцсети участника. В условиях войны довольно ценно знать идентификатор участника и мочь проверить реально положение сил на поле.
Были еще всякие лулзы, всего не упомнишь... если что дополню.
А что в итоге?
А в итоге победила женщина Marina Kuznetsova. У которой больше половины(!) баллов заработано на одном споте
Вот у нее в фб их ровным счетом 11000 и не единого лайка или коммента.
А вот как выглядят реальные споты
Кстати для фейсбука учитываются не только репосты, но и лайки с комментами, ну да ладно =)
Стоит ли вопрос о том выиграл ли читер? Я думаю, что нет, все и так ясно. Может это свой человек, а может уровень организации конкурса дал свои плоды %)
+Quiksilver, +Aviasales.ru — дешёвые билеты и спецпредложения , +Hotellook.ru — поиск и сравнение цен на отели, +Oksana Minina большое спасибо за такую возможность поизучать черный ящик. Хоть я и следовал всем правилам, но выиграть мне все же не удалось. Значит так легла кривая истолкования правил %))
Желаю будущим устроителям конкурса учитывать то что я считаю ошибками, ибо они ведут к баттхерту %))
Subscribe to:
Posts (Atom)