Как выиграть хакатон: 14 действенных идей

19-20 мая в Астане проходил Astana Hackathon, организованный "Astana Innovations" хакатон с призовым фондом в 1,000,000 тенге. Хакатон - отличная возможность перестать обсуждать свои бесконечные идеи с друзьями за кружкой пива по пятницам (только для того, чтобы на следующий день забыть обо всем и погрязнуть в рабочей рутине) и, наконец, все-таки взяться за реализацию. Мировая практика показала: за 24 часа можно создать ядро по-настоящему больших проектов. GroupMe, мобильное приложение для группового обмена смс-сообщениями, было создано за полторы сутки в мае 2010 года во время хакатона на TechCrunch Disrupt New York. Чуть более года спустя GroupMe был куплен Skype за сумму порядка 80 миллионов долларов. Начальные версии FB Chat и FB Video были написаны за ночь во время хакатона в офисе Facebook в Пало Альто. И таких примеров десятки. В течение двух месяцев прошлой осени мне в качестве разработчика довелось поучаствовать в четырех hackathon'ах: PennApps (место проведения: University of Pennsilvania), Facebook Hackathon, Princeton Startup Weekend, hackNY (New York University). В этом посте хотелось бы поделиться некоторыми идеями на тему того, как успешно выступить на хакатоне.

1. Четко знайте свой проект до того, как прозвучит стартовый свисток. Хотя до начала хакатона ничего кодить нельзя, это не значит, что нужно приходить на мероприятие абсолютно без подготовки. Очень помогает приходить на событие с хорошо продуманной идеей, обсужденными "за и против", набросками и flow-chart'ами по интерфейсу.

2. Дизайн: в простоте - гениальность. В конечном итоге, именно дизайн продукта создает первое впечатление. И под этим я подразумеваю не только, как он выглядит, но и как он работает. Во всяком случае вы не хотите, чтобы ваш сайт словами Дмитрия Кирсанова выглядел, как "попугай в нечищенной клетке". Конечно, невозможно создать дизайн уровня Path, Flipboard или Pinterest, за сутки, однако, если знать пару "трюков", дела обстоят не настолько плохо. Один из таких "трюков" - Twitter Bootstrap, библиотека готовых HTML, CSS и Javascript компонентов для начинающих дизайнеров. Безусловно, важно кастомизировать эти шаблоны, иначе ваш сайт или приложение будут уж очень сильно напоминать тысячи других.

3. Minimum Viable Product. Важно помнить о том, что такое MVP (детали - в книгах/блогах Эрика Риса и Стива Бланка). Проект не должен быть неповоротливым и бесполезным гигантом (благо, учитывая лимит по времени, это и не очень возможно): он должен ясно передавать основное видение. Проект должен быть минималистичен, но полностью функционален. Все компоненты, которые вы не успели закончить, лучше полностью исключить. Как говорил Стив Джобс: "Фокус - это искусство говорить 'нет'".

4. Фреймворки на помощь. Ваша продуктивность не будет такой, как прежде, если твердо знать один веб-фреймворк. Последнее, что вы хотите делать во время соревнования - так это писать доморощенное управление базами данных или пользовательскими сессиями (подразумевается, что вы не пишете на PHP :-)). Если уже есть опыт использования Ruby on Rails или Django, то - вперед и с песней! Эти фреймворки - проверенный временем золотой стандарт. Если нет, то рекомендую научиться использовать "легковесные" микрофреймворки, такие как web.py, Flask или CherryPy, если вы знаете Python; и Sinatra, если вы пишите на Ruby.

5. Хостинг? Ваш проект будет более наглядным, если по истечении 24 часов он будет доступен онлайн. Опять же, настраивать сервер во время хакатона - потеря ценного времени, а перекидывание PHP файлов через FTP - мягко говоря, не очень эффективно. На помощь приходят такие облачные платформы (PaaS - platform as a service), как Google App Engine или Heroku. Очень рекомендую последний. Наряду с Ruby, Heroku также поддерживает разработку на Python, Scala, Node.js, Clojure и Java.

6. "Преждевременная оптимизация - корень всех зол" (Дональд Кнут). Нужно оставить на полке такие мысли и бесполезные сомнения, как "Будет ли мой код эффективен, когда сервис будет использовать миллион человек?" Ваша цель быстро сделать работающий прототип и попытаться избежать ловушки перфекционизма. Есть огромное количество более полезных вариантов улучшения проекта, чем пытаться оптимизировать уже работающий алгоритм. Это не IOI, не ACM ICPC и не TopCoder =) Здесь работает лозунг Facebook: "Done is better than perfect".

7. Команда или прицип синергии: 1 + 1 = 10. Несмотря на то, что хакатоны - отличное место для того, чтобы встретить интересных людей, лучше приходить на них с уже готовой командой. Командой, где каждый хорошо знает свои сильные стороны и эффективно дополняет друг друга. Эмпирически, мне кажется команды в 2-3 человека работают лучше всего. Превысьте эту норму и получите типичный эффект, описанный Фредериком Бруксом в небезызвестной книге "Мифический человеко-месяц". Вкратце, этот эффект можно сформулировать так: "Если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше".

8. API: стойте на плечах гигантов. Набор различного рода функций и процедур, предоставляемый всевозможными сервисами, позволит быстро получить доступ к интересным данным, готовым для дальнейшего анализа. Twitter предоставляет доступ ко всей публичной информации, с которой ассоциируется сервис: твиты, фолловеры, пользовательские профайлы, листы, местоположения, тренды и т.д. Если, к примеру, вы хотите сделать каталог мобильных фотографий по тематическим категориям или по разным городам нашей страны, к вашим услугам - Instagram API. Вот классный пример того, что можно построить, используя Instagram. Если есть желание создать онлайн-гид по городу, систему рекомендаций ресторанов или приложение, которое отвечает на сакраментальный вопрос: "Куда пойти сегодня вечером?", отличным выбором мне видится Foursquare API. А вот и галерея примеров лучших приложений, построенных на 4sq. Набор алгоритмов машинного обучения от Google Prediction API в свою очередь может помочь в создании рекомендательных систем, классификации email'ов и документов, анализа текста и тому подобное. Есть много других интересных API, но это заслуживает отдельного поста.

9. Не тратьте время впустую. Часто был свидетелем того, как команды часами спорили о том, какое название придумать своему проекту. На хакатоне это совершенно не имеет значения, поэтому не стоит уделять этому "упражнению" более 10 минут. На худой конец напишите простой скрипт на Питоне, который генерирует разные благозвучные последовательности согласная-гласная-согласная-гласная-согласная разной длины и проверяет доступен ли данный домен (примечание: на это может уйти больше 10 минут). В конечном счете, название наверняка придет к вам во второй половине хакатона, когда ваш проект начнет принимать более или менее полноценный вид. Время конечно. Создайте девелопер-аккаунты на API, которые планируйте использовать, и напишите для тренировки пару примеров API вызовов до начала хакатона. Подготовьте и настройте весь набор инструментов, которые вы обычно используете, будь то Xcode, MySQL, Photoshop или Git. Не гнушайтесь использовать open source code на Github, заимствуйте понравившиеся элементы дизайна (css, javascript) с помощью Chrome Web Inspector или Firebug. Все дьяволы (и к слову, ангелы) - в деталях.

10. Хакатон не время изучать новые технологии. Если ваша цель выиграть, оставьте без внимания желание выучить новый язык программирования или новый фреймворк. Сосредоточитесь на том, что знаете, и выжмите из этого максимум.

11. Презентация: действия важнее слов. Жюри и аудитория не увидят, сколько труда было вложено в ваш код. Они будут оценивать конечный продукт и то, как вы его презентуете. Слайды - признак того, что вам нечего показать. Даже, если вы используете Prezi :) Поэтому уделите все отведенное время на непосредственное демо проекта. Приведите пример того, как реальные пользователи найдут продукт полезным. "Болеутоляющее продается лучше, чем аспирин". Покажите проблему и как вы ее решаете. Не стоит заставлять аудиторию скучать описанием использованных технологий или того, чего не хватает в вашем продукте. Фокусируйтесь на том, что есть. Презентация должна быть динамичной, интерактивной (в этом аспекте преимущество, к примеру, имеют приложения, которые могут в реальном времени анализировать твиты или смс-сообщения зрителей, сидящих в зале), полна страсти и воодушевления со стороны участников команды.

12. Знайте критерии оценки и свою аудиторию. Такими критериями на астанинском хакатоне, к примеру, были локальность проекта, его полезность, степень готовности и техническая сложность, уникальность и новизна идеи, удобство использования и дизайн. В перерывах общайтесь с менторами и другими коллегами-участниками, внимательно слушая их отзывы и замечания. Пригласите на демо своих друзей/родственников: поддержка и шум трибун во время презентации только помогают!

13. Не забывайте о простых лайф-хакинг принципах эффективной работы. Прийти выспавшимся. Не игнорировать питательный завтрак/обед/ужин. По возможности брать пятиминутный перерыв каждый час, чтобы прогуляться, "перезарядить" батарейки и, в конечном счете, взглянуть на проблему свежими глазами. Иначе сэкономленные полчаса выльются в часы долгой, медленной и непродуктивной разработки.

14. Путь важнее цели, но цель важнее пути. Ну и следуя законам жанра, ни одна из выше описанных идей не будет действенной "серебряной пулей", если в итоге не построить классный проект и не получить удовольствие от процесса.

Удачи и побед!
Мой Твиттер: @suleimenov

P/S: Источник "невтемной" фотографии - мой инстаграм. На ней запечатлен момент из хакатона в ноябре 2011 года в компании Ooyala (Mountain View, CA). Если есть фотографии победителей Astana Hackathon 2012, отправляйте, буду рад заменить =)

21 мая, 11:22
984

Чемпионат мира по программированию 2012 в Варшаве: "Браво, КБТУ!"

Несколько часов назад написал в Твиттере:

Несмотря на мою любовь к минимализму, на этих 140 символах в такой ситуации ограничиться сложно. Учитывая свое competitive programming прошлое (ACM ICPC World Finals 2009, 2011), просто не могу обойти стороной завершившийся 7 часов назад в Варшаве финал ACM ICPC. Кто не знаком, ACM ICPC - это чемпионат мира по программированию среди университетских команд, организуемый ежегодно компанией IBM. Команды, состоящие из 3 студентов, имеют в распоряжении один компьютер и 5 часов для решения порядка 10-12 задач. Решения пишутся на C, C++ или Java. Сначала проводятся региональные чемпионаты, в которых принимают участие более 6000 команд по всему миру. Затем около 100 лучших команд едут на мировой финал. В те годы, когда ездил я, финал проходил в Стокгольме (Швеция, 2009) и Орландо (США, 2011). В этом году право проводить финал удостоился известный своими славными командами по программированию Варшавский университет (к слову, на известном многим меме, посвященном тому, как проходят вечеринки у программистов, изображены именно они; вопрос на засыпку - кто узнал на фотке второго слева?).

Российские команды вновь показали свой высший класс, а чемпионом стал ведомый Андреем Станкевичем питерский ИТМО, вышедший также в лидеры по суммарному количеству выигранных мировых первенств (четыре). В золоте также Варшава, МФТИ и Shanghai Jiao Tong. Серебро: Белорусский ГУ, Zhongshan, Гарвард (сюрприз!), The Chinese University of Hong Kong. Бронзовые медали получили завсегдатаи пьедестала Ватерлоо (хотя ребята не решили ни одной задачи за последние 100 минут), МГУ, Токийский университет и Белорусский ГУИР.

Ну и на десерт - самое главное. Как показали себя наши? В составе достойно выступившего Georgia Tech (Атланта, США) был замечен физматовец Артур Сатаев. А Казахстанско-Британский Технический Университет не только пробился в финал из сложнейшей Северо-Европейской группы (NEERC), в которую входят все университеты СНГ, но и решил 6 задач в финале, что позволило ребятам занять 16-ое место (!) в мире. Позади - Nanyang, MIT, СПбГУ, Tsinghua, Принстон, CMU и еще 90 не менее сильных университетов. Поздравляем КБТУ в составе участников Мадияра Айтбаева, Азизхана Алмахана, Каната Сатылханова, тренера Дамира Елеусизова (привет, Дамир!) и, несомненно, двигателя казахстанского спортивного программирования - Фуада Гаджиева. Ребята, вы - просто молодцы!

ACM ICPC - потрясающее по накалу соревнование, требующее марафонской выдержки, алгоритмической интуиции, программистского таланта и дисциплины для ежедневных тренировок. Верю, что вдохновленные успехами своих соотечественников, наши молодые ребята примут эстафету и будут достойно представлять Казахстан на мировой арене! Алға, Қазақстан!

Мой Твиттер: @suleimenov

18 мая, 1:55
2134

С кем из знаменитостей вы бы хотели побеседовать за ужином?

Около месяца назад я ходил с друзьями на футбольный матч MLS (речь идет о “нормальном” футболе :-)) между New York Red Bulls и Colorado Rapids. В составе Red Bulls ранее играли Юрий Джоркаефф и Лотар Маттеус, а сейчас их цвета защищают Рафаэль Маркес и Тьерри Анри. Ради встречи с последним, с слову, мы и решили посвятить воскресенье футболу. После матча Тьерри Анри обещал провести единственную встречу с болельщиками за весь год, и местный фан-клуб лондонского Арсенала сделал это событие возможным. Перед игрой каждый болельщик мог задать вопрос, 10 наиболее интересных из них, по мнению организаторов, адресовались непосредственно "французскому королю". Последний вопрос, к счастью, достался мне и я спросил: “С кем из знаменитостей (писателем, ученым, прочее) вы бы хотели побеседовать?” Ответ Анри заставил болельщиков, кричавших: “Борат, Борат!”, - замолчать и уважительно зааплодировать. Он ответил: “Нельсон Мандела”.

На этой неделе Тим Феррис написал в своем блоге, что последние 5 лет ему задавали этот же вопрос: “Если вы бы могли поужинать с любой личностью из истории, кто бы им был?” Ответ Тима всегда был неизменен: “Ричард Фейнман”. Сколько еще Нобелевских лауреатов для забавы взламывали сейфы или играли на барабанах во всевозможных барах и пивнушках :D?

Есть огромное количество людей (как известных, так и неизвестных широкой публике), которые вызывают у меня неподдельное восхищение. Некоторых из них я упоминал в рубрике “Топ 3 персоны” видео-подкаста “Nameless”. Это, в первую очередь, мои родители и преподаватели. Это Виктор Цой и Ганс Зиммер, Тони Джа и Донни Йен, Пол Грэм и Тим Феррис, Джеки Чан и Джим Кэрри, Стив Джобс и Билл Гейтс, Сократ и Сенека, Ральф Уолдо Эмерсон и Лао-Цзы, Егор Титов и Деннис Бергкамп, тот же Ричард Фейнман, наконец. Этот список можно продолжать бесконечно долго. Но я позволю себе сосредоточиться на трех замечательных персонах, которые оказали огромное влияние на мое мировоззрение и жизнь.

Брюс Ли


“Я не боюсь того, кто практикует 10,000 ударов за раз. Я боюсь того, кто практикует один удар 10,000 раз.” (Брюс Ли)

С фильмами Брюса Ли я познакомился, когда мне было 5 лет, но страсть по отношению к его работам в кино до сих пор со мной. Не могу назвать себя сумасшедшим поклонником, но одним из первых вещей, которые я сделал, когда впервые посетил Сиэтл в декабре 2009 года - это посетил его могилу в Лейк Вью. Я не буду называть его человеком-легендой, это подразумевает некую мифичность, абстрактность и нереальность. Брюс Ли был реален в самой сути смысла, заложенного в этом слове. Он пример человека, который посвящал любимому делу каждое мгновение своей интенсивной жизни: расписанные в деталях ежедневные тренировки, работа над собой, чтение, преподавание, - все это было основными занятиями Ли в течение дня. И эти усилия, направленные на систематическое совершенствование своего искусства; напряжение, не покидавшее этого человека ни на минуту; ту энергию, которую излучал мастер - все это, пусть и в разбавленном, но от этого не утратившем своей красоты виде, мы можем увидеть в фильмах, которые он успел сделать за свою короткую жизнь. Его интервью (единственное оставшееся на данный момент видео-интервью с ним) в Pierre Burton Show, а также “беседы мудреца” из фильма “Longstreet” способны вдохновить всякий раз, когда вы их пересматриваете. Мои любимые книги: “Поразительные мысли. Жизненная мудрость Брюса Ли”, “Брюс Ли: сражающийся дух” и “Брюс Ли. Искусство выражения человеческого тела”. Лучший, на мой взгляд, документальный фильм о нем - это "Брюс Ли. Путь воина", включающий в себя уникальный киноматериал, который не видел никто в течение 28 лет - 30 минут боевых сцен, не вошедших в незаконченную работу Ли - "Игру смерти".

Ошо

“Сама по себе жизнь не имеет смысла. Жизнь - это возможность создать смысл. Смысл можно найти, только создав его.” (Ошо)

