Pull to refresh
26
0
Владимир @boolive

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

Send message

Шпаргалка по осям в XPath

Reading time1 min
Views6.1K
Вот неплохая, на мой взгляд, шпаргалка по xpath axes

image

Возможно, кому-нибудь да и будет полезной. Я так поначалу просто распечатал и повесил на стенку рядом возле рабочего стола.

О программировании

Reading time3 min
Views864
В продолжение Об информатике вообще, О знаниях и умениях программиста, и О личных качествах программиста

Профессия программиста в наше время не редкость. Могут быть различные мнения об интересности, полезности (для здоровья и развития личности) и актуальности этой профессии. Я здесь представлю положительное мнение.
Читать дальше →

Как написать отличную статью и завоевать умы

Reading time12 min
Views20K

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

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

Создание и управление виртуальными командами

Reading time6 min
Views2.3K
Крис Найджел создал Wildbit, и вот уже 8 лет работают виртуальной командой над Beanstalk. Он живет в Филадельфии а его команда — по всему миру. Ему точно есть что сказать по поводу виртуальных команд, и он сделал это в данной статье.
Меня постоянно спрашивают «Как вы управляете виртуальной командой и, фактически, добиваетесь поставленных целей?». В Wildbit каждый из десяти членов команды работает из дома или из коворкинг центра. Мы разбросаны по четырем странам и многим часовым зонам. Даже с такими условиями мы можем сделать многое и получать удовольствие от нашей работы.
До того как написать эту статью, я не слишком задумывался о том как мы работаем в виртуальной среде. Моим первым ответом был — простая практика и много ошибок. Знания добытые из этих ошибок могут быть сведены к трем главным направлениям: люди в команде, процессы управляющие командой и коммуникация.
Читать дальше →

Масштабируемые и высокопроизводительные веб-приложения. Гл. 1. Протокол HTTP. Draft.

Reading time13 min
Views3K
Обсуждаемые темы: HTTP-запросы; HTTP-ответы; Оптимизация с помощью HTTP keep-alive; Оптимизация с помощью HTTP-pipelining; Оптимизация с помощью HTTP-кэширования: Кэширование в современных клиентах, Стратегии ревалидации, Отключение кэширования и интерактивные страницы; Оптимизация с помощью компрессии; Специфическая оптимизация отдаваемого содержимого; Комбинирование контента.

Комментарии приветствуются.

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

Стратегия построения и управления онлайн-сообществами

Reading time4 min
Views667
Создание тематических сообществ — один из основных интерументов SMO (продвижения в социальных сетях). Но возникают закономерные вопросы: как их создавать, и что потом с ними делать?
Источник http://www.seomoz.org/, автор KatFrench.

Создавая платформу

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

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

Web.2.0 – как создать сообщество?

Reading time4 min
Views861
Я знаю, что испытывают создатели практически любого нового сообщества.

Вы долго разрабатывали движок, делали дизайн, работали над юзабилити, наконец выложили проект в открытый доступ, гордо начертали под логотиплом «beta», разрекламировали новый проект в социальных медиа и уселись в удобное кресло следить за ростом посещаемости ресурса и потоком рекламных доходов. Однако дни проходят, а посещаемость по-прежнему стремиться к минус бесконечности. Что же делать?

Кто участвует в сообществах?

Любое сообщество состоит из трех категорий пользователей. Одни создают (или публикуют) контент, другие комментируют записи других пользователей, а третьи не утруждают себя ни тем ни другим, но зато читают уже оставленные записи и комментарии. Кроме того, есть четвертая субкатегория – это создатели ресурса (Высшие Силы).

По приблизительным подсчетам, в обыкновенных тематических сообществах первая категория (кто пишет посты) составляет 0,1% целевой аудитории ресурса, вторая (пишет комментарии) — 1% и третья (самая бесполезная – только читает) – 98,9%. Следовательно для того, чтобы на новом ресурсе появлялось и разрастолось постоянное общение необходимо либо единовременно привлечь большое количество целевой аудитории, либо заставить часть пассивной аудитории делать записи и оставлять комментарии. Как же заставить аудиторию общаться?
Читать дальше →

Законы для жизни

Reading time4 min
Views3.5K

«Без дураков»

imageКак и раньше я буду стараться ссылаться на общеизвестные трактовки законов. Я не выражаю своего отношения, моё мнение может не совпадать с опубликованным в тексте.

Это продолжение попытки рассказать об информатике и об её законах и об их отпечатке в повседневной жизни. Отпечаток это, тень, или вообще иллюзия — решать каждому. Но если мы сами придумали себе все науки, чтобы познать мир, странно не видеть в физике природу, знать сопромат и не любоваться архитектурой, не писать программу как роман… Или наоборот, во всем видеть структуру, в общем понимать важность частного, жить и ощущать законы существования. Вопрос в том, что если один мыслит и понимает не так как другой? Кто прав, а кто нет, кого назвать глупцом, а кого умным? Возможно тот, кто больше знает и обладает большей информацией… Возможно это так. Но что такое информация, которая стала сегодня важнейшей экономической ценностью в мире и ознаменовавшая замещение машинной техники как главного производственного ресурса индустриальной эпохи знанием и интеллектом? Возможно, ответив на этот вопрос, мы сможем понять, кто глуп, а кто умен и почему.

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

Ловушка CMS

Reading time13 min
Views22K
В конце 2013 года Maxim Chernyak написал замечательную статью в которой подчеркивал исключительную важность поддержки архитектуры приложений настолько простой, насколько это возможно. Удивлен что на хабре до сих пор не было перевода, предлагаю ознакомиться с переводом данной статьи. Также прошу сообщать о всех возможных опечатках и неточностях перевода.

Преамбула

Много лет назад у нас было приложение Ruby on Rails. Все начиналось с объектов. Одни выступали прототипами для других объектов. Другие требовали множество связанных с ними частей, частей этих частей и т.д. Насколько много? Пожалуй, одним прототипам известно. Эти прототипы должны были иметь интерфейс для администрирования, но смена логики работы одного прототипа могла привести к цепной реакции в остальных частях. Любое изменение объектов и их прототипов пролегало через связанную сеть из различных моделей. Сложность интерфейса для администрирования быстро взлетела до небес. Дошло до того момента, когда у прототипов появилась возможность быть сериализованными и сохранять фрагменты своей логики. С этого момента каждая фича становилась предметом очень трудной реализации, и в конечном счете приложение скатилось к состоянию, когда модификация и доработка стали практически невозможны. Было такое чувство, будто CMS навязывала себя в качестве посредника между фичей и ее реализацией, подобно системам с нагромождением высокоуровневых абстракций, ориентированным исключительно на бизнес-логику.

Думаете это была худшая часть проекта? Это был еще только минимально жизнеспособный продукт в новом стартапе.
Читать дальше →

Несколько интересностей и полезностей для веб-разработчика #19

Reading time4 min
Views54K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

DC.js



Библиотека позволяет создавать великолепные многоуровневые/масштабируемые кроссплатформенные графики и диаграммы с моментальным перерендерингом при пользовательском взаимодействии. За процесс визуализации отвечает знаменитая d3.js, а за анализ многомерных наборов данных crossfilter.js. Кстати кроссфильтр — проект небезызвестной компании Square.
chart.renderlet(function(chart){
    // smooth the rendering through event throttling
    dc.events.trigger(function(){
        // focus some other chart to the range selected by user on this chart
        someOtherChart.focus(chart.filter());
    });
})


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

СУБД на PHP — реально! Представляем MooSQL!

Reading time3 min
Views9K
MooSQL Я думаю, многие в своей жизни сталкивались с ситуацией, когда у вас под рукой нет MySQL (по разным причинам, например хостер не позволяет), а все-таки иметь что-то подобное, или даже сам MySQL хочется. Теперь у вас есть надежда :)! Я и nblxa хотим представить проект под названием MooSQL, цель которого — предоставить MySQL-совместимую СУБД на чистом PHP на случай, если в доме закончился обычный MySQL.
Читать дальше →

Обработка ошибок в Node.js

Reading time22 min
Views72K


Пост содержит перевод статьи «Error Handling in Node.js», которую подготовили сотрудники компании Joyent. Статья была опубликована 28 марта 2014 года на сайте компании. Dave Pacheco поясняет, что статья призвана устранить неурядицу среди разработчиков, касаемо лучших практик работы с ошибками в Node.js, а так же ответить на вопросы, которые часто возникают у начинающих разработчиков.
Читать дальше →

Будущее JavaScript MVC фреймворков

Reading time6 min
Views32K

Представляем Om




Нам, в нашем ClojureScript-углу, это было известно уже давно — все наши структуры данных неизменяемы и основаны на оригинальных коллекциях из Clojure, написанных на Java. Современные JavaScript движки в настоящее время достаточно оптимизированы и мы часто наблюдаем производительность этих коллекций в пределах 0.4X от JVM.

Стоп, стоп, стоп. А какое же отношение может иметь производительность неизменяемых структур данных к JavaScript MVC? — Достаточно существенное.

Возможно, объяснить это будет не очень просто, но все же я постараюсь. Дело в том, что неизменяемые структуры данных, представленные в новой библиотеке Om позволяют создавать приложения на порядок производительнее, чем на популярных JS MVC фреймворков, таких как MVC Backbone.js (без ручной оптимизации). Om построен на прекрасном фреймворке от Facebook — React. Если вы не слышали о нём раньше, рекомендую посмотреть видео с JSConf EU 2013. Интересен тот факт, что из-за неизменяемых коллекций Om может продемонстрировать результаты лучше, чем при использовании React без каких-либо модификаций.
Читать дальше →

Пишем плагин для CKEditor 4

Reading time8 min
Views25K
CKEditor — это WYSIWYG редактор HTML-кода для браузеров. Всякий раз, сталкиваясь с его документацией или же с его исходным кодом, с исходным кодом его плагинов я терялся. И это не мудрено, ведь CKEditor это очень большой продукт, имеющий довольно сложную инфраструктуру. Но, зачастую, стандартных возможностей не хватает и требуется добавить свою. В этой статье я хотел бы остановиться на плагине, который позволяет встраивать и оперировать в редакторе Yandex-картами.

Вот так это будет выглядеть по окончанию редактирования:


А вот так в режиме редактирования:
Читать дальше →

Учебное пособие по кэшированию, часть 2

Reading time9 min
Views172K
Вторая часть довольно подробного и интересного изложения материала, касающегося кэша и его использования. Часть 1.

Автор, Mark Nottingham, — признанный эксперт в области HTTP-протокола и веб-кэширования. Является председателем IETF HTTPbis Working Group. Принимал участие в редактировании HTTP/1.1, part. 6: Caching. В настоящий момент участвует в разработке HTTP/2.0.

Текст распространяется под лицензией Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.

От переводчика: об опечатках и неточностях просьба сообщать в личку. Спасибо.
Читать дальше →

Базы знаний. Часть 1 — введение

Reading time5 min
Views67K
Одной из причин слабого использования Linked Data-баз знаний в обычных, ненаучных приложениях является то, что мы не привыкли придумывать юзкейсы, видя перед собой только данные. Трудно спорить с тем, что сейчас в России производится крайне мало взаимосвязанных данных. Однако это не значит, что разработчик, создающий приложение для русскоязычной аудитории совсем уж отрезан от мира семантического веба: кое-что всё-таки у нас есть.
image
Основными источниками данных для нас являются международные базы знаний, включающие русскоязычный контент: DBpedia, Freebase и Wikidata. В первую очередь это справочные, лингвистические и энциклопедические данные. Каждый раз когда вам в голову приходит мысль распарсить кусочек википедии или викисловаря — ущипните себя как следует и вспомните о том, что всё, что хранится в категориях, инфобоксах или таблицах, уже распарсено и доступно через API с помощью SPARQL или MQL-интерфейса.

Я попробую привести несколько примеров полезных энциклопедических данных, которые вы не найдете нигде, кроме Linked Data.

Эта статья — первая из цикла Базы знаний. Следите за обновлениями.


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

Нагружаем Node под завязку (2-я из 12 статей о Node.js от команды Mozilla Identity)

Reading time7 min
Views19K
От переводчика: Это вторая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona. Эта статья написана по мотивам выступления Ллойда Хилайеля на конференции Node Philly 2012 в Филадельфии.





Процесс Node.js выполняется на единственном ядре процессора, так что построение масштабируемого сервера на Node требует особой заботы. Благодаря возможности писать нативные расширения и продуманному набору API для управления процессами, есть несколько разных способов заставить Node выполнять код параллельно. Мы рассмотрим их в этой статье.

Кроме того, мы представим модуль compute-cluster — маленькую библиотеку, которая облегчает управление коллекцией процессов для выполнения распределённых вычислений.

Постановка задачи


Для Persona нам было необходимо создать сервер, который справился бы с обработкой множества запросов со смешанными характеристиками. Мы выбрали для этой цели Node.js. Нам надо было обрабатывать два основных типа запросов: «интерактивные», которые не требовали сложных вычислений и должны были выполняться быстро, чтобы интерфейс приложения был отзывчивым, и «пакетные», которые отнимали примерно пол-секунды процессорного времени и могли быть ненадолго отложены без ущерба для удобства пользователя.

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

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


Вооружившись этими требованиями, мы можем осмысленно сравнивать разные подходы.
Читать дальше →

Влияние архитектуры Web-приложения на объемы инвестиций, жизненный цикл продукта и положительные эмоции пользователя

Reading time11 min
Views13K
В последнее время стало модным использовать термины «Web-приложение», «front-end-архитектура», «Web 2.0», «HTML5-приложения». Но, к сожалению, в большинстве случаев контекст использования этих терминов не всегда верен, поскольку не учитывает всю специфику реализации и использования архитектуры Web-приложения. Сегодня речь будет идти именно об архитектуре.

Толчком к написанию данной статьи послужила публикация в блоге http://blog.pamelafox.org/2013/05/frontend-architectures-server-side-html.html. Стоит заметить, что она достаточно сжата и не учитывает возможности конверсии HTML5/Mobile. Здесь же мы попытались рассмотреть архитектуру более подробно, с учетом последних трендов в Web и некоторых ключевых моментов для заказчика приложения (таких, как безопасность).

Для начала мы рассмотрим самые распространенные архитектуры для Web-приложений, их достоинства и недостатки с трех точек зрения: заказчика, разработчика и пользователя. Возможны и другие варианты, но они все равно являются подтипами рассматриваемых архитектур и сводятся к основным трем.

Начнем с определения Web-приложения как такового. Википедия даст нам следующее определение: клиент-серверное приложение, в котором клиентом выступает браузер, а сервером — веб-сервер. Логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется преимущественно на сервере, а обмен информацией происходит по сети.

Здесь начинается путаница, связанная непосредственно с архитектурой, с помощью которой реализовано Web-приложение. Дело в том, что логика работы приложения может располагаться как на сервере, так и на клиенте. Разные архитектуры по-разному распределяют логику между клиентом и сервером.

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

Охотимся за утечками памяти в Node.js (1-я из 12 статей о Node.js от команды Mozilla Identity)

Reading time7 min
Views27K
От переводчика: Это первая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona. Как клиентская, так и серверная часть Persona написаны на JavaScript. В ходе работы команда проекта создала несколько инструментов на все случаи жизни — от локализации до отладки, управления зависимостями и многого другого. В этой серии статей разработчики Mozilla делятся с сообществом своим опытом и этими инструментами, которые пригодятся любому, кто пишет высоконагруженный сервис на Node.js.

Первая статья цикла посвящена распространённой проблеме Node.js — утечкам памяти, особенностям утечек в высоконагруженных проектах и библиотеке node-memwatch, которая помогает найти и устранить такие утечки в Node.




Зачем заморачиваться?


Вы можете спросить, зачем вообще отслеживать утечки памяти? Неужели нет более важных дел? Почему бы просто не перезапускать процесс время от времени, или просто добавить памяти на сервер? Есть три причины, по которым устранять утечки всё-таки важно:

  1. Возможно, вы не сильно переживаете об утечках памяти, но этого нельзя сказать о V8 (движок JavaScript на котором работает Node). Чем больше памяти занято, тем активнее работает сборщик мусора, замедляя ваше приложение. Так что в Node утечки напрямую вредят производительности.
  2. Утечки могут привести к другим проблемам. Протекающий код может блокировать ограниченные ресурсы. У вас могут закончиться файловые дескрипторы или вы вдруг не сможете открыть ещё одно соединение с БД. Такие проблемы могут возникнуть задолго до того, как кончится память, но обрушат ваше приложение ничуть не хуже.
  3. Рано или поздно ваше приложение упадёт. И это наверняка случится во время наплыва посетителей. Вас все засмеют и будут писать про вас гадости на Hacker News.

Откуда доносится звук падающих капель?

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity