Архив за 27 марта 2012

В этой статье я попытаюсь кратко в примерах объяснить что такое свойства __proto__, prototype и работу оператора new в JavaScript.

Свойство __proto__

Абсолютно любой объект в JavaScript имеет свойство __proto__. Это скрытое системное свойство, и не во всех реализациях языка оно доступно пользователю.
При обращении к любому свойству объекта, оно в первую очередь ищется в самом объекте:

var obj = {ownProperty: 1};
console.log(obj.ownProperty);// 1

Но если его там нет, поиск происходит в другом объекте, свойстве __proto__:

obj.__proto__ = {propertyOfProto: 2};
console.log(obj.propertyOfProto);// 2

Если его нет и там, оно ищется дальше по цепочке:

obj.__proto__.__proto__ = {propertyOfProtosProto: 3};
console.log(obj.propertyOfProtosProto);// 3

Эта цепочка называется цепочкой прототипов (prototype chain).

Prototype,   proto   и оператор new
Читать полностью »

В любой профессии есть тонкая прослойка людей, которые являются действительно высококлассными специалистами. Не исключение и область фронт-енд разработки — здесь также есть выдающиеся личности. К их мнению прислушиваются, за ними следят в блогах и социальных сетях и читают их книги. В процессе своей работы они рождают различные оригинальные решения или техники, которые мгновенно расходятся по миру веб-разработки и остаются актуальными не один год. Они создают удобные онлайн-сервисы для верстки, пишут полезные js-библиотеки, совершенствуют браузеры, пропагандируют веб-стандарты и оказывают непосредственное влияние на их развитие. Они могут называть себя front end engineer, front-end developer, web developer, web designer, UI Designer, browser compatibility expert или просто css lover, но для большинства из нас они — звезды мирового фронт-енда, которые делают интернет таким, каким мы его знаем. На Хабре довольно часто появляются обзоры интересных решений, техник и новостей из мира веб-разработки с указанием западных авторов, однако далеко не все знают что-нибудь о них кроме имени. Мне захотелось вкратце рассказать для широкой публики о некоторых из этих товарищей.

Звезды мирового фронтенда
Читать полностью »

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

Итак, встречайте — Evernote Offline (лучшего названия пока не придумал)

Читать полностью »

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

Есть отличная идея! Вы стали счастливым обладателем мозгов, которые придумали совершенно новый, никем не разработанный сервис, который покорит интернет как twitter или facebook. Однако есть, что называется, две большие разницы между инновационным сервисом и успешным стартапом. Запускать любую неведомую фигню следует с приложением всей интеллектуальной мощи организма и за пределом его физических сил.

Собственно, что и как запускать, чтобы не разориться и не провалиться?
Читать полностью »

Здравствуйте, уважаемые читатели. Постов про пользовательские скрипты (userscripts) было на хабре немало, тем не менее, они только показывали, как ими пользоваться. А в работе юзерскриптов достаточно много кроссбраузерных несовместимостей (как и в любой области браузерного js). Естественно, можно установить различные дополнения для разных браузеров, однако, в случае написание скрипта для конечного пользователя, придётся сопровождать его огромным readme по установке компонент для обеспечения нормальной его работы. Что лично меня, да и вас, полагаю, тоже, не очень-то устраивает.

В данной статье речь будет вестись о трёх браузерах: Mozilla Firefox (с установленным GreaseMonkey), Google Chrome, Opera. Целью статьи является «заготовка», которая позволит пользовательскому скрипту работать одинаковым образом во всех перечисленных браузерах. Реализация GM API рассматриваться не будет, т.к. таковых уже сотни. Предполагается, что читатель уже знаком с общими правилами написания юзерскриптов (в случае, если нет, рекомендую сначала прочитать другую статью).
Читать полностью »

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

Некоторое время назад у меня стояла задача сделать Ajax сайт работающий «как твиттер» но при этом индексируемый поисковиками.

Читать полностью »

Пиратская партия получила места в парламенте ещё одной немецкой землиПиратская партия укрепила позиции на политической арене Германии. В сентябре 2011 года за неё отдали голоса 8,9% граждан Берлина, что позволило получить 15 мест в местном парламенте (из 141). И вот новый успех. 25 марта на выборах в Сааре партия получила 7,4% и 4 места в парламенте (из 51).

Саар — небольшая земля на юго-западе Германии, граничащая с Францией и Люксембургом. Таким образом, прогрессивное политическое движение подтвердило свою популярность не только в столице, но и в провинции, среди обычных немцев. Судя по всему, берлинские выборы не были случайными, и теперь можно рассчитывать, что Пираты проникнут в парламенты всех муниципальных земель Германии, а затем — и в Бундестаг.
Читать полностью »

Доброго времени суток.
Есть сервер с CentOS6 и высоким %iowait. Нужно без простоя, или максимум 10 минут желательно ночью, перенести систему с md raid1 на md raid10. В моём случае реально уложиться в 10 минут, или даже меньше, потому что у сервера есть hot-swap корзины, но инженеры дата центра где арендуется сервер, изначально подключили диски во вторую и третью корзины, а не в первую и вторую. Из-за этого пришлось выключать сервер менять местами старые диски и ставить новые два.Читать полностью »

Добрый день!

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

Т.е.ак, перед нами стоят несколько задач:

  • сделать бекап всех файлов на хостинге;
  • сделать бекап всех баз данных на хостинге;
  • полученные файлы заархивировать в один архив.

Читать полностью »