Как стать автором
Обновить
32
0
Илья Константинович Никитин @w495

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

Отправить сообщение

Как лучше всего поучаствовать в Imagine Cup Software Design, поехать в Австралию и победить

Время на прочтение3 мин
Количество просмотров4K
Приближается 15 февраля 2012 г. – срок подачи заявок на конкурс программных проектов Imagine Cup. В этой связи мы всё чаще слышим от студентов примерно следующее: «Да, Imagine Cup – это очень интересно, и нам хотелось бы поехать на финал в Австралию, но мы совсем не знаем, с чего начать. Не можем придумать гениальную идею для проекта…» или «я по вечерам делаю отличный проект, но он совсем не подходит для Imagine Cup»



Специально для того, чтобы помочь студентам избежать таких сомнений, придумать идею и поучаствовать в конкурсе наиболее эффективно — мы проводим мероприятия Imagine Cup Student Camp. Такое мероприятие уже прошло в Москве, а 11 февраля будет в Питере. Кроме того, специально для тех, кто живёт далеко — мы проведём сокращенную версию мероприятия, Imagine Cup Virtual Student Camp 26 января в 15:00 по Москве.

Ниже я хотел бы поделиться своими соображениями по поводу того, как и с чего можно начать.
Читать дальше →
Всего голосов 22: ↑16 и ↓6+10
Комментарии3

Использование Rebar и GProc

Время на прочтение8 мин
Количество просмотров13K

Использование Rebar



Этот туториал может содержать устаревшие сведения, так как Rebar очень активно развивается без сохранения совместимости с предыдущими версиями.

При разработке на Erlang часто приходится собирать зависимости из разных источников, следить за их нужными версиями, создавать OTP-релизы для распространения проектов. Дела достаточно рутинные и неприятные. Для того, чтобы разработка меньше доставляла неприятных моментов, компанией Basho был создан очень удобный инструмент — Rebar. В этой статье я постараюсь раскрыть преимущества от его использования на реальном примере с использованием сторонних зависимостей и созданием конфигурируемых OTP-релизов.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии17

MapReduce для начинающих на Erlang'e

Время на прочтение3 мин
Количество просмотров4.5K
Я продолжаю свое погружение в Эрланг. Уже есть хитрый план переписать один из наших сервисов для мониторинга на Эрланге. Мы тут осваиваем облака Windows Azure и Amazon EC2 в качестве платформы для некоторых продуктов и внутренних задач типа QA, поэтому возможность использовать много ядер и машин без переписывания кода выглядить перспективно.

Итак, для начала простой, но реальный пример — есть проект ~2000 файлов. Надо составить список используемых переменных окружения. То есть найти вхождения строк «getenv(...)» и «GetVariable(...)» (это наш wrapper) и выдрать из них параметр.

Задача незамысловатая и давно решается программой на C++, которая даже обход каталогов не делает, а просто вызывает юниксовый «find», генерирующий список файлов по маске, и затем по списку лопатит файлы. На 2000 файлах работает пару секунд в один поток.

Теперь Эрланг. Тут хочется замутить что-нибудь более кучерявое, чем последовательный обход файлов. MapReduce как раз в тему — можно составить список файлов, затем анализ каждого файла делать параллельно (Map), аккумулируя найденных имена переменных, и в конце обработать все полученные входждение (Reduce), в нашем случае просто подсчитать количество вхождения каждой переменной.

Далее
Всего голосов 36: ↑31 и ↓5+26
Комментарии14

На парусах HTML5. Как новые технологии меняют современный веб

Время на прочтение19 мин
Количество просмотров36K
Статья по следам моего доклада на концеренции User Experience`11.

Что такое HTML5?



Сегодня про HTML5 их числа тех, кто так или иначе связан с веб-разработкой, не слышал только ленивый. Вы не сильно прогадаете, предположив, что на каждой модной конференции, где есть что-то про веб, почти наверняка, звучит и что-то про HTML5. Практически каждая крупная компания, связанная с вебом, будь то Google, Apple, Microsoft, Amazon, Adobe, Oracle, Facebook, Яндекс, Mail.ru… говорит что-нибудь про HTML5, расписывается в любви на века и приверженности продвижению и развитию HTML5. Yeah! (Opera и Mozilla, безусловно, тоже в этом списке.)

Это всеобщее стремление может только радовать. Конечно, до тех пока участники рынка не начинают тянуть одеяло на себя, а садятся все вместе за стол и договариваются.

Огромные перспективы, новая волна развития веба, новое поколение веб-приложений! Круто.
Читать дальше →
Всего голосов 55: ↑43 и ↓12+31
Комментарии10

Prolog — удивительный язык программирования

Время на прочтение10 мин
Количество просмотров206K
— Чем же он удивительный? Я знаю пару десятков языков и для меня не проблема изучить еще один новый, я просто уже не вижу необходимости.

Пролог — уникален. Это единственный язык представляющий парадигму декларативного программирования; это язык, который имеет сотни различных имплементаций, но они все равно называются Prolog, добавляя лишь префиксы и суффиксы к названию; это живой язык в котором не происходит никаких существенных изменений более 20 лет; это, наверное, единственный настолько популярный язык программирования, который не имеет применения в реальном программировании. Почему же Prolog?

Пролог — уникален по своей природе, он появился благодаря счастливому совпадению (таинственному устройству мира). Когда-то в 60-х годах очень бурно развивалась теория автоматического доказательства теорем и Робинсоном был предложен алгоритм резолюций, который позволял доказать любую верную теорему (вывести из аксиом) за конечное время (за какое не известно). Как оказалось позже, это наилучшее решение общей задачи, невозможно доказать теорему за ограниченное число операций. Простыми словами, алгоритм представляет собой обход (в общем случае бесконечного) графа в ширину, естественно, что предсказуемость работы алгоритма практически равно 0, соответственно для Языка Программирования — это абсолютно не подходит. И в этот момент Кальмэроу нашел блестящее сужение задачи, благодаря которому доказательство некоторых теорем выглядело как процедурное исполнение программы. Стоит отметить, что класс доказуемых теорем достаточно широк и очень хорошо применим для класса программируемых задач. Вот так в 1972 появился Prolog.

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

Читать дальше →
Всего голосов 101: ↑93 и ↓8+85
Комментарии116

Локализация с помощью сущностей

Время на прочтение3 мин
Количество просмотров2.6K
Существует довольно много способов локализации XSLT-шаблонов, некоторые способы описаны студией Лебедева, но сегодня я расскажу о локализации с помощью сущностей.

ENTITY


C начала о том, что же такое «сущности», не углубляясь в DTD. Сущности — это своеобразные константы в XML-документе, описываемые с помощью DTD, и используемые в качестве сокращений. Примером такой замены могут служить буквенные обозначения символов, не присутствующих на стандартной раскладке клавиатуры (©, ®, ₤ и т.д.). Сущности описываются следующим образом:
Читать дальше →
Всего голосов 48: ↑42 и ↓6+36
Комментарии29

Получение дерева уникальных элементов при помощи цепочного преобразования

Время на прочтение12 мин
Количество просмотров2.6K
Многие ругают xslt за его ресурсоемкость, некрасивость, негибкость, сложность…да много за что еще, наверное, его ругают. Как раз для тех, кто ругает его по последним трем пунктам я и написала данный пост.

Этот пост признан компенсировать пробел в ваших знаниях и представить xslt во всей его красоте.

Недавно передо мной встала задача написать скрипт, который бы из исходного xml получал xml, состоящий только из уникальных элементов. Об исходном файле ничего заранее не известно, абсолютно ничего.
Читать дальше →
Всего голосов 30: ↑26 и ↓4+22
Комментарии16

Решение проблем обработки XSLT на стороне клиента (часть 2)

Время на прочтение5 мин
Количество просмотров8.5K
В прошлой статье я описал как реализовать инклудинг и кеширование при обработке xsl-темплейтов на стороне клиента. Сегодня я раскажу с помощью каких инструментов можно проводить отладку xslt-преобразований на стороне клиента и о работе конструкции <xsl:value-of select=«xxx» disable-output-escaping=«yes»/> в firefox.

Отладка XSLT на клиенте


Во время обработки xsl-документов в браузере могут происходить различные ошибки:
1) сетевые ошибки — когда xml или xsl данные не были получены;
2) ошибки обработки шаблонов.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии11

Облако тегов средствами XSLT

Время на прочтение7 мин
Количество просмотров2.9K
Не так давно столкнулся с необходимостью реализовать на одном из проектов то, что в народе называют «облаком тегов» — набор ссылок, в котором наиболее «весомые» элементы имеют бОльший размер. Для этого можно было бы, конечно, посчитать и получить все необходимые данные в PHP, на котором работает проект, но мне хотелось сделать конечный вариант отображения на XSLT и CSS, чтобы все необходимые величины для конфигурирования максимальных/минимальных размеров шрифта, например, были заданы в представлении, а не в логике приложения.

Возможно, кому-то мой опыт окажется полезным, поэтому публикую конечное решение здесь.

Итак, на входе у нас есть простейший XML с тегом и количеством его упоминаний:

Читать дальше →
Всего голосов 36: ↑29 и ↓7+22
Комментарии31

Chosen: сделай выпадающие списки более дружественными

Время на прочтение1 мин
Количество просмотров54K
Плагин Chosen создан для оформления красивых и удобных выпадающих списков с помощью jQuery и Prototype. Для установки плагина достаточно просто скачать файлы и прописать одну строчку:

$(".chzn-select").chosen()
(версия для jQuery)

По умолчанию в Chosen вместо длинного текстового списка предлагается поле, по нажатию на которое появляется список. Поддерживается автодополнение ввода, выбор нескольких пунктов меню, элемент optgroup и др. Выглядит вполне нативно. В общем, лучше один раз увидеть.

Поскольку Chosen заменяет стандартный элемент HTML, то не нужно беспокоиться, как он работает с браузерами без поддержки JavaScript. Также не нужно ничего менять в бэкенде: формы сабмиттятся как обычно, изменения только в пользовательском интерфейсе.

Некоторые форки:
Chosen для MooTools
Модуль Chosen для Drupal 7
Всего голосов 264: ↑250 и ↓14+236
Комментарии57

Компилятор .NET в JavaScript и пример XNA-демо в браузере

Время на прочтение1 мин
Количество просмотров2.2K
Разработчик Kevin Gaad, который судя по его профилю работает в компании Mozilla, представил свою разработку – компилятор .NET(C#) кода в JavaScript. Для демонстрации работоспособности библиотеки Кевин опубликовал портированный пример демонстрационного проекта игры на базе XNA 3.1.

image

Игра работает в браузерах IE9+, Firefox 4+, and Chrome 11. Разработчик пишет, что Opera не поддерживается из-за проблем браузера с ECMAScript5 и в Chrome 12 и 13 есть баги, которые мешают нормальной работе.

Проект компилятора с открытым кодом доступен на сайте GitHub. Разработчик сделал анонсы своей работы на Hacker News и Reddit, где можно ее прокомментировать. Кроме того, демонстрационный проект с игрой доступен здесь: Platformer.zip.

Выглядит впечатляюще.
Всего голосов 110: ↑96 и ↓14+82
Комментарии34

Обзор Windows Azure Toolkit for Windows Phone 7

Время на прочтение4 мин
Количество просмотров5.8K
Привет, хабрачитатели!

Windows Azure Toolkit for Windows Phone 7

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

Когда я только узнал про облачные технологии, я подумал, что было бы здорово получить доступ к мощи облака на мобильном устройстве. Поскольку я специализируюсь на технологиях Microsoft, то я задумывал сделать пример, где с Windows Phone 7 будут удобно доступны сервисы хранения Windows Azure.

Но меня опередили.

Вышел Windows Azure Toolkit for Windows Phone 7, обзор которого я представляю вашему вниманию.

Читать дальше →
Всего голосов 56: ↑38 и ↓18+20
Комментарии1

Поэтично о переводе

Время на прочтение1 мин
Количество просмотров1.8K
Mary had a little lamb,
Its fleece was white as snow;
And everywhere that Mary went,
The lamb was sure to go.

Каждый из нас знаком с системами машинного перевода. Из игрушек, которые выдавали «гуртовщиков мыши», они выросли в серьёзных помощников для перевода или просто чтения иностранных текстов.

Но одно не под силу этим системам — до сих пор они не применялись для художественной литературы.

А зря.
У Мэри был маленький барашек,
Его шерсть была белой как снег.
Куда бы Мэри ни пошла,
Барашек шёл за ней.
Подстрочный перевод

Я представляю прототип системы машинного перевода стихотворений. Маленькая программа может осилить текст любого размера на любом языке. Язык перевода — пока что только русский.

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

Рабочее название проекта — «Тогаталту».

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

Язык разработки — Ruby.

Репозитарий на GitHub.
У нашей Мэри был баран,
Собаки он верней.
В грозу, и в бурю, и в туман
Баран бредет за ней.
С.Я.Маршак
Всего голосов 58: ↑52 и ↓6+46
Комментарии63

Магия JavaScript: arguments

Время на прочтение3 мин
Количество просмотров68K
arguments — очень специфическая штука, о которой новички и даже любители знают только то, что это «вроде массив, но какой-то неправильный». На самом деле, у него есть ряд интересных особенностей. Предлагаю в топике пофантазировать на тему TypeHinting, аргументов по-умолчанию и всякого другого.
(function (foo, bar) {
	console.log(typeof arguments); // ?
	
	arguments[0] = 42;
	console.log(foo); // ?
})(10, 20);


А также покажу интересную идею-библиотеку
function test (foo, bar) {
    Args(arguments).defaults(100, 100);

    return [foo, bar];
};

test(      ); // 100, 100
test(15    ); //  15, 100
test(21, 42); //  21,  42

Читать дальше →
Всего голосов 99: ↑93 и ↓6+87
Комментарии37

Source Board — хостинг кода

Время на прочтение2 мин
Количество просмотров2.6K
Многим разработчикам в жизни рано или поздно требуется поделиться с кем-то кускомчастью кода, в тех или иных целях. Я не являюсь исключением, и в своё время выделил время на поиск такого сервиса под свои нужды.

История и описание

Читать дальше →
Всего голосов 45: ↑33 и ↓12+21
Комментарии40

Приглашаем на российский финал Imagine Cup — 16 апреля в Москве

Время на прочтение3 мин
Количество просмотров4.4K
Хабровчане и хабровчанки!

Приглашаем вас в следующую субботу — 16 апреля 2011 г. — посетить российский финал конкурса Imagine Cup. Это одно из крупнейших проводимых нами студенческих мероприятий, и пройдет оно в культурном центре НИУ ВШЭ (ул. Воронцово поле, д.5а, м. Курская или Чкаловская). Начало — в 10:00. Для участия в мероприятии необходимо предварительно зарегистрироваться.



Основная часть мероприятия — это выступления студенческих команд, представляющих прототипы инновационных программных проектов, которые делают мир лучше. Подробнее о проектах, представленных в финале — ниже. Жюри предстоит на основе презентаций проектов отобрать по одной команде-победителю в каждом из конкурсов – эти команды будут представлять Россию на международном финале соревнований в Нью-Йорке в июле 2011 г. Команды, занявшие другие призовые места, ждут ценные призы (нетбуки от спонсора призов — компании Acer, книги, приглашения на тренинги и конференции от компаний Intel и Quarta Technologies, и т.д.). И не только команды – зрители также смогут поучаствовать в конкурсах и получить призы и подарки! Генеральным спонсором мероприятия выступила Российская венчурная компания, конкурс поддержан фондом Сколково.

Читать дальше →
Всего голосов 41: ↑26 и ↓15+11
Комментарии14

Синхронизация в стиле Dropbox на вашем собственном сервере

Время на прочтение3 мин
Количество просмотров4.9K
Этим топиком я хотел бы начать диалог о синхронизации файлов. На Хабре были уже топики и про Дропбокс и про альтернативные сервисы (раз, два). Сервисы отличные, но меня интересовал вопрос: а как же я могу организовать синхронизацию файлов на своем собственном железе? Я начал искать уже готовую программу, но нашел немногое. Похоже, что большинство людей просто вызывают rsync/unison из cron'а. Написание клиент–серверной программы, которая бы отслеживала изменения файлов в папке, казалось делом несложным, и я решил попробовать.
Под катом то, что из этого получилось.
Всего голосов 17: ↑17 и ↓0+17
Комментарии18

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность