Pull to refresh
503
0
Григорий Бакунов @bobuk

Пользователь

Send message

Математика аукционов. Лекция в Яндексе

Reading time 7 min
Views 43K
Аукционы используются для торгов практически любых товаров — рыбы и цветов, лицензий на 3G-cвязь, государственных ценных бумаг, акций частных компаний, рекламных объявлений на Яндексе. Базовые правила некоторых аукционов остаются неизменными на протяжении столетий. При этом аукционы — динамично развивающаяся область современной экономической теории. Это в первую очередь вызвано их практической важностью, а также наличием данных и возможностью формально проанализировать аукционы как игры, чьи правила совпадают с практикой. За исследование аукционов и в целом экономических механизмов было присуждено несколько Нобелевских премий.



В рамках Малой Школы анализа данных лекцию, посвященную аукционам, прочитал Сергей Измалков — профессор экономики Российской экономической школы, председатель ученого совета РЭШ. Именно аукционы стали темой его докторской диссертации. В лекции Сергей Борисович рассказывает о том, чем похожи торговля жёнами в Вавилоне и размещение рекламных объявлений в интернете. Под катом вы найдете текстовую версию лекции, но мы бы рекомендовали вам все же посмотреть видеозапись — лектор рассказывает обо всем достаточно доступно и очень увлекательно.
Читать дальше →
Total votes 43: ↑37 and ↓6 +31
Comments 6

Шанс научиться у Яндекса тому, что он лучше всего умеет

Reading time 5 min
Views 32K
Мы открыли набор в новый Tolstoy Startup Camp. Это мастерская Яндекса, где мы помогаем запускать стартап. Она будет уже четвертой по счёту. Предыдущие три дали много не только его участникам, но и нам — мы поняли, как и что можно изменить в кемпе. В первых трех наборах мы были готовы работать с самыми разными проектами в сфере IT при условии, что нам нравилась идея, мы верили в команду или видели потенциал для развития бизнеса.

Сейчас мы решили, что пригласим в TSC только тех людей, которые уже создавали проекты, дизайн или программы — тех, кто умеет что-то делать руками. Опыт прошлых кемпов нам показал, что главное, чему может научить Яндекс — это делать технологические и околотехнологические продукты для массовой аудитории. Именно в этом мы обладаем большей экспертизой и умениями. Как только мы берёмся за что-то другое, снижается полезность и эффективность не только для нас, но и для стартапов.



Особенности Яндекса проявляются во всём: в разработке, в дизайне — где угодно. Чтобы все могли понять, чем ценен наш опыт и пригодится ли он именно вам, мы попросили двух человек из очень разных частей Яндекса рассказать, что, на их взгляд есть уникального в умениях Яндекса и что мы умеем делать лучше всего. Они оба работали с ребятами и читали лекции в предыдущих кемпах.

Один из них — Анатолий anatolix Орлов, который работает в Яндексе уже почти 10 лет. Первые два года в Яндексе он писал Маркет, а потом долго занимался производительностью поиска. Второй — Костя Горский, арт-директор Яндекс.Браузера. Он в Яндексе чуть больше четырех лет. Недавно его команда представила новую концепцию Браузера.
Читайте под катом не только их разные мнения, но и подробности о кемпе.
Читать дальше →
Total votes 52: ↑39 and ↓13 +26
Comments 21

Яндекс открывает новое направление своей деятельности — Yandex Data Factory

Reading time 4 min
Views 56K
Только что в Париже на конференции LeWeb Яндекс объявил об открытии нового важного направления своей деятельности — по коммерческой обработке больших данных — Yandex Data Factory.

Мы верим, что обработка больших данных — это часть нового витка технической революции, который сделает всё человечество ещё более эффективным и приведёт нас к будущему, которое мы сейчас ещё даже не можем до конца представить. И в нём работа с большими объёмами данных будет не менее важной и распространённой, чем выработка электричества или железные дороги сегодня.



Перед публичным запуском Yandex Data Factory мы провели несколько пилотных проектов с компаниями-партнёрами. Для компании, обслуживающей линии электропередач, в Yandex Data Factory создали систему, которая анализирует сделанные беспилотниками снимки и автоматически выявляет угрозы: например, деревья, растущие слишком близко к проводам. А для автодорожного агентства проанализировали данные о загруженности дорог, качестве покрытия, средней скорости движения транспорта и аварийности. Это позволило в режиме реального времени составлять прогноз заторов на дорогах на ближайший час и выявлять участки с высокой вероятностью ДТП.
Читать дальше →
Total votes 95: ↑84 and ↓11 +73
Comments 32

Краткая история хакерства. Рассказ от руководителя информационной безопасности Яндекса

Reading time 6 min
Views 108K
Привет! Меня зовут Антон Карпов, в Яндексе я руковожу службой информационной безопасности. Недавно передо мной встала задача рассказать школьникам — студентам Малого ШАДа Яндекса — о профессии специалиста по безопасности. Я решил, что вместо скучной теории, которую и так можно прочитать в учебниках (да и что расскажешь за одну лекцию!), лучше рассказать историю компьютерной безопасности. На основе лекции я подготовил этот короткий рассказ.



Как ни крути, а информационная безопасность у многих прочно ассоциируется с хакерами. Поэтому и рассказать я хочу сегодня про хакеров и их историю. В наши дни под хакером понимается злоумышленник, который делает что-то нелегальное, взламывает какие-то системы с материальной выгодой для себя. Но это далеко не всегда было так.
Конспект лекции
Total votes 79: ↑69 and ↓10 +59
Comments 29

Асинхронность 2: телепортация сквозь порталы

Reading time 27 min
Views 49K


Не прошло и года, как я добрался до продолжения статьи про асинхронность. Эта статья развивает идеи той, самой первой статьи про асинхронность [1]. В ней обсуждается достаточно сложная задача, на примере которой будет раскрыта мощь и гибкость использования сопрограмм в различных нетривиальных сценариях. В заключение будут рассмотрены две задачи на состояние гонки (race-condition), а также небольшой, но очень приятный бонус.
Читать дальше →
Total votes 63: ↑60 and ↓3 +57
Comments 28

Allure — фреймворк от Яндекса для создания простых и понятных отчётов автотестов [для любого языка]

Reading time 4 min
Views 147K
Прежде чем начать рассказ про наш очередной opensource-инструмент, давайте я поясню, для чего мы его сделали. Я довольно много общаюсь с коллегами-тестировщиками и разработчиками из разных компаний. И, по моему опыту, автоматизация тестирования ─ один из самых непрозрачных процессов в цикле разработки ПО. Посмотрим на типичный процесс разработки функциональных автотестов: ручные тестировщики пишут тест-кейсы, которые нужно автоматизировать; автоматизаторы что-то делают, дают кнопку для запуска; тесты падают, автоматизаторы разгребают проблемы.



Я вижу здесь сразу несколько проблем: ручные тестировщики не знают, насколько автотесты соответствуют написанным тест-кейсам; ручные тестировщики не знают, что именно покрывается автотестами; автоматизаторы тратят время на разбор отчётов. Как ни странно, но все три проблемы вытекают из одной: результаты выполнения тестов понятны только автоматизаторам — тем, кто эти тесты писал. Именно это я и называю непрозрачностью.

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

Именно поэтому мы разработали Allure — инструмент, позволяющий внести прозрачность в процесс создания и выполнения функциональных тестов. Красивые и понятные отчёты Allure помогают команде решить перечисленные выше проблемы и начать наконец разговаривать на одном языке. Инструмент имеет модульную структуру, позволяющую легко интегрировать его с уже используемыми инструментами автоматизации тестирования.
Читать дальше →
Total votes 67: ↑66 and ↓1 +65
Comments 19

Сколько часов в день может работать программист? Версии ответа из Яндекса

Reading time 8 min
Views 107K
На этот раз спросили разработчиков Яндекса о том, о чём не так часто спорят, но о чём задумывается каждый в какой-то момент своей жизни. Сколько часов в день могут работать программисты? К кому они ближе — к художникам или к рабочим на заводе? Применим ли к ним восьмичасовой рабочий день? Работает ли разработчик, когда пьёт кофе или спит?



В этот раз на наши вопросы ответили не только те, кто работает в офисе Яндекса в Москве, — доехали мы и до наших коллег в Нижнем Новгороде, чтобы получить чуть большее разнообразных мнений.
Читать дальше →
Total votes 92: ↑77 and ↓15 +62
Comments 52

Какой язык программирования больше всего любят в Яндексе? И всегда ли любовь взаимна

Reading time 12 min
Views 116K
Сегодня мы хотим продолжить серию постов, в которых задаём разработчикам из Яндекса и пользователям Хабра самые острые для любого программиста вопросы. Сегодня это вопрос о том, какой язык программирования для вас любимый.

В любой компании, где есть разработчики, периодически возникают споры о том, ужасен Perl или прекрасен, обязательно ли знать функциональные языки или нет, насколько мотивирован выбор C++, с какого языка программирования нужно начинать учиться и т.п.

А если сотрудников в этой компании несколько тысяч, масштаб бедствия становится поистине грандиозным. Когда я пришла к тем своим коллегам, которых вы увидите в этом посте, то думала, что и причины для любви и ненависти у них будут отличаться. Но оказалось, что все ещё интереснее.



Многие из тех, с кем я говорила, знакомы вам по постам в блоге Яндекса на Хабре: anatolix, kappa, bobuk, yafinder, styskin. Несмотря на то, что многие участники нашего опроса стали руководителями, они продолжают писать код. Под катом можно прочитать подробные ответы, не полностью попавшие в видео, и рассказать, что вы думаете по теме.
Читать дальше →
Total votes 137: ↑120 and ↓17 +103
Comments 129

Новый REST API Яндекс.Диска и Полигон. А также зачем Диску ещё один API и как мы его делали

Reading time 4 min
Views 48K
Многие знают, что у Диска уже достаточно давно есть API на WebDAV. Он достаточно узко заточен под работу с файловой структурой, а у его реализации на разных платформах часто бывают некритичные, но не очень приятные недостатки. Поэтому в дополнение к WebDAV мы запускаем REST API, который позволит разработчикам делать всё то же и немного больше.

Например, при использовании нового API все приложения, которым просто нужно хранить свои файлы в Диске, смогут получать доступ только к своей папке, лежащей в Диске пользователя в папке «Приложения». В WebDAV API сервису для этого придётся получать у пользователя разрешение на запись/чтение всего Диска, а не только конкретной папки.



В этом посте я хочу рассказывать не о структуре или об операциях, которые умеет выполнять наш API — там всё довольно очевидно — а сразу перейду к интересным вещам: что такое Hypermedia и Machine-readable and Self-describing API, и как мы все это реализовали.
Читать дальше →
Total votes 62: ↑57 and ↓5 +52
Comments 27

Как разрабатывать безопасные приложения под Android. Семинар в Яндексе

Reading time 8 min
Views 19K
Доля пользователей, которые применяют в ежедневной жизни мобильные устройства, неуклонно возрастает. Большая часть этих устройств – смартфоны и планшеты на базе iOS, Android и Windows. Мобильность, специфические особенности взаимодействия пользователя с устройством и новые операционные системы – факторы, приводящие к появлению необычных проблем, связанных с информационной безопасностью. Мы рассмотрим часть из этих проблем, их решения, и на практике убедимся, что разработка инструментов для анализа мобильных приложений не так уж сложна.



Начнем с того, что перечислим несколько характерных для большинства мобильных устройств черт, которые могут влиять в том числе и на безопасность:
  • миниатюрность;
  • массовость;
  • универсальность;
  • хранение важных для пользователя данных;
  • постоянное подключение к сети (GPRS/3G/EDGE/WiFi).

Так какие же риски порождают эти особенности. Миниатюрность приводит к тому, что устройство нетрудно потерять, после чего оно потенциально может оказаться в руках злоумышленника. Массовость и простота монетизации делает устройства привлекательными для злоумышленников. Просто заставив телефон послать SMS на платный номер, можно получить неплохую выгоду. Большое количество пользователей также означает, что и процент не очень технически грамотных пользователей достаточно велик. Универсальность мобильных устройств подразумевает, что в них может храниться практически весь спектр персональной информации, которую можно использовать: контакты, переписка, фотографии, видео, пароли и токены от различных важных сервисов вплоть до банковских клиентов. Постоянное подключение к сети – это дополнительный риск, так как злоумышленникам не нужно выгадывать моменты для атаки.
Конспект доклада
Total votes 63: ↑60 and ↓3 +57
Comments 7

На Яндекс.Картах появились панорамы Арктики

Reading time 4 min
Views 39K
Теперь на Яндекс.Картах можно рассматривать самую северную территорию России — архипелаг Земля Франца-Иосифа. Например, исполинские ледники или живописные горы.

А меня зовут Ольга Паршина, и я специалист по съёмке сферических панорам компании neq4, партнёра Яндекса. В августе 2013 года я в составе научной экспедиции за 42 дня сделала панорамы 11 островов архипелага. В этом посте хочу рассказать вам о то, как выглядит летняя Арктика.




В экспедиции к Земле Франца-Иосифа я была среди тех немногих, кем двигал не научный интерес, а желание побывать на самом крайнем севере России. Остальные участники представляли Национальное географическое общество США, парк «Русская Арктика» и Русское географическое общество. Каждый из них — эксперт в своей области: одни изучали микробов, другие заведовали моржами, третьи отвечали за археологию и геологию. Чисто научное общество не первый раз пускается в Арктику, на этот раз в рамках проекта «Девственные моря».

26 июля 2013 года «Поларис» — наше круизное судно, построенное специально для плавания в арктических водах, — вышел из Мурманска и направился к ближайшему острову архипелага, Земле Александры.
Читать дальше →
Total votes 135: ↑130 and ↓5 +125
Comments 30

Искусство понимать с полуслова. Расширение запроса в Яндексе

Reading time 20 min
Views 30K
Сегодня мы расскажем о механизме, который позволяет поиску Яндекса находить именно то, что имел в виду пользователь, как бы кратко и небрежно он ни сформулировал свой запрос.

В мире поиска такой механизм называют расширением поискового запроса. Термин достаточно широкий, включает в себя переформулировки, синонимы, транслит и даже однокоренные слова (последние иногда ошибочно называют поддержкой морфологии).

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

image
Почему нельзя просто так взять и расширить запрос.
Читать дальше →
Total votes 78: ↑75 and ↓3 +72
Comments 28

Разбор задач финала чемпионата мира про программированию ACM ICPC 2013

Reading time 25 min
Views 121K
На прошедшем неделю назад чемпионате мира по командному программированию ACM ICPC 2013 было 11 задач, одну из которых за отведённое время не смогла решить правильно ни одна из команд.

Но кроме команд есть и другие люди, которые профессионально решают задачи, — аналитики чемпионата. В течение трансляции они разбиваются на группы, распределяют задачи и потом рассказывают о них в студии. Множество зрителей следят за эфиром, пока эти ребята не разберут самую последнюю задачу. Кроме того, аналитики подсказывают ведущему, что происходит «на поле», высматривают интересные куски кода, следят за картинкой с веб-камер участников.

В этом году на ACM ICPC был 21 аналитик из Швеции, Нидерландов, США, Словакии, Беларуси и России. И 10 из них были из Яндекса. Все они в разные годы были призёрами ICPC. Специально для Хабра они разобрали все задания чемпионата.

Разбор задачи «Матрёшка» во время трансляции ACM ICPC 2013
Читать дальше →
Total votes 113: ↑110 and ↓3 +107
Comments 14

Яндекс поддержал Wikidata

Reading time 7 min
Views 22K
Сегодня на конференции SemTechBiz в Сан-Франциско было объявлено о том, что проект Wikidata получил от Яндекса грант в размере 150 тысяч евро.

Wikidata — проект Фонда Викимедиа, совместно редактируемая база знаний для централизованного хранения структурированных данных.

Яндекс поддержал Wikidata

Специально для нашего техноблога на Хабре мы расспросили Denny Vrandečić, одного из основателей этого проекта, о том, что такое Wikidata в подробностях, чем отличается от других похожих проектов и какую пользу может принести инфраструктуре будущего интернета и всем его пользователям.

Что такое Wikidata? Какие у этого проекта цели? Почему именно Wikidata стал первым проектом Фонда Викимедиа с 2006 года?

Wikidata — это новый проект Фонда Викимедиа. Главная задача последнего — предоставить каждому человеку на планете свободный доступ ко всем возможным знаниям. Самый известный наш проект — Википедия, открытая энциклопедия, доступная более чем на 200 языках.
Читать дальше →
Total votes 69: ↑64 and ↓5 +59
Comments 34

Web Standards Days в Яндексе

Reading time 2 min
Views 9.3K
Редко в московском офисе Яндекса в 10 утра бывает столько разработчиков, сколько их было утром субботы 24 ноября. И это был не очередной Я.Субботник, как вы могли подумать, а встреча Web Standards Days. В этот раз её совместными усилиями организовали Яндекс и объединение разработчиков «Веб-стандарты» при поддержке W3C.

Мы поговорили с организаторами WSD и некоторыми докладчиками, в том числе представляющими W3C. Они рассказали о том, как появилось мероприятие, какие задачи оно призвано решать и над чем они сами сейчас работают.



Сегодня мы делимся с вами слайдами презентаций, но скоро здесь будут доступны видео самих докладов.
Читать дальше →
Total votes 54: ↑51 and ↓3 +48
Comments 11

Филипп Торчинский из Semonix: установка SmartOS и использование Node.js на ней

Reading time 9 min
Views 10K
29 ноября в офисе Яндекса в Питере я буду проводить научный семинар «DTrace — проверочная работа для вашего кода». Те, кто на YaC 2012 слушал мой доклад «Инфраструктура облачных вычислений на основе ядра Illumos» — да и многие другие — знают, что в Semonix я занимаюсь облачными технологиями, тесно связанными со SmartOS. На семинаре я расскажу, как с помощью технологии DTrace проводить глубокий анализ производительности и детально изучать работу приложения. Поиск по Хабру находит только одну статью про SmartOS, и чтобы на семинар пришло больше тех, кто уже знаком с ней, я решил заранее написать про установку SmartOS и использование Node.js на ней.

Для начала расскажу, для чего нужна SmartOS. Если коротко, её предназначение – быть хост-системой для виртуальных машин. Она часто используется как основа для публичных и частных облаков, например, облачных служб Joyent и MITAC. Службой Joyent пользуется LinkedIn: вся его мобильная серверная часть сделана на Node.js, который запущен в облаке Joyent. Мы подробно писали об этом в блоге компании Semonix в статьях о SmartOS и об облаках, основанных на illumos, а я рассказывал в докладе на YaC 2012, который уже упоминал.

Типичные случаи применения SmartOS – системы для ЦОДов, системы для разработки и эксплуатации нагруженного веб-приложения, платформа для создания приватного или публичного облака. При работе над этой статьей я активно использовал статью Сту Радниджа, который проделывал примерно такой же путь установки SmartOS, как и я, но с использованием VMware вместо VirtualBox.
Читать дальше →
Total votes 27: ↑23 and ↓4 +19
Comments 10

Почта без оленей

Reading time 10 min
Views 55K
Этот пост для тех, кому интересно, как в Яндексе создаются интерфейсы продуктов с многомиллионной аудиторией. Мы хотим максимально подробно рассказать, почему решили создать новую почту Trinity, чем руководствовались в работе над ее дизайном, поделиться с вами решением логических проблем.

На самые популярные и важные вопросы дизайнер нового интерфейса Анна Котляревская ответила в интервью:



Читайте и смотрите, почему мы осмелились убрать рекламу, почему нет групповых операций, куда делись ссылки на другие сервисы, почему нельзя отключить группировку писем по теме — и многое другое.



Читать дальше →
Total votes 147: ↑127 and ↓20 +107
Comments 169

Пять способов повысить продуктивность.

Reading time 3 min
Views 7.6K
По началу я думал что это будет просто перевод одного весьма забавного текста. Но оказалось, что он из рук вон плох, поэтому от него остались только тезисы.

Давайте сразу же договоримся — эти советы подходят в основном программерам, ну и, скажем так, сильно технишн людям. Зададимся вопросом — что такое «продуктивность»? Не знаю как вы, а я вкладываю в это слово очень простое значение. Человек продуктивен, когда выполняет необходимые ему действия с минимальным напрягом для себя и максимальной отдачей для других. В случае программера идеально продуктивным является человек, который легко и непринужденно пишет хороший код за минимальное время. Хватит слов — вот вам советы:

1. Никогда не ищите глазами, пользуйтесь функциями поиска. Всегда, всегда используйте поиск, если вы печатаете быстро. Хороший пример — открытие файла в редакторе. Используйте поиск или комплишн (в зависимости от редактора) и вы увидите насколько это быстрее. То же относится к выбору таба/буфера, если редактор не позволяет перейти в нужный буфер — выкиньте его, иначе смотрите в пункт 4. Идеальный редактор работает так — нажимаем кнопочку (в моем случае Ctrl-X + b) и в строке ввода вписываем первые несколько букв открытого в другом табе файла. Завершаем всё нажатием tab и enter. Таким методом я переключаю открытый буфер за 0.2 секунды. Мышью и глазами я переключаю его за 1.4 секунды. Что приводит нас к следующему пункту.

2. Не повторяйте что-либо более 10 раз. Это критическое число для всех разное, для меня оно именно десять. Автоматизируйте. Больше. Чаще, но не увлекаясь глобализмом. Причем не только в коде, в редакторе, в среде, но и в жизни. Нужно разбить 20 куриных яиц? Сделайте коробочку с дырочками и отсекайте острую часть яйца. 11 раз написать триграмматон на заборе? Сделайте шаблон и купите балон с краской. Не забывайте, что клавиатурные шорткаты есть почти во всем софте. Каждый раз когда вы снимате руки с клавиатуры — теряете время.

3. Учитесь скриптовым языкам. Python, Ruby, Perl, Bash, Javascript, CMD, VBasic. Просто хватайте тот, который ближе к вам и пишите-пишите-пишите. Понятно, что выбрать просто, если вы работаете в windows — для вас только CMD и VBasic. Юниксоидам доступно чуть больше, думаю это одна из причин почему гики так активно пересаживаются на Linux. Я знаю, что учиться не легко — но надо. Есть один странный рецепт — попробуйте в течение 2-3 недель работать из консоли. Нет, не надо отказываться от окон и тп — просто откройте окно терминала или cmd и работайте из него, запустив нужный вам скриптовый интерпретатор. И ради бога, никаких far/mc/nc и тп. — ваша цель научиться писать скрипты. После этих 2х недель вы вернетесь к привычной среде с довольно большим знанием о том, как же устроен скриптовый язык. Напомню, для python и ruby есть ipython и iruby. Для perl есть mshell, остальные интерпретируемы сами по себе.

4. Изучите свой IDE настолько, насколько это возможно. В идеале — откажитесь от IDE в пользу хорошего текстового редактора. Я имею ввиду редактора. Например ViM или Emacs. Пользователи MacOS могут использовать и TextMate, однако мне он кажется жалким подобием левой руки (слабой пародией на MicroEmacs). Да, и уверяю вас — оба редактора, и ViM, и Emacs имеют столько возможностей, сколько не снилось любому другому. В то же время оба они прекрасно работают без донастройки, хотя я предпочитаю Emacs. Конечно многие еще помнят что Emacs раcшифровывается как Eight Megs And Constantly Swaping, но 8 метров памяти уже давно перестали быть чем-то из ряда вон выходящим. Окей, вернемся. Выберите редактор. И теперь используйте его везде, где только можно. Вбейте себе в голову — вы используете ТОЛЬКО этот редактор. Потому что достаточно хорошо знать два редактора невозможно. Знатоки утверждают что работая со своим редактором на полную катушку вы получаете буст к производительности в 200-500%. И глядя на Бацека, например, я в это верю. И единственный минус от этого знания только в одном — вы не сможете от этого отвыкнуть.

5. Изучайте технологии и пишите маленькие программки. Выделяйте себе 20-30 процентов времени на ковыряние в новых движках или базах данных. Да, двадцать-тридцать процентов времени. Я знаю что обычно на это выделятся куда меньше — но меня-то не надо обманывать, я ж сам такой был, и хорошо знаю сколько процентов времени программист пишет код. Подвиньте чуть-чуть время, выделяемое вами на чтение LiveJournal и закопайтесь по локоть в Django. Или сядьте и напишите скрипт для накручивания голосов на Хабре. В общем проводите время весело и с пользой. Это сильно помогает отдохнуть на работе не теряя темпа. А главное — это очень неплохо сказывается на структуре вашего кода — теперь вы знаете как и что делают другие.

В общем что я хочу сказать. Стоит немного напрячься, и ваш код сам будет вылетать у вас из-под пальцев. Это я уже не говорю о том что ваши волосы станут чистыми и шелковистыми, а девочки с рецепшна прибегут к вам сами. Удачи.
Total votes 43: ↑38 and ↓5 +33
Comments 49

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity