Хабрахабр:
Вступление В этой небольшой статье я расскажу о теории категорий в контексте системы типов языка Haskell. Никакой зауми, никаких уловок ? постараюсь объяснять всё наглядно. Я хочу показать тесную связь языка программирования с математикой, чтобы спровоцировать у читателя осознание одного, через другое и наоборот. Не хотелось бы повторять перевод на эту тему, который уже был на хабре: Монады с точки зрения теории категорий, но для целостности статьи, я всё же буду давать основные определения. При этом, в отличие от той статьи, я не хочу делать основной упор на математику. Эта статья во многом повторяет (в том числе заимствует иллюстрации) раздел из английской Haskell Wikibook, но тем не менее не является непосредственным переводом. Что такое категория? Примеры Для наглядности рассмотрим сначала пару картинок изображающих простые категории. На них есть красные кружочки и стрелки: Красные кружочки изображают ?объекты?, а стрелки ? ?морфизмы?. Я хочу привести один наглядный пример из реальной жизни, который даст какое-то интуитивное представление о природе объектов и морфизмов: Можно считать города ?объектами?, а перемещения между городами ? ?морфизмами?. Например, можно представить себе карту авиарейсов (как-то не нашёл я удачную картинку) или карту железных дорог ? они будут похожи на картинки выше, только сложнее. Следует обратить внимание на два момента, которые кажутся в реальности само собой разумеющимися, но для дальнейшего имеют важное значение: Бывает, что из одного города в другой никак не попасть поездом или самолётом ? между этими городами нет морфизмов. Если мы перемещаемся в пределах одного и того же города, то это тоже морфизм ? мы как бы путешествуем из города в него же. Если из Санкт-Петербурга есть поезд до Москвы, а из Москвы есть авиарейс в Амстердам, то мы можем купить билет на поезд и билет на самолёт, ?скомбинировать? их и таким образом попасть из Санкт-Петербурга в Амстердам ? то есть можно на нашей карте нарисовать стрелку от Санкт-Петербурга до Амстердама изображающую этот скомбинированный морфизм. Надеюсь, с этим примером всё понятно. А теперь немного формализма для чёткости. Читать дальше →
Спасибо всем, кто пытался поиграть в первый раз. Очень жаль, что я разочаровал столько людей жуткими тормозами игры. Но я мог бы и не догадаться до их причины, если бы не вы. Сейчас сервер порядком оптимизирован, но количество одновременных игр увеличено всего до пяти. Это незначительно, но дело уже не в производительности сервера, а в том, что в худшие вечерние часы скорость моего интернета не позволит больше. Заманухи ради появилась возможность выбрать уровень перед стартом игры. А также в ответ на ?обидный? комментарий, появилась возможность поиграть 2 на 2. Итак ? демка. Сейчас остается надеяться, что я не сильно поспешил, и сервер не подведет. Под катом я расскажу, каких глупостей наделал в первой версии. Читать дальше →
Лето 2010 года ? TeamLab доступен на 5 языках: английский, испанский, немецкий, французский и русский. Осень 2011 года ? уже свободно владеет 10 языками: добавились итальянский, латышский, греческий, турецкий и частично португальский. Совсем скоро TeamLab ?заговорит? на польском, китайском и чешском, а также полностью ?выучит? два варианта португальского языка, еще чуть позже мы, надеюсь, ?услышим? его на украинском, шведском, корейском и даже индонезийском. Как закаляется языковая сталь, мы узнаем в этом посте из уст не только наших разработчиков, но и специалистов отдела технических писателей. Читать дальше →
Наша страна огромна и необъятна и даже такому гиганту, как IBM, не под силам охватить своими представительствами все крупные города и быстроразвивающиеся регионы России. Но такая необходимость есть ? практически каждый уголок страны производит по-своему уникальные товары или добывает то, чего на других территориях нет, а значит ? везде найдется бизнес, заинтересованный в методах оптимизации, которые предлагает компания IBM. По этой причине мы решили открыть виртуальные офисы в девяти городах России. До сих пор локальные офисы были расположены только в самых крупных городах: Москве, Санкт-Петербурге, Казани, Ростове, Самаре, Екатеринбурге, Новосибирске и Красноярске. Читать дальше →
Существует много разных взглядов на разработку архитектуры и дизайна современных приложений. Некоторые архитекторы стремятся продумать все до мелочей, разрисовать use case-ы всех классов и модулей, проанализировать миллион возможных способов их использования, все их обязательно задокументировать и уже потом приступить к этапу кодирования. Другие, наоборот, считают, что ?думать уже поздно? и давным-давно пора ?делать?, поэтому они кидаются на баррикады с криками ?Ура?, выдавая на гора тонны никому не нужного кода. Как и любая крайность, такой подход не приводит ни к чему хорошему. Но, как и во многих других случаях, существует промежуточный вариант, когда проектированию и архитектуре уделяется должное внимание, когда они не ставятся во главу угла, а используются для выявления правильных абстракций и поиска компромиссов в противоречивых требованиях заказчика. Читать дальше →
Докладом ?Эволюция разработки? открываю серию расшифровок с Форума Технологий Mail.Ru 2011. Данная расшифровка была получена в день мероприятия, 16 ноября 2011 года. Подробности о том, как работает система расшифровки докладов — см. в статье ?Изнанка? Форума технологий Mail.Ru: Хай-тек в event-management (Скачать видеоверсию для мобильных устройств ? iOS/Android H.264 480x368, размер 204 Mb) (Скачать видеоверсию большего разрешения H.264 624x480, размер 610 Mb) (Скачать слайды презентации, 2Mb) Вступление вице-президента Mail.Ru Group, технического директора Габриеляна Владимира — Коллеги, я надеюсь, что вам понравился обед. Сытые, добрые, довольные. Напишите в ?Твиттер?. На самом деле я хочу представить нашего следующего докладчика. Знаете, в каждой компании есть человек, которого можно назвать ?Мистер ?Я знаю как?, человек, который находится в курсе всех технологий, человек, который имеет очень правильное визионерское мышление, и он во многом определяет нашу технологическую политику в ?Mail.ru Group?. Это Игорь Ермаков, заместитель технического директора, то есть меня. Игорь сегодня расскажет нам о том, как мы эволюционировали в наших технологиях на протяжении 13 лет, и, если вы внимательно будете слушать этот доклад, он на самом деле поможет вам перескочить те этапы развития, которые мы уже прошли, и сразу перейти к тем технологиям, которые мы используем в Mail.Ru. Игорь! Читать дальше →
Мы понимаем, что ближе к Новому году в голове студента основное место начинают занимать мысли о сессии, но тем не менее хотим пригласить вас принять участие в очередном нашем субботнем мероприятии – Imagine Cup Student Camp. Это мероприятие для тех, кто: Уже участвовал в крупнейшем студенческом конкурсе Imagine Cup и хочет в этом году улучшить свои успехи Слышал про Imagine Cup, но не принимал участия, потому что не мог придумать идею, найти команду и т.д. Никогда не слышал про Imagine Cup, но хочет узнать, как получить ценнейшие знания и опыт создания программных проектов, интересную строчку в резюме, а также как летом 2012 г. поехать в Австралию. Хочет научиться программировать контроллер Kinect или телефон Windows Phone 7. Приходите в субботу, 3 декабря 2011 г., в 11:00 в наш офис в Крылатском – будет интересно! По возможности, берите с собой ноутбуки. Основные моменты мероприятия: Читать дальше →
Путеводитель по редкому частоколу wintel-трансформеров. В огромном количестве очень похожих моделей нетбуков трудно найти что-нибудь уникальное, чтобы было выделяющимся из ряда и при этом полезным по потребительским свойствам. В какие стороны смотрит потребитель (с некоторым уклоном в сторону разработок и чтения в дороге)? Перечислим ниши, которые могут интересовать, сознательно ограничившись слабыми недорогими моделями. 1. Минимальный по цене и желательно максимальный по времени автономной работы. 2. С более приличным по количеству точек экраном. 3. С хорошими характеристиками производительности (среди слабых), чтобы можно было компилировать проекты или смотреть фильмы (до игр далеко). 4. Крайне гиковский с Андроидом на борту, малым твердотельным диском и малым весом. Вот и все основные ниши, которые видятся как привлекательные. Как ещё несколько вариантов уклона, можно выбрать смартфон с Андроидом, планшет под универсальную ОС или iPad. И тут среди этого разнообразия нетбуков появляется ещё один класс устройств ? комбинация нетбука и планшета, и, к тому же, модели с привлекательными характеристиками. В народе их прозвали трансформерами (Convertible Tablets). Но ? обо всём по порядку. Не будем уподобляться другим обзорам с множеством фотографий, отошлём желающих по ссылкам. Данный обзор ? это ?picture-less? сравнение моделей с целью выбора подходящей по потребностям. Читать дальше →
Создание панорам занятие достаточно непростое и кропотливое, но зато результат от кропотливых действий будет радовать и вас, как творца, и пользователей. Создание панорам, это не такое простое занятие, как может показаться на первый взгляд. Я сталкивался с тем, что пользователи говорят следующее: ?Для создание панорам необходимо только сфотографировать несколько кадров с перекрытием, а затем выровнять кадры в специальной программе, склеить их и получить готовую панораму.? Можно сказать, что данное утверждение верно. но только для начинающего фотографа. Полученный результат может удовлетворить. Но, если фотограф хочет профессионально развиваться, то нужно отнестись с критикой к своим предыдущим работам. Посмотреть на них как первый базовый кирпичик. Основу будущего мастерства в создании бесшовных панорам. Читать дальше →

Отписаться от этой рассылки