В 10 и 11-ом классах, а также будучи первокурсником я прочитал порядка 15 книг Ошо (если быть точным, книг, составленных его учениками из дискурсов разных лет). Всегда восхищала искренность, простота и глубина его рассуждений. Мне непонятно желание многих создать из его учения “новую религию”, секту или объект поклонения. По-моему, это самый легкий способ пройти мимо того, чему он учил, так и не поняв сути. В тот момент, когда вы создаете догму или следуете ей, вы попадаете в ловушку ограничивающих суждений. Вы перестаете быть самим собой. Мои любимые книги: “Ни воды, ни луны: беседы о историях Дзен”, “Книга понимания” и “Синь-Синь-Мин: книга ни о чем”.

Гарри Каспаров

"Если компьютер сможет превзойти в шахматах лучшего из лучших, это будет означать, что машина в состоянии сочинять самую лучшую музыку, писать самые лучшие книги. Не могу в это поверить. Если будет создан компьютер с рейтингом 2800, то есть равным моему, я сам сочту своим долгом вызвать его на матч, чтобы защитить человеческую расу." (Гарри Каспаров)

Я никогда не интересовался шахматами, но Гарри Каспаров привлек мое внимание после прочтения книги “Безлимитный поединок”. Это настоящий воин и повстанец, как на шахматной доске, так и за ее пределами. В 80-ых он боролся с ФИДЕ и Анатолием Карповым, сейчас он борется с текущим политическим режимом в России. После поражения в 1997 году от компьютера Deep Blue он потребовал от IBM лог-файлы, сохраненные машиной, на что получил отказ. На его требование о рематче IBM ответил тем, что компьютер был полностью разобран. После этого Каспаров любил повторять: “Я не проиграл компьютеру, я проиграл IBM”. Вызывает восхищение тот факт, что он подробно анализировал даже выигранные матчи. Как же еще объяснить его 255-месячную гегемонию как шахматиста номер 1 в мире? Одна из его наиболее запомнившихся мне мыслей приходится на его выступление в Маунтэйн Вью (2010 год) в рамках серии Authors@Google: “Единственный риск - это не рисковать. Поражения неизбежны. В тот момент, когда вы принимаете это как данность, вы освобождаетесь от результата и сосредотачиваетесь на игре. И тогда хороший результат приходит сам”.

А теперь ваша очередь. Забудьте об ограничениях! Если бы вы могли пригласить на ужин человека как из прошлого, так и из настоящего, кто бы им был? Чему бы вы хотели у них научиться?

Мой Твиттер: @suleimenov

23 апреля, 10:13
1642

Princeton Startup TV. В гостях - Роберт Седжвик, ученый и автор с мировым именем, директор Adobe

И вновь в гостях у Princeton Startup TV - ученый и профессор информатики с мировым именем! В эту пятницу я побеседовал с профессором Робертом Седжвиком. Несколько фактов о нем:

  • профессор Принстонского университета, основатель факультета Computer Science
  • член совета директоров Adobe Systems
  • почетный член Ассоциации вычислительной техники за огромный вклад в области математического анализа алгоритмов
  • автор многочисленных научных статей и популярнейшей во всем мире серии учебников по алгоритмам

Лично мне книга Седжвика помогла понять многие алгоритмы гораздо лучше, чем Кормен или Кнут. Благодаря очень мотивированным современным примерам, готовым реализациям всех представленных алгоритмов, подробным иллюстрациям, классным экспериментам и интуитивным математическим выкладкам я чувствовал, что расту после каждой страницы. Мне кажется, что человек индуктивен - ему гораздо проще усваивать новый материал, если в начале показаны примеры, практическая сторона и только после этого развивается теория и делаются обобщения. К сожалению, многие книги и курсы преподаются с точностью до наоборот.

Мы поговорили о его годах в бытность аспирантом, его научном руководителе - легендарном Дональде Кнуте, причинах, по которой его "Введение в компьютерные науки" является самым популярным курсом в Принстоне, превосходя по количеству студентов традиционно популярные курсы по микро- и макроэкономике. Кроме этого мы обсудили некоторые идеи профессора Седжвика по поводу будущего издательской индустрии, популяризации алгоритмов, “эффекта Нобелевской премии” и "дилеммы инноватора", а также будущем стартапов в целом.

Одним из моих любимых моментов в интервью был ответ профессора Седжвика на вопрос: "Какие технические блоги вы рекомендуете? Что читаете в последнее время?" Он ответил просто, но со вкусом: "Ну, не особо. Я пишу". Подход подлинного участника, а не зрителя :)

Другие вопросы, которые я задал гостю:

  • Когда вы поняли, что хотите связать свою карьеру с информатикой?
  • Вашим научным руководителем в аспирантуре Стэнфордского университета был легендарный Дональд Кнут. Каково было работать с ним и насколько вы часто общаетесь сейчас?
  • Согласны ли вы с Кнутом в следующем: “Если вы занимаетесь чем-то популярным, то результаты не будут выдающимися”?
  • Мысли по поводу “эффекта Нобелевской премии”, когда многие ученые после всемирного признания не могут позволить себе работать над маленькими задачами, что в дальнейшем приводит к тому, что они не добиваются ничего значительного?
  • Как насчет “эффекта Нобелевской премии” среди стартапов, когда большие компании осознанно не замечают маленькие рынки с низкими прибылями и в дальнейшем теряют лидирующие позиции маневренным стартапам (некоторые примеры подобных противостояний - IBM против Microsoft, Microsoft против Google, Google и Facebook)?
  • Во время работы над своей диссертацией, сколько времени вы уделяли чтению, исследованию и публикациям?
  • Какова была среда для совместной научной работы в Стэнфорде в тот период?
  • Как преподавался курс “Введение в информатику” в Принстоне до того, как вы начали свой популярный курс?
  • Курс ‘COS 126: введение в компьютерные науки’ является на данный момент самым популярным курсом (недавно обогнав экономику) среди студентов всех специальностей в Принстоне (его проходят 50% всех студентов университета), 25% всех студентов проходят ‘COS 226: алгоритмы и структуры данных‘. Каковы причины небывалой популярности курсов, которые вы создали и продолжаете улучшать?
  • О будущем издательской индустрии: если многие книги или научные публикации не будут читаться на бумаге, зачем писать и оформлять их, оптимизируя под бумажный формат?
  • Можете ли рассказать поподробнее о ваших идеях в области издательской индустрии, которыми вы поделились во время доклада “Алгоритмы в массы” на конференции ANALCO’2011 (Сан Франциско)?
  • Что представляет собой в деталях ваша гибридная модель издательства, где вы используете традиционный учебник и постоянно обновляющий сайт (1.4 миллиона уникальных посетителей в 2011 году) с лекциями, исходным кодом, видео, иллюстрациями и симуляциями
  • Ваш учебник “Алгоритмы” ставит своей целью обучить 50+ алгоритмов, которые должен знать каждый программист. Наряду с Корменом и Кнутом, учебник считается классикой жанра. Как вы можете объяснить эту популярность?
  • Что вы подразумеваете под галактическими алгоритмами?
  • Кроме исследовательской работы в Xerox PARC, Институте оборонного анализа и Национальном исследовательском институте Франции, вы работали в качестве разработчика в Силиконовой Долине, а сейчас сидите в Совете Директоров компании Adobe Systems. Какие компании сегодня, на ваш взгляд, являются наиболее инноваторскими?
  • Что вы думаете о будущем таких компаний, как Facebook, Twitter и других социальных сетей?
  • Все, конечно, зависит от контекста, но каков ваш совет молодым ребятам, которые еще не нашли себя?

Гость: Роберт Седжвик
Продюсер и ведущий: Арман Сулейменов
Принстон, Нью Джерси
6 апреля 2012 года
Princeton Startup TV

7 апреля, 22:30
809

Казахстанский Твиттер в цифрах: моя попытка объять объятное!

После просмотра веселого руководства по Твиттеру от Bakunya я задался вопросом: “Сколько всего пользователей Твиттера в Казахстане?” Или лучше (дабы не обидеть граждан РК, находящихся зарубежом): “Сколько всего казахстанских пользователей Твиттера?” Как и все программисты, я не отличаюсь пессимизмом, поэтому мне показалось, что данный анализ займет максимум полдня (учитывая, что я до этого использовал Twitter API). Но все дьяволы в деталях. На "все про все" из-за лимитов, установленных Твиттером на API-вызовы, проблем с кодировкой, недостатком вычислительных ресурсов, моим неумением создавать инфографики (:D), а также другими обязательствами (учеба, спорт, еда, кино), ушло 4 дня!

Сначала я вручную составил список из порядка 500 KZ твитерян. Далее я собрал всех пользователей из списка их following/followers, после удаления дубликатов осталось 95355 пользователей. Многие из них естественно не казахстанцы. Далее я написал четыре разные функции фильтрации, выбрал лучшую из них, которая посчитала, что 18566 из 95355 пользователей являются казахстанцами. Это, безусловно, верхняя оценка, поскольку через мои фильтры проскочили некоторые твитеряне, которых казахстанцами назвать все-таки нельзя (например, чешский велогонщик команды Astana Роман Кройцигер). По возможности я удалил некоторые из них, но для полноценной фильтрации списка здесь нужна помощь crowdsourcing сервисов (например, таких, как Amazon Mechanical Turk или CloudFlower).

В общем, не буду утомлять скучными беседами о длительном (и временами интересном) процессе сбора и анализа данных и перейду непосредственно к результатам. Начнем с первого хит-парада. Здесь я отсортировал всех пользователей по соотношению following/followers (чем меньше, тем лучше), а затем нашел Klout score топ 100 из них. Klout score измеряет степень влияния пользователей Твиттера, принимая во внимание такие факторы, как кол-во фолловеров, кол-во ретвитов, упоминания в твитах и списках, репутация тех, кто ретвитит вас и так далее. Итак, топ 10 казахстанских пользователей Твиттера по их Klout Score:

Если интересно, далее идут Gizhi (Klout score = 51.69), Tanir_DGJ (51.45), DinaraSatzhan (51.28), MuratAbenov (51.26), Alexandr_Tsoy (50.89), Aidashov (49.69), iKairat (49.43), baitukenov (49.27), St_Almas (48.55) и Zhanna_t (48.41).

Следующий хит-парад, наверняка, то, что в первую очередь приходит в голову, когда мы говорим о репутации в Твиттере. Давайте просто отсортируем KZ твитерян по количеству фолловеров. Уверен, это будет любимым хит-парадом нашего премьер-министра =)

Далее идут BahytSyzdykova (4741 фолловеров), mahambet_2017 (4509), Tanir_DGJ (4426), yelikbayev (4246), natalialogunets (4032), kulibayev_timur (3912), serikm (3893), TokayevUNGeneva (3826) и laralarkin (3782).

В предыдущих топах под пользователями мы подразумевали персон, а как насчет твиттер-аккаунтов корпораций, сайтов, телеканалов? Вашему вниманию - топ 10 казахстанских организаций по количеству фолловеров. Юви на счастливой позиции номер 7!

Далее на позициях с 11-ой по 20-ую расположились WorldNewsKZ (4038 фолловеров), eurasiaorgru (3929), _Beeline_kz (3356), airastana (3265), bnewskz (3262), kazakhfilm (3197), ktk_news (3040), Lime_Kz (2974), KhabarTV (2879) и MEGA_kz (2648).

Также любопытно узнать самых разговорчивых твитерян. Топ 10 персон по количеству твитов:

Далее идут aidoseg (25085 твитов), Arstan19 (24967), BioCyberGear (24251), Usagi_Hamu (22388), syedin (21750), hu67et (21515), Ksenchik_91 (21005), iTengry (20621), tailaria (20098) и Agnesa (19656).

Кто из казахстанцев зарегистрировался в Твиттере раньше всех? Топ 10 early adopter’ов Твиттера:

В тот же 2007-ой год успели зарегистрироваться 5an (дата регистрации - 2007-10-12), vikalee (2007-10-21), abenov (2007-10-21), tintom (2007-11-04), Danil_Hustla (2007-11-04), brainnotfound (2007-11-22), Quessir (2007-12-01), konviki (2007-12-18), nurgeldy (2007-12-25) и huanysh (2007-12-26).

Имея столько данных, грех было бы не сделать какой-нибудь совокупный анализ. Общее количество твитерян - 18566. Среднее количество твитов - 474.79 (стандартное отклонение - 3817.27). Среднее количество фолловеров у KZ твитерян - 92.99 (стандартное отклонение - 667.54). Среднее количество авторов, которых отслеживает пользователь - 94.20 (стандартное отклонение - 303.32). Посмотрим на гистограмму частот распределения фолловеров (followers) между пользователями.

Как насчет гистограммы частот распределения друзей (following).

Ну и, наконец, то же самое, но для распределения твитов.

Можно сделать еще много разных хит-парадов (с улучшенной визуализацией данных, что-нибудь в стиле этой или этой инфографики), учитывая самые разные критерии. Например, ранжировать твитерян по нижней оценке на значение Вильсона, примененное на количество following / followers. Или отсортировать по количеству фолловеров твитерян, которые читают и пишут в Yvision. Или найти распределение твитерян по разным регионам страны. Если скачать все наши твиты (что я не делал и в ближайшем будущем не собираюсь :P), то можно найти экспертов по разным темам и многое другое. Если есть другие интересные идеи, поделитесь в комментах. Возможности в отличие от нашего внимания безграничны!

Мой Twitter: suleimenov

4 апреля, 14:32
2575

Брайан Керниган: интервью с легендой

В прошлый вторник в рамках седьмого эпизода Princeton Startup TV удалось побеседовать с профессором Принстонского университета, не нуждающимся в представлении - Брайаном Керниганом:

  • соавтором культовой книги “Язык программирования С” (вместе с Деннисом Ритчи)
  • одним из первых разработчиков Unix (наряду с создателями - Кеном Томсоном и Деннисом Ритчи), а также ученым из Bell Labs, придумавшим название для данной операционной системы
  • соавтором языков AWK и AMPL
  • автором множества Unix-программ, среди которых ditroff и cron
  • соавтором известных эвристик для таких NP-полных задач, как разбиение графа на подграфы и задача коммивояжёра
  • автором 9 книг, среди которых, кроме “Языка программирования С”, стоит отметить книги «Практика программирования» и «UNIX. Программное окружение» (последняя считается библией UNIX-программистов)

Мы обсудили интересные проекты, созданные студентами в рамках курса, который преподает профессор Керниган каждый весенний семестр; обсудили его текущие научные интересы. Также было интересно узнать о его новой книге “D is for Digital”, которую председатель совета директоров Google Эрик Шмидт советует прочитать каждому образованному человеку, который хочет знать, как работают компьютеры и все, что с ними связано. Брайан Керниган поделился своими мыслями о языках Ruby, Python, AWK и AMPL; рассказал, что он читает на досуге, и насколько облегчился процесс издания книг для авторов. Я даже спросил, наступит ли когда-нибудь день, когда профессор Керниган начнет использовать Твиттер ;) И поскольку передача все-таки о стартапах, в конце интервью Брайан рассказал, что он советует молодым специалистам, думающим о создании собственной компании.

Гость: Брайан Керниган
Продюсер и ведущий: Арман Сулейменов
Принстон, Нью Джерси
Princeton Startup TV

27 марта, 2:20
765

Новая привычка - начинайте каждый день как участник, а не зритель!

Вишневый сад на кампусе Принстонского университета. 19 марта 2012 года

В последнее время я с ностальгией вспоминаю свои годы в бытность школьником, когда я мог ежедневно без перерыва в течение 8-10 часов предельного фокуса работать над домашними заданиями, решать задачи или писать сочинения. В выходные дни я посвящал время своим сайтам (канувшим в лету проектам, как “Брюс Ли: большая энциклопедия великого мастера”, “К знанию вместе!”, “Подготовка к ЕНТ”, “Bastau.com”, 7-8 лет назад бывшим в топах Rambler’s Top 100 или Zero.KZ). Первую версию сайта о Брюсе Ли, например, я сделал за один пятничный апрельский вечер 2004 года. Тогда все создавалось быстро, так как все делалось оффлайн. Интернетом я пользовался всего один час в неделю. В течение недели я собирал вещи, которые нужно посмотреть онлайн, и записывал их в старый добрый to-do.txt. Затем каждую субботу, пока происходила отправка обновленных версий моих сайтов на сервер, я быстро пробегался по списку, опустошал папку “Исходящие” в Outlook Express (помню, как обижалась подруга с класса на то, что ей нужно было ждать целую неделю, чтобы получить ответ на свое письмо :-)) или скачивал нужную мне информацию. Бывали такие сайты, в которых было так много интересных статей, что я скачивал все посты (с помощью WebZip), а затем читал распечатанную версию оффлайн.

Времена изменились. Теперь редки случаи, когда мы не онлайн. Постоянно проверяя свою электронную почту, читая RSS-поток в Google Reader, “уклоняясь” от непрерывного потока новых статусов в Twitter или Facebook; наблюдая, где сегодня ужинают друзья на Foursquare, или какие красивые закаты умудряются “поймать” пользователи Instagram. Мы зачастую начинаем свои дни с позиции пассивного участника, потребителя информации, читателя электронных писем или драматичнее - исполнителя чужих мечтаний.

Пора поставить под сомнение все эти рефлекторные действия, без которых мы уже не представляем свой день. E-mail - это план на день, составленный для вас, кем угодно, но не вами. Если первое, что вы делаете, когда слышите свой будильник (почему-то мне кажется, что это звуки Marimba :-)) - это почта и новости, то зачастую судьба этого дня предрешена - весь день вы будете заниматься вещами, срочными, но не важными; тем, чего хотят от вас окружающие, а не тем, что является вашим подлинным самовыражением.

Каково минимальное изменение аргумента в распорядке нашего дня, ведущее к максимальному положительному изменению функции-результата? Начните свой день, как создатель, а не консюмер; как действующее лицо, а не зритель. Проснувшись, позавтракав и приняв душ, воздержитесь перед этим условным рефлексом проверить email или отметить как прочитанные все уведомления из социальных сетей. Сделайте глубокий вдох и позвольте этому сиюминутному желанию пройти мимо. Оставьте все эти вещи на потом. Начните свой день, за 5 минут создав быстрый план из всего того, что вы всегда хотели сделать, но все время откладывали. Это единственный известный мне путь, как избежать попадания в кроличью нору парадигмы зрителя. Парадигмы, которая заставляет вас часы напролет читать новости, смотреть смешные видео вконтакте с единственной целью заполнить вакуум, не остаться в стороне; найти, что проходит мимо нас, но так никогда и не почувствовать вдохновения от собственного творения.

Проснувшись, как победитель, вы создаете отличный импульс, который будет двигать вас вперед. Не отвлекаясь, поработав с девяти до часу над самым важным заданием, вы создаете задел всему дальнейшему дню. Даже если вы не сделаете ничего полезного после часа дня (что маловероятно, учитывая созданный импульс), можно ни чуточку не сожалеть о прошедшем дне, поскольку вы посвятили целых четыре часа фокуса самому важному, самому главному. Начинать день как поэт означает, что теперь чтение приобретает новый смысл. Вместо того, чтобы пассивно пробегать глазами по содержанию и пропускать мимо интересные идеи (очень частое явление в режиме “читателя”), вы будете впитывать новые знания, обращать внимание на то, на что никогда раньше бы и не взглянули. Как говорил открывший витамин C биохимик Альберт Шент-Георгий: “Открытие - случай, встретивший подготовленный ум”.

Осознанного усилия потребуется всего на 21 день. Именно столько нужно, чтобы сформироваться новой привычке. Далее все идет в эффективном режиме авто-пилот. Можно еще распечатать календарь на весь месяц и отмечать крестиком все дни, когда вы начинали день, как победитель. Цель - не разорвать цепь из подряд идущих крестиков. Ну или на случай форс-мажора или других маленьких неожиданностей (“гости пришли!”) - по крайней мере постараться максимизировать протяженность этой цепи.

Начните день, как создатель. Используйте принцип маленьких побед. Если вы хотите написать эссе, поставьте цель в одну страницу. Без требований к качеству. Затем итеративно улучшайте, расширяя/сжимая полученный вариант. Проснитесь и сделайте все самое важное до полудня. И только потом позвольте себе отправить в Instagram фотографию безумно красивого вишневого сада, встреченного на вашем пути. Пути создателя...

Мой Twitter - @suleimenov

(Фото - Вишневый сад на кампусе Принстонского университета. 19 марта 2012 года)

21 марта, 2:45
1511

Первая из 7 грандиозных идей для стартапов - создать новую поисковую систему

В этой серии постов я попробую сделать саммари недавнего интереснейшего выступления Пола Грэма из Ycombinator на конференции PyCon 2012. Выступление называлось “Устрашающие своей амбициозностью идеи для стартапов”, в нем Пол призвал слушателей попытаться вырастить свое яйцо динозавра - что-то маленькое и хрупкое, но способное превратиться во что-то грандиозное. Как говорил король из “Алисы в Стране Чудес”, начнем с самого начала.

Большинство самых амбициозных идей для стартапов пугают нас своей грандиозностью. Любая из идей может сделать вас миллиардерами, однако после знакомства с этими идеями, вероятно, вам захочется закрыть на них глаза и вернуться к своему сайту поваренных рецептов. И в этом нет ничего плохого: это не признак слабости, это скорее признак здравого смысла. Самые большие идеи делают вызов вашей личности - вам становится интересно, если в вас достаточно смелости и максимализма, чтобы погнаться за этими идеями.

В фильме “Быть Джоном Малковичем” есть сцена, где ‘типичный ботаник’ главный герой встречает привлекательную женщину, которая говорит ему: “Дело в том, что, даже если ты заполучишь меня, ты не будешь знать, что со мной делать”. То же самое говорят и следующие семь грандиозных идей.

1) Новая поисковая система
Лучшие идеи часто за гранью невозможного. Еще неясно, является ли невозможной эта идея, однако есть признаки того, что это так. Создание нового поисковика подразумевает соперничество с Google, и недавно мы заметили пару трещин в этом, казалось бы, неприступном замке.

Моментом, когда стало ясно, что Майкрософт потерял свой почерк и вместе с ним индивидуальность, был год, когда они решили войти в поисковой бизнес. Этот ход был неестественным для “мелкомягких”. Они сделали это, т.к. им был страшен Google. Но это значило, что а) теперь ходы Майкрософта контролировались Гуглом и б) Майкрософт пытался работать над своими слабостями вместо того, чтобы сфокусироваться на своих достоинствах. Та же самая история повторяется теперь между Гуглом и Facebook, где все нити игры в руках Марка Цукерберга, а Google лихорадочно работает над своими слабостями и просто пытается реагировать на острые выпады честолюбивого юнца.

В последнее время когда я пользуюсь Google, появляется ностальгия по старым дням, когда Google был подобен Unix утилите, которая быстро выдавала правильные ответы без всяких лишних украшательств, бубенов и свистулек. Сейчас порой кажется, что результаты Google берут начало в одном из принципов сайентологии, который гласит - “что правильно, то правильно для тебя”. Если вы случайно куда-нибудь наведете курсор, может случиться все, что угодно. Ох уж этот JavaScript!

Чтобы победить, нужно построить поисковик, которым будет пользоваться топ 10,000 хакеров планеты. И поскольку любой, кто способен создать подобную компанию, является одним из этих 10,000 хакеров, то путь прямолинеен - создать поисковую систему для самого себя. Какой бы вы хотели ее видеть? Не беспокойтесь о неинтуитивном интерфейсе, просто сделайте то, что удовлетворит вас. Если хотите, можете сделать поисковые запросы тьюринг-полными или сделать хороший поиск по исходному коду. Все, что обеспечит вам этих 10,000 первых пользователей - достойно реализации. На эту тему есть отличная книга Кевина Келли - “1,000 подлинных фанатов”.

Не беспокойтесь, что в долгосрочном плане эта специфичность может вам помешать, поскольку, если у вас нет начального ядра пользователей, то о долгосрочном плане не может быть и речи. Если вы сможете построить то, что вы и ваши друзья будут искренне предпочитать Гуглу, то вы уже прошли 10% на пути к публичной компании. Точно так же, как прошел Facebook (хотя они об этом не подозревали), когда их сервисом стали пользоваться все студенты Гарварда.

Продолжение этой серии и оставшихся шести идей в следующих постах от @suleimenov :)

12 марта, 10:34
1038

Codecademy - научись программировать играючи: видео-интервью с основателем

Пришло время подвергнуть сомнению сложившийся стереотип, что программирование - это привилегия ограниченного круга людей. Codecademy - сайт, который предлагает увлекательный и интерактивный метод, чтобы научиться программировать. На данный момент доступны уроки только по JavaScript, но команда усердно работает над новыми языками. Codecademy получил второе место на ежегодном Crunchies (стартап-аналог Оскара) в номинации ‘Лучший стартап 2011 года’, уступив только хорошо знакомому всем Pinterest. В январе 2012, всего 5 месяцев после запуска, они перевалили отметку в 1 миллион пользователей. Code Year, проект, запущенный Codecademy к новому году, привлек 127,000 пользователей всего за первые 3 дня запуска, а сейчас более 400,000 человек учатся программировать, получая еженедельные уроки по email. Среди зарегистрировавшихся пользователей Code Year - мэр Нью Йорка Майкл Блумберг и один из наиболее известных венчурных инвесторов США - Фред Уилсон.

Среди инвесторов Codecademy: Union Square Ventures (Фред Уилсон), O'Reilly, SV Angel, Юрий Милнер (владелец DST и Mail.RU), CrunchFund (Майк Аррингтон - создатель TechCrunch), Founder Collective (Крис Диксон - основатель Hunch и SiteAdvisor), Joshua Schacter (создатель Delicious), Vivi Nevo (крупнейший владелец акций Time Warner) и другие.

Некоторые из вопросов, которые мы обсудили:

  • Как поменялась идея сервиса за время, проведенное в YCombinator
  • Если у вас есть интересный сервис, когда и как его запускать?
  • Технологии и лучшие практики, используемые в Codecademy

Гость: Ryan Bubinski
Продюсер и ведущий: Арман Сулейменов
Princeton Startup TV: эпизод 6
Принстон, Нью Джерси
Princeton Startup TV: предыдущие эпизоды

10 марта, 8:24
1209

Интервью с одним из создателей Turntable.fm Joe Perla

Joe Perla - основатель/CTO Zandigo - сервиса для поступающих абитуриентов, Labmeeting - социальной сети для ученых, Stickybits и Turntable.fm - невероятно популярного сервиса для того, чтобы DJ’ить и слушать музыку вместе. Joe создал ProHDR 2.0 - один из ведущих iPhone приложений для HDR фотографий, а также Weby Templates - минималистичный веб фреймворк на Питоне.

Согласно TheNextWeb, Turntable.fm - лучший социальный сервис 2011 года. В сентябре 2011 года, 4 месяца после официального запуска, на Turntable.fm было создано 300,000 комнат и зарегистрировалось 650,000 человек (треть из которых активна). Подобный ошеломляющий успех не остался не замеченным со стороны инвесторов, среди которых - Фред Уилсон (Union Square Ventures), First Round Capital, Крис Сакка, Леди Гага, Кани Вест, менеджер Мадонны Гай Озири, актер и ведущий Джимми Феллон, бывший президент MySpace Music Куртни Хольт и экс-исполнительный директор Facebook Тим Кэнделл. В день проигрывается более миллиона песен. У пользователей на каждой виртульной танцплощаке есть свой аватар, они вместе слушают музыку, могут общаться друг с другом, создавать собственные плэйлисты или DJ’ить, за качество выбранных песен получая очки от других участников танцплощадки. Turntable.fm пришелся ко двору в случаях, когда ночные клубы хотят дать возможность самим посетителям выбирать музыку, которую они хотят слушать. Среди известных DJ'ев и музыкантов, которые управляли толпами на turntable.fm: Snoop Dog, Wiz Khalifa, Стив Аоки, Талиб Квели, Owl City, VV Brown, Switchfoot и Glitch Mob.

В этом эпизоде вы познакомитесь с удивительным путем Джо Перлы: как он начал генерировать идеи для стартапов в бытность студентом первого курса, как он на 2 года для создания своих компаний покинул Принстонский университет и почему он решил продолжить обучение в аспирантуре. Мы также обсудим, как команда, работавшая над Stickybits, решила забросить идею и начать Turntable.fm; почему стартапы все чаще выбирают mongodb, а не MySQL в качестве базы данных; почему, по мнению Джо, Facebook является финансовой пирамидой Понци.

Джо ведет популярный блог, в котором, помимо всего прочего, делится опытом, как скэйлить сайты для миллионов пользователей, как проходить технические интервью и встречать CEO известных компаний.

Гость: Joe Perla
Продюсер и ведущий: Арман Сулейменов
Princeton Startup TV: эпизод 5
Принстон, Нью Джерси


Snoop Dog и Wiz Khalifa на Turntable.fm

Pоследняя/Sтрочка: никто не узнал мелодию в конце интервью =)?

6 марта, 12:20
683
  • 2
  • 1