Pull to refresh
40
0
Send message

(Архив) Matreshka.js — Введение

Reading time10 min
Views24K
Статья устарела. В новой документации содержится самая актуальная информация из этого поста. См. bindNode и on.

Приветствую всех читателей и писателей хабра.

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


Код для привлечения внимания:
mk.on( 'change:x', function() {
	alert( 'x is changed to ' + this.x );
});
mk.x = 2; // alerts "x is changed to 2"

И это работает в… IE8.

Что такое Матрешка?

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

Зачем?

Мне часом надоело думать о представлении и о том, чтоб его менять написанным мной кодом. Все костыли синхронизации данных и представления в Javascript вызывают у меня негативные чувства, и амбициозной, направленной в будущее, целью Матрешки является возможность полностью забыть о том, что у нас есть UI, оперируя только данными. Конечно же, решить эту задачу невозможно на 100%, но мы, программисты, должны выжимать максимум из данных нам инструментам, дабы сделать код чище, короче и гибче. Пора встряхнуть свой код и стать злым.
Гифка для привлечения внимания

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

Опыт написания 2D MOBA-платформера за несколько дней

Reading time5 min
Views34K


Все началось с того, что на глаза случайно попался конкурс от NextCastle Party, где предлагалось в строго ограниченные сроки (тема была объявлена за неделю) создать игру.

Условием была обязательная возможность играть с живыми игроками за одним компьютером (не важно, pvp или кооператив, синхрон или асинхрон). А так же были ограничения по платформам — необходимо, чтобы игра шла в браузере.

Собственно, узнав про конкурс — решились поучаствовать. Смущало, правда, что в конкурсе можно использовать любые наработки… Ведь вдруг кто-то в этот момент делает именно такую игру и притащит на конкурс почти готовый проект? А у нас подходящих наработок — ну вообще нет. Ну да ладно, волков бояться — в лес не ходить. В конце концов, интересный опыт.
Читать дальше →

Стэнфордская нейросеть определяет тональность текста с точностью 85%, код отдадут в Open Source

Reading time2 min
Views33K
Sentiment analysis (по-русски, анализ тональности) — это область компьютерной лингвистики, которая занимается изучением эмоциональной окраски текстов, подробнее см. в статье Irokez’а. Это очень важное направление машинного обучения: анализ тональности нужен для лучшего «понимания» текстов, перевода с одного языка на другой.

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

Точность определения эмоций у лучших компьютерных программ до сегодняшнего дня составляла не более 80%. Группе учёных из Стэнфорда при участии небезызвестного Эндрю Нг удалось довести её до 85%, а при дальнейшем обучении рекурсивной нейросети точность вполне может повыситься до 95%, говорит один из авторов исследования. Заметим, что 95% — это будет абсолютно феноменальный результат, не все люди способы распознавать сарказм и определять тональность слов с такой точностью.
Читать дальше →

01 Collector: пятничный контент

Reading time1 min
Views22K


Уже конец недели и пора плавно переходить к режиму «Safe mode». Поэтому делюсь с вами подборкой интересных сайтов и ресурсов, чтобы к концу дня отвлечься от рабочего процесса.
Читать дальше →

Инфраструктура и жизненный цикл разработки веб-проекта

Reading time11 min
Views58K
Когда проект маленький, особых проблем с ним не возникает. Список задач можно вести в текстовом файле (TODO), систему контроля версий, по большому счёту, можно и не использовать, для раскладки файлов на живой сервер их можно просто скопировать (cp/scp/rsync) в нужную директорию, а ошибки всегда можно посмотреть в лог-файле. Глупо было бы, например, для простенького сервиса с двумя скриптами и тремя посетителями в день поднимать полноценную систему управления конфигурациями серверов.

С ростом проекта требования растут. Становится неудобно держать в TODO-файле несколько десятков задач и багов: хочется приоритетов, комментариев, ссылок. Появляется необходимость в системе контроля версий, специальных скриптах/систем для раскладки кода на сервер, системе мониторинга. Ситуация усугубляется, когда над проектом работает несколько человек, а уж когда проект разрастается до нескольких серверов, появляется полноценная инфраструктура («комплекс взаимосвязанных обслуживающих структур или объектов, составляющих и/или обеспечивающих основу функционирования системы», Wikipedia).

На примере нашего сервиса "Календарь Mail.ru" я хочу рассказать о типичной инфраструктуре и жизненном цикле разработки среднего по размерам веб-проекта в крупной интернет-компании.

Срыв покровов

JetBrains — разработка под Android для лентяев

Reading time1 min
Views79K
Хотите изучить разработку пoд Android, но лень читать большие книги с кучей теории? JetBrains подготовила курс из 12 уроков для быстрого старта. Темы уроков:

