Search
Write a publication
Pull to refresh
8
0
crazyprog @crazyprog

User

Send message

Большой брат в Linux или видеонаблюдение своими руками

Reading time6 min
Views97K
Большой брат в Linux или видеонаблюдение своими руками.

После переезда в новый офис, дабы не расслаблять сотрудников, было решено
установить систему видеонаблюдения. Но, как обычно, основным условием было:
дешево и сердито :) После обдумывания и подсчетов было решено остановиться на
следующем:
IP камеры и компьютер в качестве регистратора.
Для начала попробовали небезызвестный ZoneMinder. Но отчего-то с 9 камерами он
грузил систему нещадно. После некоторой борьбы с ним, было решено отказаться от
него. Поискав на просторах Internet была найдена программка под названием
motion (http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome). Почитав немного
про нее, было решено остановиться на ней.
Итак, у нас были IP камеры, компьютер в качестве регистратора, motion в
качестве софта и желание подружить весь этот колхоз :)
Читать дальше →

12 вещей, которых вы не знали о венчурных инвесторах

Reading time2 min
Views663
imageГай Кавасаки, директор инвестиционной компании Garage Technology Ventures, после интервью с крупными IT-инвесторами Майком Морицем из Sequoia Capital и Полом Грэмом из YCombinator изложил на мой взгляд интересные 12 правил для предпринимателей, обращающихся за инвестициями в эти компании.

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

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

Различия между IE6, IE7 и IE8. Часть первая

Reading time4 min
Views6K
(От перев. Данная статья не претендует на полноту и непротиворечивость, потому мы не будем строить на ее основании никаких теорий. Это всего лишь практическое пособие для разработчиков, немного исправленное и дополненное мной под реалии Рунета.)

Одним из самых странных статистических фактов, связанных с использованием браузеров, является широкая распространенность Internet Explorer версии 6, 7 и 8. На сегодняшний день все версии Internet Explorer вместе занимают примерно 65% рынка используемых в настоящее время браузеров. Среди веб-разработчиков эта цифра ниже, здесь доля пользователей IE составляет лишь 40% рынка.
(От перев. Надеюсь, эти 40% составляют лишь несчастные верстальщики, проверяющие свои сайты на предмет кроссбраузерности. Статистика по Рунету доступна, например, здесь. Заметьте, в сентябре у всех браузеров IE-семьи график без видимых причин подскочил — это вернулись за свои компьютеры офисные пользователи, самые преданные почитатели наших героев.)

Интересно, что популярность браузеров семейства IE примерно одинакова, нельзя выделить один доменирующий браузер, как это было ранее. (От перев. Конечно, нельзя. Вот смотрю и ну никак не могу выделить доминирующий браузер. =) ) Таким образом, сейчас веб-разработчики обязаны проверять работоспособность своего проекта в различных браузерах, разрабатывая как сайты для своих заказчиков, так и персональные странички.

Конечно, благодаря различным Javascript-библиотекам, кроссбраузерное тестирование сейчас стало настолько хорошим, насколько данная ситуация вообще позволяет это сделать. (От перев. А еще есть возможность сделать скриншоты в разных браузерах, IE Collection и тому подобные ухищрения) Но есть в этом что-то неправильное, особенно если взглянуть на результат работы трех использующихся версий IE.

Эта статья является попыткой дать исчерпывающую, легкую в восприятии информацию для веб-разработчиков, пытающихся понять различия в обработке CSS между IE6, IE7 и IE8. Здесь собраны краткие описания для свойств, поддерживаемых одним или двумя браузерами, но не всеми тремя сразу. Здесь не рассматриваются свойства, не выполняемые ни одним из IE, а также специфичные только им. Таким образом, акцент стоит именно на различиях между браузерами, а не на недостатке поддержки ими тех или иных CSS-свойств.

Ну-ну, продолжайте...

Software Configuration Management // Распределенный контроль версий

Reading time5 min
Views6.5K
Приветствую. Как и обещал — продолжение цикла заметок об управлении конфигурацией ПО, в простонародье называемом Software Configuration Management. Весь цикл можно найти по ссылке на тэг CM. Из ещё неохваченного осталась буквально пара заметок.

Сегодня речь пойдет о довольно спорном и в чём-то провокационном вопросе — распределенных системах контроля версий. Знаю, что подобные системы популярны среди хабравчан, так что заранее готов в обсуждению. Более того — призываю не проходить мимо и высказаться, если есть что сказать по делу.

Приступим

Как правильно использовать Zend_Paginator

Reading time2 min
Views5.2K
Мой друг написал в песочнице статью, которая оказалась для меня (и не только) полезной, но через 7 дней была удалена. С его разрешения привожу её ниже. Если кому она тоже будет полезной, то он просит выслать ему инвайт на alxsad@gmail.com .

Привет всем любителям Zend Framework. Хочу расказать как правильно использовать компонент Zend_Paginator. Я очень часто видел, как плохо с ним работают некоторые программисты. Давайте посмотрим на код, представленный ниже:

$pages = new Model_Pages();
$paginator = Zend_Paginator::factory($pages->getRows());
$paginator->setItemCountPerPage(1);
$paginator->setPageRange(1);
$paginator->setCurrentPageNumber($this->getRequest()->getParam('page', 1));
Zend_Paginator::setDefaultScrollingStyle('Sliding');
$this->view->pages = $paginator;
$paginator->setView($this->view);
Zend_View_Helper_PaginationControl::setDefaultViewPartial('paginator.phtml');
$this->view->paginator = $paginator;


* This source code was highlighted with Source Code Highlighter.


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

image

Видите? Проблема заключается в том, что люди сразу забирают ВСЕ записи из базы данных, а потом уже из них выбирают нужные. Это огромная ошибка. Поэтому читаем как это делается
правильно.
Читать дальше →

Статистика Google Analytics на вашем сайте. Часть вторая. Использование GAPI

Reading time2 min
Views11K
С момента публикации первого топика о создании хабраподобной статистики (которую, кстати, почему-то тут не обновляют) с импортированием данных из Google Analytics прошел ровно год.

image

Весь этот год все работало, статистика обновлялась, графики рисовались… пока все не сдохло. Как это и присуще гуглу, сдохло оно не сразу у всех, а потихоньку, в течение недели. При беглой диагностике проблемы выяснилось, что она заключается в гугловой авторизации. Учитывая, что скрипт авторизации мною был заимствован, разбираться в нем не было никакого желания, и тут до меня дошло — ведь Google выпустил API для аналитикса! Поэтому было решено не обрабатывать напильником существующую версию, а просто получить данные цивилизованно, посредством API, тем не менее, оставив при этом «структуру» и основные моменты предыдущей версии.
Читать дальше →

Динамический CSS?

Reading time4 min
Views19K
xCSS PHP ClassЯ давно ждал этого момента, нет честно, где-то в подкорке я очень-очень хотел такой штуки чтобы было удобно писать на CSS без переписывания похожих стилей по два раза, без выыскивания нужных разделов в собственном коде, в общем хотелось чтобы на CSS можно было работать легко и просто, что-то я затянул…И так встречайте xCSS — php-класс для работы с динамическим CSS.
Поехали

VS wizard: PHP extension

Reading time1 min
Views2.1K
Около месяца назад экспериментировали с написанием экстеншенов и столкнулись с реальной проблемой: если в *nix разработка проста и прозрачна, то в винде можно огрести стразу куеву хучу гемора, причем решение далеко не очевидно.

Как известно, php <=5.2 собирают с помощью музейных версий VC, попытки же собрать версиями 7-9 были обречены на неудачу: либо не собиралось, либо падало в процессе работы.
В 5.3 версии разработчики сделали возможность собрать PHP при помощи VS 2008, так что эта проблема решена. Но… собирать экстешнены гораздо проще. Даже новыми версиями VC под PHP <= 5.2.
Мы сделали решение, простое и прозрачное, которое в пару кликов мыши создаст проект под VS 2008(ориентировались на standard+ версии).
Если вы знакомы с разработкой расширений, качайте наш визард и собирайте под винду без проблем.
А если не знакомы — то ждите завтра-послезавтра статью, черновой вариант дописан.
Итак, качайте PHP extension. Он снабжен установщиком, так что проблем не возникнет ;)

Какие бывают META теги и зачем они нужны

Reading time7 min
Views267K

META-теги


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

META-теги имеют два возможных атрибута


— <META HTTP-EQUIV="имя" CONTENT="содержимое">
— <META NAME="имя" CONTENT="содержимое">
META-теги должны находиться в заголовке HTML-документа между <HEAD> и </HEAD> (особенно это важно для документов, использующих фреймы).

Стандартом HTML 4.01 значения и имена мета-тегов НЕ оговариваются, поэтому мы будем рассматривать те значения, которые уже устоялись в интернете и используются чаще других.
подробнее о META тегах

О том, какие шишки я набил

Reading time5 min
Views2K
Здравствуйте Хабрахабр сообщество!
Я хотел бы поделиться своим опытом с теми, кто начал, или только думает начинать свой бизнес, в частности имеющий отношение к веб-дизайну.
Капелька истории
Я работаю в сфере веб-дизайна без малого 5 лет. Начинал я естественно фри-лансером, создавал проекты, репутацию и т.д. Всё было хорошо до поры до времени. Пока на горизонте не замаячила мечта всей жизни на тот момент – собственный бизнес. С несколько месяцев раздумий, я решился на этот, как я теперь понимаю отчаянный шаг. По воле случая, я нашёл инвесторов, и они помогли мне с регистрацией юридического лица, стартовым капиталом, и т.д. и т.п. Команда к тому времени тоже была, весьма сработанная. Всё вышло замечательно, появилась фирма, спустя несколько месяцев и собственный офис, правда маленький, но всё равно, ощущение дикой пафосности не покидало наши сердца :-).
много букв

Новые вещи не решат старые проблемы

Reading time2 min
Views3.5K
Продолжаю перевод статей замечательного человека Leo Babauta на тему минимализма. В прошлой раз была рассмотрена настоящая цена вещей. В комментариях были вопросы что делать, частично ответы ниже.

Как мы поступаем, когда хотим решить проблему? Или изменить нашу жизнь? Мы покупаем новую вещь:
  • Если хотим стать организованными, то купим полочки, или папки для бумаг, или органайзер.
  • Если хотим сбросить вес, купим диетическую еду, или тренажер, или абонемент в спортзал.
  • Для защиты окружающей среды мы покупаем экологически чистую продукцию.
  • Чтобы избавиться от долгов, мы нанимаем специалиста или заводим программу финансового планирования.
  • Чтобы сэкономить на бензине, купим экономичную машину.
  • Для нового хобби покупаем сначала материалы и инструменты.
  • Почти для всего мы покупаем новую одежду (рабочую, одежду для йоги, парадную одежду, стильную одежду).
  • Если хотим что-то улучшить дома, то покупаем новую мебель или украшения.
  • Если хотим выглядеть круче, то покупаем новый гаджет. Или футболку.
  • Для улучшения жизни покупаем новую книгу.
Я могу продолжить, но вы поняли идею, я надеюсь.

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

Zend Framework: стремимся к MVC для Javascript, CSS

Reading time5 min
Views5.4K
При постепенном изучении Zend Framework и построении с его помощью базовых приложений я заметил, что клиентский js-код и инлайновые стили попадают в скрипты вида, при этом они начинают занимать почти половину всего скрипта. В принципе, ничего плохого в этом нет, но мне такая мусорка начала давить на глаза. Кроме того, инлайновый js постепенно превращается в жестко привязанную к скрипту вида конструкцию, полностью зависимую как от самого скрипта, так и от переданных контроллером данных. При всем этом не оставляет желание писать на javascript код максимально красивый при помощи библиотеки jQuery.

Итак, что в данном случае можно сделать. Первая же мысль — вынести инлайновые скрипты и стили во внешние файлы и подключать их через помощники вида headLink и headStyle. Если со стилями все примерно понятно — достаточно специфический стиль для конкретного вида вынести в css файл и подключать его по мере необходимости, то js по-прежнему зависим от данных.
Читать дальше →

Кеширование FastCGI-запросов в nginx

Reading time2 min
Views28K
Доброе утро, Хабр!

В данной статье я приведу пример конфигурации nginx для кеширования FastCGI-запросов. При желании его можно использовать его для защиты от хабраэффекта, частично от DDoS'а и, как вариант, для облегчения жизни сервера с высокой нагрузкой.
Читать дальше →

Вложенные запросы при помощи Zend_Db_Select

Reading time2 min
Views6.1K
    Относительно недавно при написании кода очередной модели, передо мной встала задача использования подзапроса (к примеру в join). При этом уже довольно давно я стараюсь как можно меньше писать запросов «в сыром» виде; использую для этого ООП обёртку Zend Framework. Однако, посмотрев в мануале, API, я, к своему удивлению, не нашёл необходимых средств. Но после обращения непосредственно к коду стало ясно, что вложенный запрос можно сделать очень просто!
Читать дальше →

Использование bash completion в командной строке, собственных скриптах и приложениях. Часть 1

Reading time2 min
Views58K
Часть 2

Системный администратор — человек ленивый. Обычно он старается сделать максимум работы, приложив минимум усилий, а для этого зачастую требуется автоматизировать многие рутинные процедуры. Например — набор полных имен хостов при создании ssh-соединения, или же длинных аргументов некоторых команд :)

Сегодня я попробую рассказать про использование такого функционала шелла как bash completion.
вам интересно?

Управление сайтом на Windows-хостинге или как быть если не работает .htaccess

Reading time2 min
Views12K
Далеко не секрет то, что в случае работы сайта на Windows-хостинге под управлением web-сервера IIS не работают директивы, размещаемые в файле .htaccess, которые позволяют управлять настройками сайта, работающего под управлением Apache.
Панели управления хостингом в своей массе не реализуют тех настроек сайта, которые могут потребоваться клиенту для полноценной работы. Безусловно ручная настройка персоналом хостера сайта клиента по запросу это не выход, а костыль, на который не стоит опираться.

Для решения данной проблемы компания Microsoft выпустила своё решение — программу IIS Manager.
Читать дальше →

Как сделать фриланс лучше?

Reading time1 min
Views688
Вы когда-нибуть задумывались о том, что вам нравится во фрилансе, а что нет?
Есть какие-нибуть вещи, которые вас бесят?
А те от которых вы в восторге?

Меня бесят:
— заказчики которые не уважают мой труд;
— исполнители с тысячами отмазок, которые внезапно пропадают в самый нужный момент.

Мне нравится:
— что я могу спать ровно столько сколько я хочу;
— что я могу путешествовать не отрываясь от работы.

Что по вашему мнению можно реально улучшить?

Почему важен DOCTYPE и как его правильно использовать

Reading time7 min
Views134K
Решил проводить регулярные лекции и практические занятия со своими сотрудниками по программированию на PHP, MySQL, Javascript. А также другим технологиям необходимым для выпуска качественных сайтов. Начать решил с самого «верха», с HTML тэгов. Буду рад, любым комментариям :)
Сразу оговорюсь, что бОльшая часть информации я нашел в интернете, внизу статьи будут приведены ссылки на источники. Часть информации была переведена совместно с google translate.
Итак:

Почему так важен DOCTYPE



Вроде бы вы сделали все правильно, но ваш сайт почему-то не выглядит или не работает, как ожидалось, в последних версиях броузеров.
Вы написали правильный стандартный XHTML код и стандартный CSS. Вы воспользовались стандартной спецификацией для работы с DOM (Document Object Model), чтобы управлять динамическими элементами на странице. И все-таки, в броузерах, которые казалось бы сделаны с соблюдением именно этих стандартов, ваш сайт не работает. Скорей всего, ошибка кроется в неправильном заголовке DOCTYPE.
Эта небольшая статья расскажет вам о заголовках DOCTYPE, которые работают, а также объяснит практическое и теоретическое значение этого, казалось бы отвлеченного от реальности, тега.
Читать дальше

dblink

Reading time1 min
Views28K
На работе потребовалось разобраться с провести множество экспериментов с dblink.
Что бы не наступать по нескольку раз на одни и те же грабли, параллельно сделал перевод документации разбавив его своими комментариями.

Кому интересно, велкам: doc.prototypes.ru/database/postgresql/contrib/dblink

Родная документация тут: www.postgresql.org/docs/8.4/static/dblink.html

Information

Rating
Does not participate
Location
Зеленоград, Москва и Московская обл., Россия
Registered
Activity