Видеоконтент уже прочно вошёл в мир Интернета и без него уже трудно представить глобальную сеть. Тем не менее, технологии встраивания видео в гипертекстовые документы за прошедшее время прошли определённую эволюцию: от RealPlayer к QuickTime и Flash, а в настоящий момент до встроенной поддержки видео в HTML5. Тем не менее, всё это время различные реализации видеоплееров страдали как от проблем кроссплатформенности и кроссбраузерности, так и от низкого или вообще нулевого уровня accessibility. И если способы борьбы с первой группой проблем в целом понятны и существуют в форме готовых решений, то вот проблемы доступности для подавляющего большинства web-разработчиков и без того, как правило, сложны для понимания, а в отношении видео совсем оставались загадкой. Однако, к счастью, появилось готовое решение и второй проблемы, так что все желающие смогут обеспечить своим пользователям полностью доступный видеоплеер и без глубоких компетенций в web accessibility.
JavaScript метод insertAdjacentHTML и beforeend
1 min
23KTranslation
Перевод статьи «JavaScript insertAdjacentHTML and beforeend», David Walsh.
Если вы не знали: чертов DOM очень медленный. А по мере того, как наши сайты становятся все более динамичными и AJAX-использующими, нам становиться все важнее управлять DOM древом с наименьшим ущербом в производительности. Недавно я написал статью о DocumentFragment'ах. Это разумный подход к объединению списка дочерних элементов под неким «псевдо-элементом», для дальнейшего помещения в реальный DOM элемент. Еще один замечательный метод для работы с элементами
Если вы не знали: чертов DOM очень медленный. А по мере того, как наши сайты становятся все более динамичными и AJAX-использующими, нам становиться все важнее управлять DOM древом с наименьшим ущербом в производительности. Недавно я написал статью о DocumentFragment'ах. Это разумный подход к объединению списка дочерних элементов под неким «псевдо-элементом», для дальнейшего помещения в реальный DOM элемент. Еще один замечательный метод для работы с элементами
insertAdjacentHTML
: это способ добавлять элементы в родительский элемент не задевая других его потомков.+40
Убрать рекламу в uTorrent за 15 секунд
1 min
690KRecovery Mode
Легально, бесплатно, без смс.
Проверено и работает на последней версии 3.4.2 (win)
Проверено и работает на последней версии 3.4.2 (win)
+30
Поиск VPS — осеннее обновление
6 min
8.2KНаступила осень, поэтому у меня появилось желание отчитаться о проделанной за лето работе на проекте poiskvps.ru

Я думаю, что почти каждый вебмастер или владелец сервера сталкивался с проблемой, когда нужна была резервная копия данных, а ее по какой-то причине не оказывалось. На обычном шаред хостинге принято, что хостеры сами делаю резервные копии и в случае чего готовы предоставить их пользователям. Однако при аренде виртуального или выделенного сервера ситуация ровно обратная: владельцу нужно самостоятельно следить за сохранностью данных и выполнять резервное копирование своими силами. Иногда хостеры предлагают “коробочные” решения, когда вместе в сервером дают пользователю возможность арендовать место для хранения бэкапов. На мой взгляд, это не самая лучшая идея, так как бэкапы нужно хранить как минимум в другом дата-центре, а желательно и в нескольких. Например, можно вспомнить пожар в дата-центре hosting.ua — от такого стечения событий никто не застрахован, однако такой случай показывает, что хранить резервные копии в одном и том же дата-центре не самая лучшая идея. Также, на мой взгляд, хранить резервные копии у хостера тоже не самая лучшая идея, даже если бэкапы хранятся далеко от основного сервера. В последнее время не редки случаи, когда хостер может просто пропасть или у него изымают все оборудование.
Сервис аренды места для резервного копирования работает меньше полугода, однако в последнее время в нем произошли значительные изменения. О них и о сервисе я хочу сегодня подробно рассказать.

Я думаю, что почти каждый вебмастер или владелец сервера сталкивался с проблемой, когда нужна была резервная копия данных, а ее по какой-то причине не оказывалось. На обычном шаред хостинге принято, что хостеры сами делаю резервные копии и в случае чего готовы предоставить их пользователям. Однако при аренде виртуального или выделенного сервера ситуация ровно обратная: владельцу нужно самостоятельно следить за сохранностью данных и выполнять резервное копирование своими силами. Иногда хостеры предлагают “коробочные” решения, когда вместе в сервером дают пользователю возможность арендовать место для хранения бэкапов. На мой взгляд, это не самая лучшая идея, так как бэкапы нужно хранить как минимум в другом дата-центре, а желательно и в нескольких. Например, можно вспомнить пожар в дата-центре hosting.ua — от такого стечения событий никто не застрахован, однако такой случай показывает, что хранить резервные копии в одном и том же дата-центре не самая лучшая идея. Также, на мой взгляд, хранить резервные копии у хостера тоже не самая лучшая идея, даже если бэкапы хранятся далеко от основного сервера. В последнее время не редки случаи, когда хостер может просто пропасть или у него изымают все оборудование.
Сервис аренды места для резервного копирования
- Активация услуги
- Смена пароля
- Уведомления о превышении порога занятого пространства
- Ограничение доступа по IP адресам
- Просмотр списка файлов и папок
Сервис аренды места для резервного копирования работает меньше полугода, однако в последнее время в нем произошли значительные изменения. О них и о сервисе я хочу сегодня подробно рассказать.
+7
Параллакс на чистом CSS
4 min
168KВ этой статье показывается, как с помощью CSS трансформаций и махинаций с 3d сделать параллакс-эффект на сайте на чистом CSS.
Параллакс почти всегда создаётся с помощью JavaScript и, чаще всего, получается ресурсоёмким, из-за вешания листенеров на событие скролла, модификации DOM напрямую и срабатывания ненужных перерисовок и перестановок. Всё это происходит асинхронно с потоком, в котором браузер рендерит страницу, из-за чего скролл начинает подтормаживать, а картинка рваться на части. Более правильные реализации параллакса отслеживают скролл и используют отложенные обновления DOM с помощью
Параллакс почти всегда создаётся с помощью JavaScript и, чаще всего, получается ресурсоёмким, из-за вешания листенеров на событие скролла, модификации DOM напрямую и срабатывания ненужных перерисовок и перестановок. Всё это происходит асинхронно с потоком, в котором браузер рендерит страницу, из-за чего скролл начинает подтормаживать, а картинка рваться на части. Более правильные реализации параллакса отслеживают скролл и используют отложенные обновления DOM с помощью
requestAnimationFrame
. Получается качественной другой результат, но почему бы вообще не избавиться от JavaScript?+49
DDoS великий и ужасный
10 min
68KЗнаете ли Вы, что по данным исследований, проведённых Arbor Networks, Verisign Inc. и некоторыми другими компаниями:
Каким бывает DDoS, можно ли с ним бороться и как можно предостеречься? Об этом я вкратце поведаю в данной статье.

- ежедневно наблюдается порядка 2000 DDoS атак;
- атака, способная «положить» небольшую компанию на неделю, стоит всего $150;
- около 2/3 участников исследований (63%) страдали хотя бы раз от DDoS в течение года;
- помимо прямых убытков и потери лояльности пользователей, атаки также влияют на продуктивность работы персонала;
- 11% респондентов были под атакой шесть и более раз за год;
- среди тех, кто за последние 12 месяцев был под атакой, 46% лежали более 5 часов, а 23% — более 12 часов;
- примерно треть всех случаев даунтайма у респондентов вызваны DDoS атаками.
Каким бывает DDoS, можно ли с ним бороться и как можно предостеречься? Об этом я вкратце поведаю в данной статье.

+22
oDesk (Upwork). Мой опыт за полтора года
12 min
445KВот уже полтора года я зарабатываю фрилансом на бирже oDesk. За это время у меня накопилось много материалов по данной теме. В данном топике я собрал все в одну статью и адаптировал для аудитории хабра.


+178
Менеджмент. Краткое руководство для начинающих менеджеров и опытных подчиненных
6 min
70KСовременный менеджмент включает в себя целый ряд дисциплин, которые объединяют в себе самые различные функции, от менеджмента рисков до управления ресурсами и маркетинга. Сегодня же мы взглянем на менеджмент проекта в рамках IT-компании в общем, опишем главные функции менеджера (каждая из которых включает тысячи подфункций и еще больше всевозможных задач) и опровергнем несколько устойчивых и вредных мифов. Эта статья для начинающих PMов, а также для тех, кто вырос в менеджера из программиста.

Контрольный вопрос: чем менеджер отличается от подчиненного? На самом деле, основное отличие – это ответственность за результат. Менеджер отвечает за результат всей команды. На этом фоне ни решение задач, ни зарплата не является основной отличительной чертой между подчиненным и менеджером.

Контрольный вопрос: чем менеджер отличается от подчиненного? На самом деле, основное отличие – это ответственность за результат. Менеджер отвечает за результат всей команды. На этом фоне ни решение задач, ни зарплата не является основной отличительной чертой между подчиненным и менеджером.
+15
Оптимизация Linux для desktop и игр
8 min
176KВ этой статье я хочу поделиться почти 10-летним опытом использования Linux на домашнем компьютере. За это время я провел много экспериментов над ядром, испробовал различные конфигурации для разных применений и теперь хочу все это систематизировать в длинный пост с рекомендациями как выжать из linux максимум и добиться отличной производительности, без необходимости покупать мощное железо.
Лично я считаю часть, где я написал про тюнинг ядра все же немного устарела и современное железо уже априори выдает необходимую производительность для нормальной работы, но, как мне удалось заметить недавно, с играми все равно, даже сейчас, есть проблемы, даже на мощном железе.
Хоть я и пообещал, что после прочтения этой статьи, можно будет играть в Metro 2033 на калькуляторе (шутка, такого не будет), все же она начнется с рекомендации купить кое-что из железа, если у вас этого еще нет.
Лично я считаю часть, где я написал про тюнинг ядра все же немного устарела и современное железо уже априори выдает необходимую производительность для нормальной работы, но, как мне удалось заметить недавно, с играми все равно, даже сейчас, есть проблемы, даже на мощном железе.
Хоть я и пообещал, что после прочтения этой статьи, можно будет играть в Metro 2033 на калькуляторе (шутка, такого не будет), все же она начнется с рекомендации купить кое-что из железа, если у вас этого еще нет.
+66
fork() vs. vfork()
15 min
41KПослушайте!
Ведь, если звезды зажигают — значит — это кому-нибудь нужно?
В. В. Маяковский, 1914

Я занимаюсь программированием для встроенных систем, и данную статью решил написать для того, чтобы лучше разобраться с проблемой использования системных вызовов fork() и vfork(). Второй из них часто советуют не использовать, но ясно, что появился он не просто так.
Давайте разберёмся, когда и почему лучше использовать тот или иной вызов.
В качестве бонуса будет приведено описание реализаций vfork()/fork() в нашем проекте. Прежде всего, мой интерес связан с применением этих вызовов во встроенных системах, и главной особенностью приведённых реализаций является отсутствие виртуальной памяти. Возможно, хабровчане, хорошо разбирающиеся в системном программировании и во встроенных системах, дадут советы и поделятся опытом.
Кому интересно, прошу под кат.
+68
Опыт использования виртуализации на VirtualBox
14 min
219KУровень: начинающим
Несколько лет назад я начал разбираться с вируализацией, и у меня получились своего рода путевые заметки, которые я сейчас оформил и выкладываю сюда. Никаких откровений тут не будет, статья адресована начинающим админам. Задача которую я здесь решаю состоит в том, чтобы виртуализовать уже имеющиеся не виртуальные сервера на Linux и FreeBSD.

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

+41
Как заставить работать старую версию «Скайпа»
1 min
135K2 августа, прямо во время звонка родителям, «Скайп» выбросил меня и отказался принимать пароль со словами «Skype больше не поддерживает работу своего программного обеспечения в твоей системе». На самом деле, конечно, дело не в версии системы, а в версии самого «Скайпа»: у меня стояла 4.2 (под «Виндоус»). Вариант обновления до более поздних версий я даже не рассматривал. Погоревав с неделю, я всё-таки начал искать способы решения проблемы и, к большому своему удивлению, нашёл.
Итак, процедура запуска «старой» версии «Скайпа» такова (повторюсь, рецепт для «Виндоус»).
Итак, процедура запуска «старой» версии «Скайпа» такова (повторюсь, рецепт для «Виндоус»).
+37
EtherCalc: электронные таблицы на Node.js
1 min
13KEtherCalc — отличный инструмент для редактирования электронных таблиц в вебе, в том числе для совместной работы.

Просто перетяните готовый документ CSV или Excel XML (.xlsx) на страницу — и она сразу импортируется в EtherCalc. Или можно создать новый документ одним нажатием кнопки.
EtherCalc кажется более удобным и функциональным, чем «Google Таблицы» и другие подобные программы. В комментариях репозитории на Github автор объясняет, что EtherCalc — это порт на Node.js приложения SocialCalc. Программу можно установить локально для работы в офлайне.
Исходный код опубликован под свободной лицензией.

Просто перетяните готовый документ CSV или Excel XML (.xlsx) на страницу — и она сразу импортируется в EtherCalc. Или можно создать новый документ одним нажатием кнопки.
EtherCalc кажется более удобным и функциональным, чем «Google Таблицы» и другие подобные программы. В комментариях репозитории на Github автор объясняет, что EtherCalc — это порт на Node.js приложения SocialCalc. Программу можно установить локально для работы в офлайне.
Исходный код опубликован под свободной лицензией.
+24
Дайджест интересных материалов из мира веб-разработки и IT за последние несколько недель №117 (10 — 27 июля 2014)
7 min
41KМы вернулись из отпусков и с новыми силами предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


+71
JQuery Deferred — примеры использования
5 min
66KВ этой статье я не буду говорить о том зачем в javascript нужны промисы и в частности JQuery.Deferred. Также не буду приводить справочную информацию, ее достаточно в интернете. Например тут или тут или вот тут.
Эта статья для тек кто уже немного знаком с объектом Deferred из библиотеки JQuery, но не имеет опыта написания сложных цепочек (очередей).
Все примеры кода, рассмотренные здесь, используют асинхронный метод $.ajax(), который возвращает так называемый jqXHR в котором реализованы промис-методы (done, fail, always, then). Нам нужны будут только они, поэтому будем считать что $.ajax возвращает промис (promise).
В некоторых примерах используются методы $.map() и $.each(), которые входят в состав библиотеки JQuery.
Простейшее использование промисов — это последовательное выполнение асинхронных операций. То есть следующая операция не начинается пока текущая не закончится.
Живой пример тут.
Эта статья для тек кто уже немного знаком с объектом Deferred из библиотеки JQuery, но не имеет опыта написания сложных цепочек (очередей).
Подготовка
Все примеры кода, рассмотренные здесь, используют асинхронный метод $.ajax(), который возвращает так называемый jqXHR в котором реализованы промис-методы (done, fail, always, then). Нам нужны будут только они, поэтому будем считать что $.ajax возвращает промис (promise).
В некоторых примерах используются методы $.map() и $.each(), которые входят в состав библиотеки JQuery.
Последовательное выполнение
Простейшее использование промисов — это последовательное выполнение асинхронных операций. То есть следующая операция не начинается пока текущая не закончится.
$.ajax('http://echo.jsontest.com/id/1')
.then(function(result){
console.log(JSON.stringify(result));
return $.ajax('http://echo.jsontest.com/id/2')
}).then(function(result){
console.log(JSON.stringify(result));
return $.ajax('http://echo.jsontest.com/id/3')
}).then(function(result){
console.log(JSON.stringify(result));
});
Живой пример тут.
+36
Автоматическая очистка старых драйверов, или выжмем немного места из Windows 7
6 min
233KВ один прекрасный (или печальный, кому как) день мне надоело, что у меня периодически заканчивается место на ноутбуке. Да, я в курсе, что жёсткие диски сейчас дешевы, но это для меня не выход, потому что:
Этот топик, пожалуй, предназначен и может быть полезен тем людям, кого волнует свободное место на системном диске, обычные средства очистки уже испробованы, а хочется выжать ещё чуть-чуть (как в старом анекдоте — первая попавшаяся в гугле ссылка на анекдот, если сайт плохой — пардон).
- У меня SSD, а он всё-таки подороже будет, чем обычные HDD (объём моего текущего SSD — 120 гигов)
- Ноутбук рабочий, соответственно данные на нём тоже, должны быть шифрованы, всё такое, поэтому самопальный и не утверждённое работодателем носитель втыкать не стоит
Я жадный :)
Этот топик, пожалуй, предназначен и может быть полезен тем людям, кого волнует свободное место на системном диске, обычные средства очистки уже испробованы, а хочется выжать ещё чуть-чуть (как в старом анекдоте — первая попавшаяся в гугле ссылка на анекдот, если сайт плохой — пардон).
+54
Модульные комиксы — простой способ увлечь аудиторию
2 min
34KБорьба за внимание читателя/аудитории набирает обороты. Автор длительное время наблюдает за поведением людей на презентациях (сидя рядом) и слегка шокирован скоростью вхождения большинства индивидуумов в полусонное состояние.
Лекции о визуальном мышлении и разнообразные рецепты улучшения «перевариваемости» информации уже успели набить оскомину. Собственно, почему комиксы?

Лекции о визуальном мышлении и разнообразные рецепты улучшения «перевариваемости» информации уже успели набить оскомину. Собственно, почему комиксы?

+83
18 неожиданностей при чтении исходного кода jQuery
4 min
56KTranslation
Перевод статьи «18 Surprises From Reading jQuery's Source Code», David Aragon.
Я люблю jQuery, и хотя я считаю себя продвинутым JavaScript разработчиком, я никогда, до сих пор, не читал исходники jQuery с начала и до конца. Вот несколько вещей, которые я при этом узнал:
Я люблю jQuery, и хотя я считаю себя продвинутым JavaScript разработчиком, я никогда, до сих пор, не читал исходники jQuery с начала и до конца. Вот несколько вещей, которые я при этом узнал:
+89
Никогда не «не делай» того, о чем пожалеешь или умный дом с CCU.IO
12 min
119KНа хабре последнее время появляется много статей об автоматизации дома. Какие-то статьи с пространными размышлениями на тему умного дома, не несущие полезной нагрузки. Какие-то с конкретной реализацией на конкретном проприетарном железе, но им не хватает чего то для того, что бы быть установленными или запущенными в другом доме.
Хочу представить программную платформу автоматизации для дома на базе Node.js, которую можно скачать со всеми исходниками и установить прямо сейчас практически одним кликом (Windows) или одной командой (Linux/Debian).

Хочу представить программную платформу автоматизации для дома на базе Node.js, которую можно скачать со всеми исходниками и установить прямо сейчас практически одним кликом (Windows) или одной командой (Linux/Debian).

+78
Модулятор REM-фазы сна
4 min
29KВ данной статье предлагаю рассмотреть создание достаточно быстро (~30 секунд) устройства вводящего человека в состояние транса или гипнотического состояния.
В последнее время на хабре появилась ряд статей посвященных осознанным сновидениям.
И мне подумалось, что мои исследования в этой области могут быть интересными для других.
Началось все с попыток научным образом описать и объяснить феномен осознанных сновидений или другими словами ОСов. Для чего мне пришлось сделать массу экспериментов над собой и окружающими. Как правило эти эксперименты были безболезненными хотя случались исключения. В конечном мне довелось познакомиться с ребятами которые которые занимались этим исследованием более основательно. В частности у ребят оказался электроэнцефалограф (далее ЭЭГ), при помощи которого была снята ЭЭГ работы мозга человека во время осознанного сновидения.
В последнее время на хабре появилась ряд статей посвященных осознанным сновидениям.
И мне подумалось, что мои исследования в этой области могут быть интересными для других.
Началось все с попыток научным образом описать и объяснить феномен осознанных сновидений или другими словами ОСов. Для чего мне пришлось сделать массу экспериментов над собой и окружающими. Как правило эти эксперименты были безболезненными хотя случались исключения. В конечном мне довелось познакомиться с ребятами которые которые занимались этим исследованием более основательно. В частности у ребят оказался электроэнцефалограф (далее ЭЭГ), при помощи которого была снята ЭЭГ работы мозга человека во время осознанного сновидения.
+50
Information
- Rating
- Does not participate
- Registered
- Activity
Specialization
Application Developer, Software Architect
Lead