Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 490 сообщений
Cообщения с меткой

web 2.0 - Самое интересное в блогах

Следующие 30  »
rss_rss_hh_new

[Из песочницы] Haskell для ВКонтакте, JavaScript и ReactJS, Или «Чужой против Симпсонов»

Пятница, 11 Декабря 2015 г. 12:01 (ссылка)


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







В качестве таковых рассмотрим следующие:




  • Реализуем пакет доступа к API ВКонтакте.

    Код будет работать как в «native» приложениях, так и в приложениях JavaScript через GHCJS, компилятор Haskell в JavaScript


  • Напишем одностраничное браузерное приложение, используя наше API


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

http://habrahabr.ru/post/272871/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

[Из песочницы] Так ли быстр ReactJS?

Вторник, 09 Июня 2015 г. 18:52 (ссылка)

Предлагаю читателям «Хабрахабра» перевод публикации «Is ReactJS really fast?» из блога компании 500Tech.



tl;dr; Нет.


Большинство разработчиков считают само собой разумеющимся, что ReactJS — это супер быстрый движок по сравнению

с другими более тяжеловесными фреймворками, такими как AngularJS и EmberJS.



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



image



Virtual-DOM



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



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



И так же странно отсутствие каких-либо примеров улучшения производительности при использовании Virtual-DOM, кроме примеров сравнения с другими фреймворками.



Мы все видели эти демо, предлагаю рассмотреть их более внимательно.



React.js Conf 2015



Это наиболее популярное видео произвело «вау» эффект на публику, разница в скорости в самом деле поразительная. Ниже ссылки на оригинальные примеры, используемые в видео:



Ссылка на видео

ReactJS demo

AngujarJS demo



Но если глянуть в код, мы обнаружим, что автор не подумал использовать базовую фичу для улучшения производительности в Angular: "track by"



Если подправить всего лишь одну строчку в исходнике:



ng-repeat="(key, db) in databases"


На:



ng-repeat="(key, db) in databases track by key"


То получаем следующий результат:



ссылка



Удивлены?



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

в 95% тестах
сравнения reactJS против AngularJS.



Разберем еще одну популярную презентацию


Эта презентация тоже вызвала «вау» эффект. Советую посмотреть окончание презентации, там где показывается феноменальная производительность Angular 2.0 и последующие извинения докладчика:









Вот пример из этой презентации: смотреть



Здесь была обнаружена другая проблема, уже не в прорисовке, а в обработке данных. В примере с ReactJS было явно указано, какая колонка изменилась, в то время как AngularJS примере было сказано «что-то изменилось», что приводило к перепроверке всего.



Отключив вызов перерисовки всех данных и оставив только проверку изменений следующим образом:



$timeout(function() {
$scope.status.isSearching = false;
$scope.status.searchResults = ...




Updated to:

setTimeout(function() {
$scope.status.isSearching = false;
$scope.status.searchResults = ...
$scope.$digest();


Получаем следующий результат:



смотреть



В последних версиях Angular это делается следующим образом: $timeout([func], [timeout], false);



Что же в итоге?



Получается, что основанные на Virtual-DOM фреймворки не имеют тех демонстрируемых преимуществ по скорости перед обычными фреймворками типа AngularJS or EmberJS. Утверждение, что добавление примесей ReactJS к AngularJS приложению магическим образом исправит производительность, основано не на фактических данных, а на ошибках

в разработке.



Плох ли ReactJS?



Нет. ReactJS отличный фреймворк, который мы в 500Tech используем и любим. Есть много преимуществ в использовании reactJS в вашем следующем проекте, но скорость — не одна из них.

Original source: habrahabr.ru (comments, light).

http://habrahabr.ru/post/259939/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

WEB 3.0. От сайтоцентризма к юзероцентризму, от анархии к плюрализму

Воскресенье, 19 Апреля 2015 г. 16:22 (ссылка)

В тексте в конспективном виде изложены идеи, высказанные автором в докладе «Философия эволюции и эволюция интернета».



Основные недостатки и проблемы современного веба:




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

  2. Рассредоточенность и несвязанность контента – невозможность сделать исчерпывающую выборку по тематике и, тем более, по уровням анализа.

  3. Зависимость формы представления контента от издателей (зачастую случайных, преследующих собственные, обычно коммерческие, цели).

  4. Слабая связанность результатов поиска с онтологией (структурой интересов) пользователя.

  5. Малая доступность и слабая классифицированность архивного контента сети (в частности, социальных сетей).

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





Основная причина замусоренности и нерелевантности сети – это доставшееся нам в наследство от Web 1.0 сайтовое устройство, при котором главным лицом в сети является не владелец информации, а владелец места ее размещения. То есть в сеть была перенесена идеология материальных носителей контента, где главным было место (библиотека, киоск, забор) и предмет (книга, газета, бумажка), а уже потом их содержание. Но поскольку в отличие от реального мира, пространство в виртуальном мире не ограничено и стоит копейки, то количество мест, предлагающих информацию, на порядки превысило количество единиц уникального контента. Web 2.0 частично исправил ситуацию: каждый пользователь получил свое личное пространство – аккаунт в социальной сети и свободу в известной мере его конфигурировать. Но проблема с уникальностью контента лишь усугубилась: технология копипаста еще на порядки увеличила степень дублирования информации.

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




  1. Повышение точности поиска путем микроформатирования распределенного по сайтам контента.

  2. Создание «хранилищ» достоверного контента.



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

Разработки во втором направлении (Google, Freebase.Com, CYC и др.) позволяют получить однозначно достоверную информацию, но только в областях, где это возможно – остается открытой проблема плюрализма знаний в сферах, где нет единых стандартов и общей логики систематизации данных. Сложно решается проблема получения, систематизации и включения в базу нового (текущего) контента, что является главной проблемой в современной социально ориентированной сети.



Какие же решения предлагает юзероцентристский деятельный подход, изложенный в докладе «Философия эволюции и эволюция интернета»




  1. Отказ от сайтовой структуры – главным элементом сети должна стать единица контента, а не место его размещения; узлом сети должен быть пользователь, с конфигурированным относительно него множеством единиц контента, которое можно назвать онтологией пользователя.

  2. Логический релятивизм (плюрализм), констатирующий невозможность существования единой логики организации информации, признающий необходимость неконечного числа практически независимых онтологических кластеров даже в пределах одной тематики. Каждый кластер представляет собой онтологию некоторого пользователя (индивидуального или обобщенного).

  3. Деятельный подход к построению онтологий, подразумевающий, что онтология (структура кластера) формируется и проявляется в деятельности генератора контента. Такой подход необходимо требует переориентации сервисов сети с генерации контента, на генерацию онтологий, что по сути, означает создание инструментов для реализации в сети любой деятельности. Последнее позволит привлечь в сеть множество профессионалов, которые обеспечат ее функционирование.



Последний пункт можно расписать подробнее:




  1. Онтология создается профессионалом в ходе его профессиональной деятельности. Система предоставляет профессионалу все инструменты для введения, систематизации и обработки любых типов данных.

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

  3. Онтология становится основным результатом деятельности (и для системы, и для профессионала) – продукт профессиональной работы (текст, презентация, таблица) является лишь поводом для построения онтологии этой деятельности. Не онтология привязывается к продукту (тексту), а текст, понимается как объект, сгенерированный в конкретной онтологии.

  4. Онтология должна пониматься как онтология конкретной деятельности; сколько деятельностей – столько и онтологий.





Итак, основной вывод: Web 3.0 это переход от сайтоцентристского веба к семантической юзероцентристской сети – от сети вебстраниц с произвольно конфигурированным контентом к сети уникальных объектов, объединенных в неконечное число кластерных онтологий. С технической стороны Web 3.0 это множество онлайн-сервисов, предоставляющих полный спектр средств внесения, редактирования, поиска и отображения любого типа контента, которые одновременно обеспечивают онтологизацию деятельности пользователей, а через нее и онтологизацию контента.



Александр Болдачев, 2012-2015

Original source: habrahabr.ru (comments, light).

http://habrahabr.ru/post/256083/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<web 2.0 - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda