Search
Write a publication
Pull to refresh
0
0
Vladimir Furso @hotach

User

Send message

MaskJS — HMV* фреймворк

Reading time11 min
Views11K

Разрабатывая MaskJS вот уже больше полугода, удалось превратить DOM шаблонизатор в очень мощный, но при этом производительный веб фреймворк. В статье познакомлю вас с возможно интересными подходами к разработки. Уверен, будет интересно почитать о использовании сигналов и слотов вместо DOM событий. И как компоненты делают нашу жизнь проще. Маска легко интегрируется в уже готовый проект, и даже может быть использована вместе с любым другим фреймворком. Основным же отличием наверное является render flow, где в процессе поэтапно создается Document Fragment / контроллеры / «биндинги». Собственно всю гибкость даже сложно передать, но я попробую, и приглашаю под кат.
Читать дальше →

Нестандартный вариант монетизации социальных сервисов с привлечением новых пользователей

Reading time9 min
Views14K
image
Различные социальные сервисы, какими бы мы их не представляли: программы общения (Skype, ICQ, Viber, Message me, Trillian), социальные сети (Facebook, Вконтакте, Одноклассники) основаны в первую очередь на своей бесплатности. Попытки монетизировать данные сервисы сводятся в основном к продаже рекламы. Классические варианты монетизации уже были описаны ранее на хабре, вот тут: habrahabr.ru/post/126766
Некоторые сервисы никак не монетизируют свои продукты, так как боятся потерять имеющихся пользователей и отпугнуть новых, ну и поэтому страдают от недоедания недополучения денег. Но почему стоит двигаться в определенных, уже заданных рамках, которые действительно пугают пользователей, ведь есть варианты монетизировать свой социальный сервис, при этом без потерь имеющихся пользователей, а с привлечением новых. Один из них будет описан под катом.
Читать больше

Как сделать MMORPG своими руками. Медленно, сложно, интересно

Reading time4 min
Views33K
Привет, хабрахабр! Меня зовут Егор Курьянович и ты, возможно, помнишь меня по паре интернет-проектов: Кьюби и Идейнику. А быть может, ты даже слышал о других моих начинаниях. Сегодня я хочу рассказать тебе, чем занимался последние пару лет.



Ты ведь любишь игры, не так ли? То, что ты видишь на КДПВ, называется FAR7. Чтобы было немного понятнее, скажу, что молодежь сравнивает её с Космическими Рейнджерами, те кто постарше, вспоминают StarControl2, а совсем уже хардкорные геймеры постоянно твердят об Elite. Сойдемся на том, что это браузерный космосим. В игре вы можете путешествовать между звездными системами, торговать, воевать и выполнять различные миссии.

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

Выиграй бесплатное участие в DEVCONF 2013, креатив открывает вам двери!

Reading time1 min
Views3.4K
image
Коллеги, традиционно — мы планируем сделать серию значков для комьюнити участвующих
в конференции DEVCONF 2013, родилась идея сделать еще партию прикольных
значков.

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

Сроки конкурса 15 мая 2013

Авторы 3-х самых интересных слоганов, идей — получают бесплатное участие в
основном дне DEVCONF 2013.

Вывод метаданных модели MVC в динамическую разметку

Reading time11 min
Views3.2K
В ASP.NET MVC метаданные — атрибуты, описывающие поля модели, используются как при генерации разметки (вывод названия поля, его заполнителя и т.д.), так и при валидации данных (вывод правил валидации). Условно можно выделить 2 вида валидации:
  • клиентская валидация
  • серверная валидация

Клиентская валидация хороша тем, что пользователь сразу же видит допущенные ошибки в заполнении полей и может внести поправки без необходимости отправлять данные серверу (ненавязчивая валидация). Именно этот тип валидации необходим в нашем случае.

в чем собственно проблема ?
При использовании классического подхода к генерации разметки все работает автоматически, но что если мы используем ajax и формируем html разметку динамически на клиенте? В этом случае автоматически ничего не добавится в разметку. Можно конечно же все необходимое добавить вручную и казалось бы проблема исчерпана, но здесь встает проблема дублирования кода, так как одни и те же данные приходится описывать дважды — на сервере и на клиенте, что в свою очередь влечет другие проблемы. В ряде случаев динамическая разметка очень удобна, но здесь встает вопрос о выводе метаданных модели и валидации данных на стороне клиента. Об этом речь пойдет далее.

Итак, необходимо реализовать автоматический вывод метаданных модели MVC на клиентскую сторону и ненавязчивую валидацию.
Читать дальше →

Автоматизация тестирования Web-приложений

Reading time13 min
Views108K


Автоматизация тестирования – место встречи двух дисциплин: разработки и тестирования. Наверное поэтому, я отношу эту практику к сложным, но интересным.

Путем проб и ошибок мы пришли к следующему технологическому стеку:
  1. SpecFlow (опционально): DSL
  2. NUnit: тестовый фреймворк
  3. PageObject + PageElements: UI-абстракиця
  4. Контекст тестирования (информация о целевом окружении, пользователях системы)
  5. Selenium.WebDriver

Для запуска тестов по расписанию мы используем TFS 2012 и TeamCity.
В статье я опишу, как мы к этому пришли, типовые ошибки и пути их решения.
Читать дальше →

Verlet.js — физический движок на основе метода Верле

Reading time1 min
Views39K
Метод численного интегрирования Верле издавна использовался для вычисления траекторий частиц. Сам метод был впервые использован ещё в 1791 году французским астрономом Жаном-Батистом-Жозефом Деламбром. В 1907 норвежский математик и физик Карл Штёрмер использовал его для моделирования движения частиц в магнитном поле, поэтому иногда этот метод называют методом Штёрмера. Современное название этот алгоритм получил от имени французского физика Лу Верле, который в 1967 году использовал его в моделировании молекулярной динамики. В последнее время метод Верле применяется и в разработке компьютерных игр.
Читать дальше →

WebMarkupMin HTML Minifier – современный HTML-минимизатор для платформы .NET

Level of difficultyMedium
Reading time21 min
Views15K

Логотип WebMarkupMin


В начале 2012 года я работал над серией статей о клиентской оптимизации в ASP.NET MVC для журнала MSDeveloper.RU. Всего было опубликовано 2 статьи: «Сжатие JS- и CSS-файлов» и «Менеджеры ресурсов», но в моих планах было написать еще 2 статьи: одну про оптимизацию графики, а вторую про минимизацию HTML-разметки и GZIP/Deflate-сжатие (далее просто HTTP-сжатие). К сожалению, эти планы не удалось воплотить в жизнь из-за нехватки свободного времени (в тот момент, я запускал проект Bundle Transformer) и последовавшего закрытия журнала.


Но недавно я решил вернуться к теме оптимизации HTML-разметки. После небольшого исследования я понял, что под .NET практически не существует полноценных HTML-минимизаторов. Все существующие .NET-решения производят лишь 2 операции: удаление ненужных пробельных символов и удаление HTML-комментариев, из-за чего они очень сильно проигрывают решениям с других платформ. Поэтому я решил написать собственный HTML-минимизатор для .NET, о котором и пойдет речь в данной статье.


Эволюция HTML-минимизаторов


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


Вопреки расхожему мнению, техники минимизации HTML-кода появились намного раньше, чем аналогичные техники для JavaScript. Уже в конце 1998 года Артемий Лебедев в 17-м параграфе ководства «Паранойя оптимизатора» описывал некоторые техники минимизации HTML-кода.


Читать дальше →

Руководство разработчика Prism — часть 1, введение

Reading time29 min
Views143K
Если вы разрабатываете приложения для XAML-based платформ, таких как WPF, Silverlight, Windows Phone, или Windows Store, то Prism, определённо, сильно поможет вам упростить их разработку. После создания нескольких проектов с использованием Prism, я убедился в работоспособности такого подхода и решил подготовить перевод официального руководства Prism. Итак, часть первая, что же такое Prism.
Оглавление
  1. Введение
  2. Инициализация приложений Prism
  3. Управление зависимостями между компонентами
  4. Разработка модульных приложений
  5. Реализация паттерна MVVM
  6. Продвинутые сценарии MVVM
  7. Создание пользовательского интерфейса
    1. Рекомендации по разработке пользовательского интерфейса
  8. Навигация
    1. Навигация на основе представлений (View-Based Navigation)
  9. Взаимодействие между слабо связанными компонентами

Prism является руководством, разработанным для того, чтобы помочь проектировать и создавать насыщенные, гибкие и легко поддерживаемые Windows Presentation Foundation (WPF) приложения, Silverlight Rich Internet Applications (RIAs), и программы под Windows Phone 7-8, а также Windows Store приложений. Используя паттерны проектирования, которые воплощают важные принципы архитектурного дизайна, такие как разделение ответственности (Separation of Concerns, SoC) и слабая связанность (Loose coupling), Prism помогает вам проектировать и писать приложения со слабо связанными компонентами, которые могут независимо развиваться и потом объединяться в одно целое с минимальными усилиями. Этот тип приложений известен как составные приложения.

Читать дальше →

Ученик программиста

Reading time6 min
Views102K
Школу я бросил, когда мне исполнилось 16. Просто это было не для меня. Компьютеры – вот, что меня привлекало. Может быть, я был и неправ, но мне казалось, что в школе я только терял время, а мое настоящее образование начиналось только тогда, когда я возвращался домой. Я перестал уважать это учебное заведение и, естественно, совсем бросил учиться. Ну, и понаставили мне кучу диагнозов типа «необучаемый» и начали лечить. Оставалось только ждать, чтобы все это поскорее закончилось.

В конце концов я решил, что лучшее, что можно было сделать, – это бросить школу и пойти учиться на специалиста по информатике – программиста. Может быть, для тех, кто живет в США и Канаде, это звучит и глупо. Ведь там для того, чтобы получить диплом по специальности «компьютерные науки», надо закончить колледж или университет, но в Германии уйти из школы в ученики – обычное дело. У нас это называется «двойная система среднего профессионального образования». Наверное, эта система и есть одна из основных причин успеха Германии.
Читать дальше →

Шаблон Data Dependency

Reading time4 min
Views4.6K

Введение


В этой статье я расскажу про Data Dependency шаблон реализации компонентов в условиях Dependency Injection. В примерах буду использовать язык C# и Unity.
Начнем с описания ситуации, в которой Dependency Injection оказывается недостаточно, и возникает потребность прибегнуть к Data Injection.
Читать дальше →

Сравнение Angular, Backbone, CanJS и Ember

Reading time7 min
Views95K
(Дата публикации оригинала — 12.04.2013)
Выбор JavaScript MVC фреймворка — тяжёлая работа. Нужно учесть много факторов, и число вариантов выбора может быть огромно. Достаточно взглянуть на проект ToDoMVC (о нем по-русски).

Я работал с 4 фреймворками: Angular, Backbone, CanJS и Ember. Поэтому решил сделать сравнение, чтобы помочь вам решить, какой из них использовать. Я выделю несколько факторов, которые вы можете использовать при выборе. Каждый фактор будет иметь оценку от 1 до 5 (больше — лучше). Я старался быть беспристрастным, но, конечно, оценки основаны на личном опыте.


Читать дальше →

Стартует митап-группа «Moscow Cassandra Users»

Reading time1 min
Views2K
Друзья,

рад сообщить, что в Москве при поддержке компании DataStax стартует группа, посвященная NoSQL-хранилищу Apache Cassandra.

Всего в рамках группы планируется проводить 6 встреч в году. Некоторые из них будут проходить с участием разработчиков и архитекторов DataStax, т.е. будет возможность задать свои вопросы и высказать наболевшее лично людям, которые активно развивают продукт.
Узнать подробности

Как учить английский язык

Reading time6 min
Views134K
Данный текст был написан моей женой для собственного блога. Мне он показался достаточно интересным и полезным для людей, интересующихся изучением иностранных языков, и я решил опубликовать его здесь, учитывая, что на Хабре таких людей очень много. Почему моя жена решила, что может давать какие-либо советы в этой области? Потому что она окончила иняз, свободно говорит на английском, продолжительное время вела курсы изучения английского языка с разными группами и благодарные ученики не раз положительно отзывались о ней, как о преподавателе, а сейчас она успешно изучает итальянский и уже использует его в своей работе.



Итак, кто заинтересовался — прошу под кат.
Читать дальше →

Создана программа, умеющая играть в NES-игры

Reading time1 min
Views48K
На известной шуточной конференции SIGBOVIK2013, которая проходила 1-го апреля 2013-го года и представляет собой, как правило, фальшивые шуточные исследования д-р Том Мерфи подготовил работу, которая, на мой взгляд, довольно интересна.
Если вкратце — он научил программу играть в старые добрые денди-игры на NES-эмуляторе. Как это происходит?
Читать дальше →

Асинхронные шаблоны в Knockout.JS

Reading time2 min
Views11K
Knockout.JS — хорошая библиотека для создания сложных веб-приложений. Долгое время мне в ней не хватало асинхронного механизма шаблонов. Реализовать его не получалось, пока я не узнал что window.setTimeout вызывает свой callback не раньше окончания работы текущего контекста. Т.е. в коде
setTimeout("console.log(window.Value)",0),(function (){while (Math.random() < 0.9999999);window.Value = 1;})()
вывод на консоль произойдет только после завершения долгой функции случайного поиска числа очень близкого к единице.
Статья для разбирающихся в механизме биндинга knockout.js и умеющих писать customBindings.
Реализация

Tree View с «CRUD операциями», «drag and drop (DnD)» и «отложенной загрузкой» с использованием Dojo Tree, Entity Framework, SQL Server и ASP.NET MVC

Reading time11 min
Views13K
image

Введение

Dojo Toolkit это модульная JavaScript библиотека с открытым исходным кодом, предназначенная для облегчения быстрой разработки кросс-платформенных JavaScript/Ajax-ориентированных приложений и веб-сайтов, которая предоставляет некоторые действительно мощные возможности для пользовательского интерфейса. Компонент Dojo Tree обеспечивает полное, привычное, интуитивно понятное, развертываемое представление иерархических данных. Этот компонент поддерживает отложенную загрузку веток, что делает его хорошо масштабируемым для больших объемов данных. Dojo Tree отличный виджет для представления данных с отношениями «предок-потомок».

Эта статья показывает процесс создания дерева, поддерживающего «CRUD операции», «drag and drop (DnD)» и «отложенную загрузку». Чтобы создать такое дерево мы будем использовать Dojo Tree, Entity Framework, SQL Server и Asp .Net MVC.
Читать дальше →

Как работать с большей продуктивностью

Reading time3 min
Views43K
Когда-то я начинал работать, и меня вполне устраивала моя производительность. Но после, когда начались проблемы, связанные с потерянными клиентами, сбежавшими партнёрами, играющими в молчанку поставщиками из-за забывчивости, необязательности, или несвоевременного выполнения дел, у меня возникло желание что-то поменять в своём отношении к работе.

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

Всё нижеприведённое справедливо для меня, директора небольшой минской аутсорсинговой компании, но и вполне может оказаться применимо для широкого круга лиц: менеджеров, админов, кодеров, верстальщиков, дизайнеров, да кого угодно.


Читать дальше →

Приходите на чемпионат по программированию: будем решать задачи и «ронять» код оппонентов

Reading time5 min
Views17K

Финал прошлого чемпионата для студентов МГТУ – фото MDovzhenko

Правила простые — 5 «олимпиадных» задач разной сложности, плюс возможность «взламывать» решение оппонента сложным набором входных данных. То есть, сначала пишем свой код, потом «ломаем» чужой. Официально всё это называется Всероссийский Открытый Чемпионат по программированию «КРОК-2013» при поддержке Codeforces и Саратовского ГУ.

Зачёт индивидуальный, призы — 100 000 рублей за первое место, 70 тысяч — за второе, 50 тысяч — за третье. Плюс будет дополнительный игровой конкурс, победитель которого тоже получит приз. Для финалистов из РФ — бесплатная поездка в Москву, питание и проживание на два дня.

В прошлом году проводилось похожее мероприятие, тогда участвовало примерно 1500 человек (в квалификационном раунде), поэтому в этом году схема будет такая:
  • Квалификационный раунд – 13-14 апреля, удалённо (на следующий этап проходит не более 2000 участников).
  • Первый отборочный раунд – 15 апреля, удалённо (проходит 400 участников).
  • Второй отборочный раунд – 22 апреля, удалённо (проходит 50 участников).
  • Финал чемпионата состоится 16 и 17 мая в Москве в офисе компании КРОК.

Во всех раундах 5 задач, по мере приближения к финалу их сложность будет немного увеличиваться.
Читать дальше →

Крупнейший международный хакатон в Москве

Reading time1 min
Views6.7K
18 и 19 мая в Москве пройдет один из этапов крупнейшего в мире хакатона — AngelHack.

Хакатон представляет из себя 2-х дневное non-stop мероприятие, которое позволит ИТ-специалистам собраться в команды для реализации своих идей и написать работающий сервис за 2 дня.

image

19 мая пройдет презентация разработанных за выходные проектов перед российскими и американскими экспертами. Лучшая команда отправится на родину AngelHack в Сан-Франциско, где примет участие в глобальном Demo Day вместе с победителями AngelHack из всех стран-участниц.

AngelHack Moscow гарантирует хорошее настроение, море позитива, пиво, еду, неограниченный Red Bull, а главное осуществление своей идеи в жизнь за 2 дня.

Регистрация уже открыта!

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity