Thursday, November 24, 2011

Хабрахабр

КупиКупон - скидки от 50% до 90%

Хабрахабр:

Вместо вступления Если кто не знает, Go (www.golang.org) ? компилируемый язык программирования, разрабатываемый несколькими парнями из Google. Как и все хочет быть ?лучше чем C?. Полностью open-source. Языку недавно исполнилось 2 года и в марте 2012 планируется первый major релиз. Меня язык заинтересовал своей простотой и необычным подходом к ООП и многопоточности. Захотелось попробовать. Но будучи виндузятником и разбалованный платформой .Net, C# и Visual Studio мне было трудно именно начать. Хотя на самом деле это оказалось совсем просто, и достаточно быстро я настроил себе удобный Environment, состоящий, по сути, из IDE с подобием IntelliSense. О том, как это сделать за 15 минут я и хотел бы рассказать. Читать дальше →


Вступление В этой небольшой статье я расскажу о теории категорий в контексте системы типов языка Haskell. Никакой зауми, никаких уловок ? постараюсь объяснять всё наглядно. Я хочу показать тесную связь языка программирования с математикой, чтобы спровоцировать у читателя осознание одного, через другое и наоборот. Не хотелось бы повторять перевод на эту тему, который уже был на хабре: Монады с точки зрения теории категорий, но для целостности статьи, я всё же буду давать основные определения. При этом, в отличие от той статьи, я не хочу делать основной упор на математику. Эта статья во многом повторяет (в том числе заимствует иллюстрации) раздел из английской Haskell Wikibook, но тем не менее не является непосредственным переводом. Что такое категория? Примеры Для наглядности рассмотрим сначала пару картинок изображающих простые категории. На них есть красные кружочки и стрелки: Красные кружочки изображают ?объекты?, а стрелки ? ?морфизмы?. Я хочу привести один наглядный пример из реальной жизни, который даст какое-то интуитивное представление о природе объектов и морфизмов: Можно считать города ?объектами?, а перемещения между городами ? ?морфизмами?. Например, можно представить себе карту авиарейсов (как-то не нашёл я удачную картинку) или карту железных дорог ? они будут похожи на картинки выше, только сложнее. Следует обратить внимание на два момента, которые кажутся в реальности само собой разумеющимися, но для дальнейшего имеют важное значение: Бывает, что из одного города в другой никак не попасть поездом или самолётом ? между этими городами нет морфизмов. Если мы перемещаемся в пределах одного и того же города, то это тоже морфизм ? мы как бы путешествуем из города в него же. Если из Санкт-Петербурга есть поезд до Москвы, а из Москвы есть авиарейс в Амстердам, то мы можем купить билет на поезд и билет на самолёт, ?скомбинировать? их и таким образом попасть из Санкт-Петербурга в Амстердам ? то есть можно на нашей карте нарисовать стрелку от Санкт-Петербурга до Амстердама изображающую этот скомбинированный морфизм. Надеюсь, с этим примером всё понятно. А теперь немного формализма для чёткости. Читать дальше →


Чарльз Мур, создатель языка программирования Форт (Forth), довёл до стадии промышленного производства уникальную разработку ? многоядерный процессор GA144. Чип размером 10х10 мм уже поступил в продажу по цене $20 (при заказе от десяти штук), также доступны материнские платы для него. Фактически, это аппаратное воплощение самого языка программирования Форт. Крайне необычный процессор по ряду параметров не имеет себе равных среди CPU: 144 независимых ядра, которые активируются только при поступлении инструкции, то есть у этого процессора нет такой характеристики как ?тактовая частота?; скорость выполнения инструкций 1400 пикосекунд (эквивалент 700 МГц); энергопотребление 7 пикоджоулей на одну инструкцию; энергопотребление в ?спящем? режиме менее 100 нановатт; Читать дальше →



(Источник картинки) Всё началось с того, что мне понадобился запасной мобильный телефон. Понимание необходимости запасной ?звонилки? пришло после того, как разряжающийся под конец дня до потери сознания (буквально) смарт во второй раз оставил без связи в критической ситуации. Так или иначе, но выбор пал на МТС-252. Несмотря на то что использовать телефон с другими операторами я не собирался, хакер во мне потребовал поискать информацию о возможности и способе ?отвязки? от МТС. Читать дальше →


Спасибо всем, кто пытался поиграть в первый раз. Очень жаль, что я разочаровал столько людей жуткими тормозами игры. Но я мог бы и не догадаться до их причины, если бы не вы. Сейчас сервер порядком оптимизирован, но количество одновременных игр увеличено всего до пяти. Это незначительно, но дело уже не в производительности сервера, а в том, что в худшие вечерние часы скорость моего интернета не позволит больше. Заманухи ради появилась возможность выбрать уровень перед стартом игры. А также в ответ на ?обидный? комментарий, появилась возможность поиграть 2 на 2. Итак ? демка. Сейчас остается надеяться, что я не сильно поспешил, и сервер не подведет. Под катом я расскажу, каких глупостей наделал в первой версии. Читать дальше →


Многие пользуются плагинами вроде Readability для зачистки сайтов от рекламы и другого лишнего контента. Проблема в том, что Readability справляется не со всеми сайтами. Например, на том же Youtube он убирает не только рекламу, но и сами видеоролики. В качестве альтернативы можно использовать плагин Clea.nr, который кардинально очищает интерфейс. Результат применения Clea.nr. Расширение Clea.nr (раньше было известно как Cleaner YouTube) есть для Chrome, Firefox и Safari. Распространяется под девизом ?За чистый интернет?.


К написанию данного топика меня подтолкнула одна заметка о генерации xls в PHP. Способ, представленный в той заметке действительно очень прост, но не всегда может быть удобен. Есть множество других способов передать табличные данные из PHP в Excel, я опишу тот, который показался мне наиболее простым и функциональным. Нужно особенно отметить, что что я не говорю о генерации xls файла, а лишь предлагаю пользователю открыть полученные данные при помощи Excel так, что пользователи не искушённые в программировании не заметят подлога. Читать дальше →


Лето 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 в наш офис в Крылатском – будет интересно! По возможности, берите с собой ноутбуки. Основные моменты мероприятия: Читать дальше →


Timsort, в отличии от всяких там ?пузырьков? и ?вставок?, штука относительно новая ? изобретен был в 2002 году Тимом Петерсом (в честь него и назван). С тех пор он уже стал стандартным алгоритмом сортировки в Python, OpenJDK 7 и Android JDK 1.5. А чтобы понять почему ? достаточно взглянуть на вот эту табличку из Википедии. Среди, на первый взгляд, огромного выбора в таблице есть всего 7 адекватных алгоритмов (со сложностью O(n logn) в среднем и худшем случае), среди которых только 2 могут похвастаться стабильностью и сложностью O(n) в лучшем случае. Один из этих двух ? это давно и хорошо всем известная ?Сортировка с помощью двоичного дерева?. А вот второй как-раз таки Timsort. Алгоритм построен на той идее, что в реальном мире сортируемый массив данных часто содержат в себе упорядоченные (не важно, по возрастанию или по убыванию) подмассивы. Это и вправду часто так. На таких данных Timsort рвёт в клочья все остальные алгоритмы. Читать дальше →



Symfony2 ? это веб-фреймворк, который появился совсем недавно. Соответственно, разработчики просто не успели написать к нему стоящую документацию. В одном из текущих проектов используется MongoDB, и ACL прикрутить нему можно, нужно всего лишь написать свой ACL-провайдер. Но я решил пойти своим путём. Итак, вот что примерно у нас получится: class DefaultController extends Controller { /** * Dashboard page. * @Permissions(perm="dashboard_view") * @Route("/", name="ITEDashboardBundle_index") * @Template() * @return array */ public function indexAction() {....... Читать дальше →



Эта статья является второй из серии статей о нововведениях на сайте Государственной Думы (статья 1). В настоящий момент набирает популярность концепция open government (?открытое государство?). К примеру, на сайте data.gov публикуются большие объемы данных государственных ведомств США, а на сайте data.gov.uk публикуются аналогичные материалы Великобритании. Важным аспектом публикации структурированной информации является возможность её получения в машиночитаемом виде. Понятно, что и HTML таблицу можно достаточно успешно распарсить, но предоставление информации в удобном для интеграции с внешними системами виде ? очень важный показатель открытости. Поэтому, разработка API для системы поиска по законопроектам стала важным этапом реализации концепции ?открытое государство? в рамках сайта Государственной Думы. Теперь данные о законопроектах могут быть легко интегрированы во внешние информационные системы. Например, аналитический портал может рядом со статьей, посвященной тому или иному законопроекту, разместить виджет, который будет отражать актульную информацию о ходе рассмотрения законопроекта. Читать дальше →


Путеводитель по редкому частоколу wintel-трансформеров. В огромном количестве очень похожих моделей нетбуков трудно найти что-нибудь уникальное, чтобы было выделяющимся из ряда и при этом полезным по потребительским свойствам. В какие стороны смотрит потребитель (с некоторым уклоном в сторону разработок и чтения в дороге)? Перечислим ниши, которые могут интересовать, сознательно ограничившись слабыми недорогими моделями. 1. Минимальный по цене и желательно максимальный по времени автономной работы. 2. С более приличным по количеству точек экраном. 3. С хорошими характеристиками производительности (среди слабых), чтобы можно было компилировать проекты или смотреть фильмы (до игр далеко). 4. Крайне гиковский с Андроидом на борту, малым твердотельным диском и малым весом. Вот и все основные ниши, которые видятся как привлекательные. Как ещё несколько вариантов уклона, можно выбрать смартфон с Андроидом, планшет под универсальную ОС или iPad. И тут среди этого разнообразия нетбуков появляется ещё один класс устройств ? комбинация нетбука и планшета, и, к тому же, модели с привлекательными характеристиками. В народе их прозвали трансформерами (Convertible Tablets). Но ? обо всём по порядку. Не будем уподобляться другим обзорам с множеством фотографий, отошлём желающих по ссылкам. Данный обзор ? это ?picture-less? сравнение моделей с целью выбора подходящей по потребностям. Читать дальше →


Создание панорам занятие достаточно непростое и кропотливое, но зато результат от кропотливых действий будет радовать и вас, как творца, и пользователей. Создание панорам, это не такое простое занятие, как может показаться на первый взгляд. Я сталкивался с тем, что пользователи говорят следующее: ?Для создание панорам необходимо только сфотографировать несколько кадров с перекрытием, а затем выровнять кадры в специальной программе, склеить их и получить готовую панораму.? Можно сказать, что данное утверждение верно. но только для начинающего фотографа. Полученный результат может удовлетворить. Но, если фотограф хочет профессионально развиваться, то нужно отнестись с критикой к своим предыдущим работам. Посмотреть на них как первый базовый кирпичик. Основу будущего мастерства в создании бесшовных панорам. Читать дальше →


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

No comments:

Post a Comment