Search
Write a publication
Pull to refresh
117
0
Владимир Синельников @onthefly

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

Send message

«Нет времени объяснять!» или Как реализовать трансляцию с IP камеры на сайт?

Reading time7 min
Views116K
image


Пожалуй, мне везет на идиотские задачи в самый неподходящий момент. Это что, карма такая?! Ну да ладно…
В данном «отпускном» посте речь пойдет о том, как при наличии 3g модема и ноутбука реализовать трансляцию с IP-камеры на сайт.
Сам пост я бы не написал, если бы не задал вопрос на «Тостере», где мне подсказали, что гуглить.

Что мы имеем?


  1. Недешевая IP камера AXIS Q1755, которую я даже в руках не держал. Сама камера находится в городе «А» и подключена через тормозной 3g модем.
  2. Сервер на Debian 7, который крутится на почти дохлом Core2Duo. Хотя не такой уж он и дохлый, но для данных задач подходит не очень. Ах, да, сам сервер живет в городе Б.
  3. Сайт, на который необходимо повесить плеер. Находится на другом, более производительном сервере, в том же городе Б.
  4. Я, который находится в городе В, с ноутбуком, 3g-модемом и ограниченным трафиком в 4gb.

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

Настройка и оптимизация MySQL сервера

Reading time9 min
Views317K
В этой статье будут описаны различные настройки MySQL, преимущественно те, которые влияют на производительность. Для удобства все переменные разделены по разделам (базовые настройки, ограничения, настройки потоки, кэширование запросов, тайминги, буферы, InnoDB). Сначала уточним имена некоторых переменных, которые изменились в версии 4 MySQL, а в сети продолжают встречаться и старые и новые варианты имен, что вызывает вопросы.
Читать дальше →

Fail2ban и nginx: блокируем нежелательный трафик к определенному URL

Reading time2 min
Views58K
Доброго времени суток!

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

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

WordPress для параноиков, часть 1

Reading time9 min
Views63K
Итак, если вы счастливый владелец nginx, знатный параноик и за каким-то чертом решили поставить wordpress, то… Первое, что пришло в голову — это «надо ограничить сему творению свободу!».

Настройки учетной записи, как и настройки php5-fpm, я опущу, так как у каждого свои тараканы, а кто-то вообще на apache запускает. Но вот общие для Wordpress я опишу в этой части. Напишу о том, что сделал, что получилось и почему.
Читать далее

Выразительный JavaScript: Регулярные выражения

Reading time22 min
Views235K

Содержание




Некоторые люди, столкнувшись с проблемой, думают: «О, а использую-ка я регулярные выражения». Теперь у них есть две проблемы.
Джейми Завински

Юан-Ма сказал: «Требуется большая сила, чтобы резать дерево поперёк структуры древесины. Требуется много кода, чтобы программировать поперёк структуры проблемы».
Мастер Юан-Ма, «Книга программирования»


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

В этой главе мы обсудим такой инструмент – регулярные выражения. Это способ описывать шаблоны в строковых данных. Они создают небольшой отдельный язык, который входит в JavaScript и во множество других языков и инструментов.

Регулярки одновременно очень странные и крайне полезные. Их синтаксис загадочен, а программный интерфейс в JavaScript для них неуклюж. Но это мощный инструмент для исследования и обработки строк. Разобравшись с ними, вы станете более эффективным программистом.
Читать дальше →

Оптимизация JavaScript и jQuery из-под HTML и CSS при разработке сайта

Reading time3 min
Views34K
Доброго времени суток, Хабражители. Хочу поделиться неким опытом (советами) при работе с JavaScript + jQuery (по сути, вместо jQuery можете подставить любой другой JS фреймворк). Статья будет интересна новичкам JS и jQuery, но и динозаврам опытным проходить мимо не стоит, в ней вполне можно найти полезную информацию. В основном, в статье я привожу не однозначные случаи, но и место для «стоТыщРазПовтор» я счёл уместным.

image

Инициализация


Сплошь и рядом встречаю загрузку JS файлов в теге . В большинстве случаев - это не корректно! Почему? В этом случае JS начинает загружаться до загрузки HTML, и как следствие клиент дольше ждёт загрузки информации за которой он пришёл. Размещение скриптов в оправдано только в тех случаях, когда JS используется в качестве контроллера (к примеру, всё содержимое на странице мы достаём поблочно через AJAX запросы, в зависимости от URL или Hash). Если не используем, то гораздо лучше вставлять скрипты перед зыкрытием тэга . JS начнёт загружаться только после того, как посетитель увидит страницу.
Читать дальше →

Илья Григорик о внедрении HTTP/2

Reading time4 min
Views39K
Известный специалист по серверной и клиентской оптимизации, соавтор WebRTC, автор книги "High Perfomance Browser Networking" Илья Григорик из Google опубликовал презентацию “HTTP/2 all the things!”, в которой объясняет, как следует настраивать серверную часть под HTTP 2.0, чтобы повысить скорость загрузки страниц и уменьшить latency, по сравнению с HTTP 1.1.


Режим Connection View в браузере показывает загрузку элементов заглавной страницы Yahoo.com в HTTP 1.1

Илья начинает с того, что для современных сайтов бóльшая часть задержек приходится на ожидание загрузки ресурсов, при этом полоса пропускания не является ограничивающим фактором (синим цветом на диаграмме Connection View). По статистике, для загрузки средней веб-страницы браузер делает 78 запросов к 12 различным хостам (общий размер загружаемых файлов 1232 КБ).
Читать дальше →

Аппаратное ускорение в жизни верстальщика. Семинар в Яндексе

Reading time6 min
Views71K

Привет! Меня зовут Александр Завьялов. В Яндексе я занимаюсь разработкой интерфейсов. Недавно я выступил перед коллегами с докладом об аппаратном ускорении в жизни верстальщика, где также коснулся смежных тем. Рассказал о производительности веб-страниц, о том, как она измеряется и к чему она может стремиться.



Ссылка, если видео не отображается

На основе доклада я подготовил этот пост. Я расскажу о том, как браузеры оптимизировали процесс отрисовки: с чего начинали и до чего докатились. Что сейчас можно сделать, чтобы жизнь верстальщиков и пользователей стала немного лучше. Я надеюсь, что кого-нибудь натолкну на какие-нибудь улучшения. Мне бы это было приятно.


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

Оптимизируем VPS за 5$ (512MB RAM / 1 CPU) так, что сайт на wordpress выдерживает нагрузку в 42,735,587 хитов в день

Reading time9 min
Views96K
Когда вы приобретаете сервер VPS с 256MB или 512MB оперативной памяти на борту и лишь часть мощности процессора, то использовать для таких сервисов как MySQL/PHP/Apache настройки по умолчанию является очень плохой идеей. В настоящее время у меня запущено 3 сайта на самом дешевом тарифном плане с 512MB RAM/1 CPU. Не уверен полностью, но посещаемость составляет порядка 5-10 тысяч посетителей в день. Далее я хочу поделиться инструкцией как оптимизировать LAMP используя всего лишь 512 MB и при этом не уходя в swap. Обычно при такой настройки используется 256 – 378Mb памяти и все работает довольно быстро.

Определяем доступную память и активность swap.

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

$ free -m

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

$ ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less


Настраиваем LAMP сервер для потребления малого количества оперативной памяти. Останавливаем, отключаем ненужные сервисы

Первый и очевидный вопрос, который необходимо задать — это «какие сервисы мне не нужны в использовании?». Недавно, я обнаружил очень удобную утилиту для управления сервисами. Она называется "sysv-rc-conf" и управляет сервисами при помощи псевдографики и флажками. Выгдялит вот так:



Здесь представлен список сервисов, которые я изменил.

  • Postfix. Этот сервис позволяет отправлять и получать почтовые email сообщения для домена. Я использую для этих целей Google Apps для отправки почты и mailchimp для новостных подписчиков. Таким образом я остановил и отключил этот сервис.
  • Bind9. Он нужен для управления DNS записями Вашего домена. Его можно отключить, так как все DNS записи хранятся у хостера.
  • SSHD. Имеются и другие реализации, которые используют гораздо меньше памяти, но они не поддерживают sftp, поэтому данный сервис я оставил без изменений.


Не запускайте X-сервер, выключите все ненужные сервисы и настройте Apache, MySQL, PHP только с базовой необходимой функциональностью.
Читать дальше →

Уменьшаем потребление CPU Skype под Linux и Mac OS

Reading time1 min
Views71K
image Skype. Как мы его любим и одновременно ненавидим. Долгое время, Skype был единственной программой, которую я старался закрывать при работе лаптопа от батареи: потреблял около 4% CPU, будил процессор 250-300 раз в секунду, ничего при этом не делая, оставляя процессору меньше времени на нахождение в более энергосберегающем состоянии.

Увидел я однажды комментарий пользователя Vayun:
Возможно проблема проявляется не у всех, проверить легко: запускаем скайп, запускаем top (на ноутбуке работающем от батареи наглядней будет powertop) и смотрим сколько он отъедает cpu.

Я долго не возился, придавил только poll, увеличив timeout. Это даёт наибольший выигрыш (уменьшая %CPU скайпа раз в 5), но наверное можно лучше.

Собственно, вот: Skype-poll-fix. Увеличивает таймаут у вызовов poll (Linux) и kevent (Mac OS), снижая потребление процессора в 4-5 раз.
Читать дальше →

Прототипы устройств Apple 30-летней давности

Reading time2 min
Views142K
В 1982 году Apple было всего шесть лет, а 28-летний Стив Джобс был сооснователем и президентом. Уже тогда компания стремилась к качественному дизайну своих продуктов и нанимала лучшие дизайнерские бюро для разработки концептов устройств. Одним из таких партнеров стала фирма Frogdesign. Ее основатель, немецкий дизайнер Хартмут Эсслингер (Harmut Esslinger), в прошлом году представил в своей книге "Design Forward" прототипы устройств Apple, которым не суждено было появиться на свет.

В то время компания Apple переживала не лучшие времена, активно боролась за рынок со своими конкурентами — IBM, Xerox, Sony, поэтому делать революционный продукт было просто необходимо. Хартмут Эсслингер в 70-ые годы работал с Sony, а с начала 80-ых — с Apple. За время сотрудничества компания изменила статус с локального бренда Кремниевой Долины на корпорацию мирового масштаба. Не малую роль в этом сыграл Хартмут Эсслингер, предложивший Стиву Джобсу концепт простого, светлого, «Snow White» дизайна. Таким был создан первый Макинтош, который царствовал на рынке с 1984 по 1990 годы, вплоть до ухода Стива Джобса из Apple. Вслед за ним ушел Хартмут Эсслингер, разорвав свой контракт и начав сотрудничать с NeXT.

Apple Snow White 3 «Macphone», 1984


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

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

Gyazo на собственном сервере

Reading time3 min
Views23K
Привет, хабр!
image
Я и мои друзья давно пользуются программой Gyazo.

Вкратце: маленькая программка, при запуске которой можно сразу выделять область на экране, а как только отпускаешь мышку, область закачивается на сервер gyazo, а в буфер обмена сразу копируется ссылка на него.
Попробовать можно здесь: http://gyazo.com

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

Сначала, в буфер копировалась не прямая ссылка на картинку, а ссылка на страничку с рекламой. Затем и вовсе прямой файл стал недоступен.

Поскольку gyazo является Open Source проектом, я решил сделать версию «для себя» и без рекламы.
Читать дальше →

GarageBand — Что может «сочинить» почти дилетант за 8 минут

Reading time1 min
Views77K
Наверное, многие владельцы iPad'ов знают о замечательной музыкальной программе под названием GarageBand (ссылка на AppStore, цена $4.99).

Но почему-то на просторах ютуба видео про нее не так-то много. Собственно, я решил внести свою лепту.

Итак, ниже привожу небольшой ролик, в котором показываю, что может создать дилетант за 8 минут. Владение музыкальными инструментами и нотной грамотой — не обязательно. На видео — результат недолгого копания с программой. Уверен, если провести с ней больше времени, можно написать (почти) полноценное произведение. (Как я понимаю, владельцы маков могут потом «допилить» и почистить результат своих музицированой в garageband'е для маков).

Вардрайвинг в MAC OS X

Reading time5 min
Views97K


Стандартом де-факто в вардрайвинге обычно считается система Linux (модифицированные драйвера, Kismet в связке с aircrack-ng). Но немногие знают, что в маке есть мощные инструменты для взлома аудита безопасности беспроводных сетей, ни чуть не уступающие, а во многом и превосходящие по функционалу Linux-аналоги.
UPD: Описанные в статье инструменты на сегодняшний день устарели. Рекомендуется использовать Linux

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

Кастомные социальные кнопки

Reading time5 min
Views74K
Недавно участвовал в разработке одного проекта — фото конкурса. По задумке, рейтинг фото альбомов должен формироваться из суммы всех публикаций в социальных сетях: Facebook, Вконтакте, Twitter. Т.е. общий рейтинг фотоальбома расчитывается:
Рейтинг фотоальбома = кол-во «Share» в Facebook + кол-во «Сохранить» в Вконтакте + кол-во «Retweet» в Twitter

На макетах, вид кнопок несколько отличался от предоставляемых социальными сетями плагинов, формируемых функциями api. В частности вид счетчиков:
image
Помимо несоответствий с дизайном, каждый плагин формирует излишний хтмл код, а хотелось бы лаконичный.

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

Итак:
  • количество лайков будем получать от REST сервисов каждой социалки
  • кнопки рисуем свои и обрабатываем событие click

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

Twitter дополнили социальным функционалом

Reading time2 min
Views476


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

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

Школьники на каникулах

Reading time2 min
Views1.2K
Наблюдали в последнюю неделю флуд по http на один из сайтов камрада, который живет со мной на VPS. Где-то на пару дней неизвестные прекратили свои поползновения. Но буквально вчера начали долбить другой сайт с новой силой. Пришлось покрутить nginx в стороне кэширования всего (ранее кэшировали прозрачно) + apache2 (поубавить аппетиты). Собственно, через несколько часов мы уже и думать забыли, что кто-то на нас нападает. Из кэшей все отдается быстро и непринужденно, apache отдыхает.

И вот буквально с утра камрад, сайт которого и подвергся «атаке», пересылает письмо школьника… (интрига под хабракатом)
Читать дальше →

Как подобрать хорошие ключевые слова и идеи для ваших статей

Reading time3 min
Views5.5K
Одной из самых важных вещей, о которых вы должны задуматься перед запуском проекта, является SEO. Оптимизируя контент сайта и используя правильные ключевые слова вы можете получить большой приток посетителей. SEO — очень комплексное занятие, имеющее множество заковырок. Одним из важнейших моментов этого комплекса является подбор правильных ключевых слов. Об этом мы и поговорим.
Читать дальше →

Собственный youtube

Reading time3 min
Views3.2K
В Сети развелось довольно много видеохостингов типа youtube. Вот и одному провинциальному провайдеру захотелось у себя сделать такую вещь. С какой-то стороны — правильно, ибо почти у всех провайдеров в небольших городах толстые внутренние каналы (10-100-1000 мегабит) и тонкие внешние (5-10-20 мегабит), так что надо стремиться к тому, чтобы внутри было как можно больше популярных ресурсов — хотя бы для оптимизации загрузки внешнего канала, если не для привлечения клиентов.

Задача поставлена, сумма оговорена — надо делать. Вариант «писать свое» отметается сразу — долго, нудно, да и программистом я себя не считаю. Хотя, если хочется, то никто не мешает: проигрывание клипов — JW Player, загрузка файлов — на любимом языке реализуется без вопросов, перекодирование видео — зависит от выбранной платформы (mencoder есть где угодно). Но я не люблю изобретать велосипеды, а предпочитаю использовать готовые решения, так что пошел в гугл. Поиск принес несколько вариантов, как бесплатных, так и платных (от 10 евро и выше), но для начала решил попробовать самый популярный из бесплатных вариантов — phpmotion.

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

Information

Rating
Does not participate
Location
Курск, Курская обл., Россия
Date of birth
Registered
Activity