* Getting Started
* UI Designer
* Minimally Interactive
* Lifecycle
* More Activities
* List Views
* HTTP
* Storage
* Menus
* Dialogs
* Preferences
* Publishing
Читать дальше →

Semantic UI — почти альтернатива Bootstrap

Reading time1 min
Views82K
image
Наткнулся сегодня на одну интересную штуку.
Semantic UI — это фреймворк для создания переносимых интерфейсов, который поможет повторно использовать элементы UI в своих проектах. Такая себе альтернатива Bootstrap.
Небольшой пример — если вы хотите добавить в свой проект что-то похожее на кнопку

просто воспользуйтесь следующими элементами:
semantic add button
semantic add icon
Читать дальше →

Коктейли ко дню программиста

Reading time5 min
Views189K
Здравствуй, Хабр!

Осталось несколько дней до дня программиста и, конечно, в эту 13-ю пятницу, многие из пользователей хабра буду отмечать этот праздник. Буду отмечать и я.

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

Все началось вот с чего: моя супруга увлекается кулинарией и ведет небольшой кулинарный блог. В прошлом году на мой день рождения она пригласила к нам в гости на кухню настоящего бармена из барного startup-проекта БАРаДОМа.нет. С момента знакомства с Артёмом (барменом который превратил мой день рождения в домашнюю барную вечеринку), у меня появилась идея: найти рецепты (или придумать самим) коктейлей, которые бы вписались в IT-тематику.

Итогом нескольких дней активной переписки с Артёмом стала вот такая небольшая коктейльная карта:

  • Ruby
  • Python
  • Суровый Perl
  • JMP (aka Assembler)
  • Profit!
  • Epic fail
  • Memory leak


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

Чин-чин!

Мини-ПК под Linux за 45 долларов

Reading time1 min
Views96K
Компания SolidRun обновила линейку своих миниатюрных компьютеров CuBox, поставила более мощное железо и снизила цены. Вместо двух прежних моделей за 120 и 160 долларов представлено четыре модели CuBox-i по цене от 45 долларов. Все они способны декодировать видео 1080p и потребляют менее 3 Вт.

Корпус CuBox-i остался прежним: это кубик со стороной 5 см (как спичечный коробок). В зависимости от модели, кубик комплектуется интерфейсами HDMI, S/PDIF, IR, eSATA, GbE, USB, WiFi и Bluetooth. На нём работают и Android 4.2.2, и различные дистрибутивы Linux, в том числе Ubuntu, Debian и др. Уже начался приём предварительных заказов на ноябрь.
Читать дальше →

Много бесплатных книг по программированию

Reading time7 min
Views347K
Читать дальше →

Битва за конверсию

Reading time7 min
Views16K
В предыдущей статье мы рассказали о том, как привлечь аудиторию через собственную партнерскую программу. Теперь нужно довести новых посетителей до целей, ради которых затевался ваш сервис.

Мы проведем обзор публичных инструментов, которые мы использовали, чтобы повысить конверсию Бурук на 25% и сделать пользователей немного счастливее. В конце — про новинку от Google Analytics, которая позволяет связать онлайн источники трафика с оффлайн конверсией.

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

Повысить конверсию просто.

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

15 вещей, которые мы хотели бы знать перед разработкой стартапа

Reading time7 min
Views30K
image
За четыре года работы над онлайн консультантом WebConsult мы накопили достаточно большой опыт, и оказалось, что изначально мы не учли многих вещей, которые потом приходилось переделывать – в итоге это стоило нам массы времени, средств и нервов. Эта статья, а возможно и цикл статей, будут посвящены аспектам, которые необходимо продумать еще до начала разработки, дабы будущие стартаперы изначально закладывали грамотную основу в свои веб-приложения. Этой статьи нам очень не хватало четыре года назад, когда создание системы только начиналось, и мы надеемся, что она поможет вам не повторить наших основных ошибок. Многие приведенные советы кому-то покажутся очевидными, однако часто разработчики их упускают, поэтому мы считаем необходимым еще раз напомнить о простых вещах.
Читать дальше →

История создания стартапа по разработке мобильных игр

Reading time8 min
Views66K
В мае прошлого года я решил создать стартап по разработке социальных и мобильных игр. Спустя год, можно сказать, что авантюра удалась и немного рассказать о полученном опыте.

image

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

EazyPhoto: уютный фотохостинг для своего сервера

Reading time6 min
Views25K
В недалекие времена, когда flickr ещё не предлагал терабайт под хранение фотографий, а BitTorrent Sync только вышел на экраны интернета в своей небезопасной альфа-версии, была у меня потребность: делиться фотографиями с друзьями и не только. Но как обычно у программистов это бывает, под словом «делиться» стоит гораздо больше, чем выложить фоточки во ВКонтактик. А именно:
  • Выложить куда-нибудь фотографии на свой сервер с красивым и простым web-интерфейсом.
  • Просто и массово заливать и скачивать оригиналы изображений.
  • Иметь возможность разграничить доступ к определенным альбомам.
  • Попытаться связать это с локальным сетевым хранилищем, чтобы не дублировать фотографии.
  • По возможности удалять оригиналы фотографий с сервера через какое-то время и оставлять только фотографии с измененным размером.
  • По-максимуму бесплатно! :)

После таких мыслей в голове начинает зарождаться идея: «Надо накреативить...» — и ты уже не можешь остановиться.
Результат работы воспаленного мозга

Prepros: open-source компилятор файлов для front-end разработки

Reading time2 min
Views53K


Здравствуйте, уважаемые Хабражители.

Данная статья посвящена фантастическому, на мой взгляд, open-source приложению Prepros, которое может облегчить рабочий процесс многим фронт-энд разработчикам.

Prepros умеет компилировать файлы LESS, Sass, SCSS, Stylus, Jade, Slim, Coffeescript, LiveScript, Haml и Markdown, минифицировать и объединять в один JavaScript-файлы и это еще не все.

Под катом — более подробный обзор приложения.

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

Samsung S4 Google Edition (GT-I9505G) — обзор и покупка

Reading time10 min
Views88K
Совсем недавно я писал о том, что в Google Play Store открылся предзаказ на «гугловерсии» флагманских смартфонов HTC и Samsung — One и GALAXY S4. Девайсы с приставкой Google Edition на данный момент могут заказать лишь жители США. Но жителям России тоже повезло, они могут получить эти устройства, если воспользуются услугами посредника.



Собственно так я и сделал. Выбор из двух флагманов с чистым Android пал на смартфон от компании Samsung, а именно Galaxy S4 — LTE версия. Что это устройство из себя представляет, как работает и как его приобрести? Попробую рассказать об этом в обзоре.
Читать дальше →

Хакатон PayPal «Battle Hack» в Москве

Reading time1 min
Views4.9K
7-8 сентября в Москве пройдет российский этап хакатона PayPal «Battle Hack».

Paypal «Battle Hack» — это международный марафон, который пройдет в течение 4 месяцев в Берлине, Нью-Йорке, Тель-Авиве, Сиэттле, Майями, Москве, Остине (штат Техас), Лондоне, Вашингтоне и Барселоне.

image

Основные правила хакатона:

  • Команду можно набрать на месте или привести готовый коллектив, но не более 4 человек;
  • Использовать можно любые языки, хостинги, инструменты и фреймворки;
  • Все права на созданный продукт останутся командам.

Команда-победитель отправится в Силиконовую долину и поборется за главный приз — 100 000 долларов. За второе место каждый член команды получит новенький планшет, за третье — роботизированные программируемые шары, а за четвертое — Raspberry Pi.

Участие бесплатно. Зарегистрироваться.

История плохого старта — вариант «Все сам»

Reading time5 min
Views57K
Заглавная картинка Некоторое время назад промелькнула на Хабре вот эта статья о запуске игры. В ней автор делится своим опытом создания первой игры и публикации ее через издателя. На тот момент моя игра уже была выпущена и находилась в GooglePlay около месяца. Правда, я выбрал самостоятельный вариант публикации без какой-либо помощи издателей. А поскольку опыта в этой области у меня не было совсем никакого, то я сделал целый ряд ошибок, которые, по-моему, снизили и так небольшие результаты. Вот об этих ошибках, а также о детальной статистике на текущий момент, я и хотел бы рассказать…
Поучиться на чужих ошибках

PhoneGap: как сделать приложение отзывчивым

Reading time11 min
Views56K
На сегодняшний день существует немалое количество обзорных статей о PhoneGap, но к сожалению, написаны они или front-end разработчиками, которые решили заняться мобильными платформами, или нативными программистами, которые решили попробовать себя в кроссплатформенной разработке. И именно с этих позиций рассматриваются достоинства и недостатки PhoneGap'а, возникают статьи о том, «насколько крута кроссплатформа», или об «ущербности кроссплатформенных решений».

В качестве затравки — видео демо-приложения, написанного за 6 часов; готовым был взят UI-бутстрап, наверстанный за 3,5 часа; использовались библиотеки iScroll, backbone, underscore, Jquery, и небольшая обертка на backbone (RAD.js — rapid application development, архитектурный фреймворк, берущий на себя часть оптимизации, связанной с мобильной средой выполнения).


Еще 2 часа было потрачено на фикс движка. Но сегодня речь не о том, что что-то тормозит, дергается, или самописный свайп не всегда вовремя отрабатывает на 14000 объектах данных; речь о том, что на PhoneGap можно и нужно писать.

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

Information

Rating
Does not participate
Registered
Activity