воскресенье, 3 апреля 2011 г.

Хабрахабр

КупиКупон - скидки от 50% до 90%

Хабрахабр:



Как-то медитируя на свой новый велосипед подумал, ? А почему бы не заложить в него возможность ?плагинизации? контроллеров? Чтобы вот был, например, у нас некий базовый класс Generic.php: <?php class Generic { public function Hello() { echo 'Hello!'; } } ?> А мы такие взяли и повешали бы на него пару плагинов, которые дополнят/изменят какие-либо его методы не мешая друг-другу (по принципу ?кто первый встал ? того и тапки?). Вот они красавцы: PluginFoo.php: <?php class PluginFoo extends Generic_PluginFoo { public function Hello() { echo 'Dudes?<br />'; parent::Hello(); } } ?> и PluginBar.php: <?php class PluginBar extends Generic_PluginBar { public function Hello() { parent::Hello(); echo '<br />O.o'; } } ?> А потом мы создали бы объект родительского класса (не обращаясь к последнему потомку), вызвали метод Hello() и тот сказал бы нам: Dudes? Hello! O.o Ниже лаконичный вариант того как описанного поведения добился ort в своём LiveStreet, а затем уже и я в своём собственном велосипеде. Читать дальше →


Здравствуйте, уважаемые читатели! В своей статье я хочу произвести анализ компаний, предоставляющих услуги ?облачного? хостинга на территории РФ. Анализ проводится с точки зрения среднестатистического пользователя, перед которым встала задача приобретения хостинга в облаке. Основные критерии по которым будет производиться анализ ? поддержка, стоимость, гибкость(как один из основных критериев), прозрачность ценовой политики т.д. Читать дальше →



Устройства от Silicon Laboratories не пользуются широкой популярностью в любительских кругах, им далеко до таких флагманов, как Atmel. Однако у них есть и вполне доступные простому смертному микроконтроллеры основных линеек в корпусе TQFP, и стартовые комплекты USB ToolStick (о чем совсем недавно упоминалось на хабре). Я сам начал свое знакомство с микропроцессорной техникой, работая с ?силабсами?, и вполне успешно. В данной статье я расскажу, каким образом можно организовать связь компьютера с МК, используя USB-интерфейс, и как Silabs попытались сделать это простым для разработчика. В качестве испытуемого будем использовать плату С8051F320DK, с микроконтроллером соответственно F32x серии, поддерживающей USB аппаратно, и Keil'овскую среду разработки uVision4. Читать дальше →


Недавно пробегала тема про существующие открытые продукты в области учетных систем (CRM, ERP, автоматизация бух. учета и прочее). Не участвовал в дискуссии, которая местами была жаркой, но разные мысли в голове крутились. В итоге всех размышлений родился этот топик. Чтоб не утруждать читателей ходом размышлений вынесу до ката их резюме: Дайте нам(разработчикам систем учета) удобный инструмент (платформу, framework) ? и открытые учетные системы (в т.ч. и системы автоматизации российского бух. учета) появятся! Тема и рассуждения касаются систем автоматизации малого и среднего бизнеса. Корпорации-гиганты и их системы автоматизации (SAP и прочие) я не обсуждаю (это отдельная большая тема, с отдельными вопросами, подходами и проблемами) Читать дальше →


Обычно у меня не хватает времени для того, чтобы читать все новые статьи на сайтах, которые мне интересны. И, открывая Google Reader, я просматриваю пару последних записей RSS и просто нажимаю ?отметить все как прочитанные?. Не эффективно, правда? Поэтому я решил сделать для себя естественный фильтр популярности контента: количество залайкавших его человек (аудитория Facebook более релевантна моим интересам). Не думая долго я написал скрипт, который парсит RSS с сайта и сортирует статьи так, что самые популярные оказываются выше остальных. И эти 50 строк кода очень упростили мне жизнь ? теперь я только выбираю нужный мне сайт (адрес его RSS трансляции) и запускаю скрипт. Код и комментарии по реализации под катом. Читать дальше →


Вступление Приветствую всех. Люди любят читать. Но не все, и не всё. А то, что любят, не всегда можно найти в магазинах. А если и можно найти, то не всегда это по карману. Из этого следует один элементарный факт: что-то с этим надо делать. Конечно, можно читать с экрана монитора/ноутбука/телефона. Или распечатать и читать в разрозненных, пусть и упорядоченных, листочках. Кроме того (это более затратный вариант, но для любителя чтения он лучше), можно купить специализированную читалку на электронных чернилах. Да, она решает проблему, но? Спустя какое-то время начинаешь скучать по весу настоящей книги, по шелесту перелистывания бумажных страниц, и по кипе других подобных маловажных, но таких приятных сердцу мелочей. И из этой неприятности тоже есть свой выход. Просто-напросто надо самому сделать нужную книгу. Осторожно, под катом очень много фотографий. Читать дальше →


В мире железа есть понятие сертификации, которое говорит о том, что данное оборудование сертифицировано для выполнения конкретных задач, работы в конкретных условиях и т.д. Такое же понятие есть в мире ПО, например: операционная система сертифицирована для работа на конкретном оборудовании, или программа сертифицирована выполнять определенные расчеты. Это понятие говорит о том, что клиент (покупатель) может быть уверен в том, что продукт, который он покупает, выполнит его задачи на все 100%. Точно такое понятие сейчас применимо и к специалистам. Сертификация специалиста ? проверка его на наличие необходимых знаний, навыков и опыта для выполнения задач, связанных с технологией или продуктом, для которого он сертифицируется. В случае успешного прохождения сертификации специалист получает сертификат (бумажный или электронный) и, по идее, считается экспертом в данной технологии в рамках направленности и уровню сертификационного экзамена. В этой статье я хотел бы осветить процесс подготовки к сертификационному экзамену, основываясь на своем опыте сдачи сертификационных экзаменов IBM. Читать дальше →


Прочитав статью об алгоритмах поиска подстроки в строке, я обнаружил, что там не рассказывается об алгоритме Бойера-Мура. Пара слов о нём всё-таки там есть, а именно, говорится, что алгоритм Бойера-Мура заслужил себе звание ?алгоритма по умолчанию?, потому что он в среднем дает лучшее время поиска (с чем я полностью согласен). Под катом рассказано об упрощенной версии этого алгоритма. В принципе, большинство скорее всего изучало этот алгоритм на 1-м или 2-м курсе ВУЗа (как и я), поэтому они могут пропустить эту статью, ничего нового тут нет. Читать дальше →



Прошел почти год после публикации первой вводной статьи о TalkPad. В процессе эксплуатации и развития сервиса мы столкнулись со многими технологическими проблемами, часть из которых успешно преодолели. Сегодня мы хотим рассказать вам о том, как устроена серверная сторона TalkPad. Напомню что TalkPad ? это сервис, который предоставляет возможность позвонить на городские и мобильные телефоны прямо из браузера, установив плагин. Итак, как же все-таки может быть устроен бэкенд высоконагруженного сервиса телефонии? Читать дальше →


От переводчика: данный перевод продолжает цикл публикаций по управлению Open Source проектами, начатый здесь. Модель управления описывает роли, которые могут занимать участники проекта, а также процесс принятия решений внутри проекта. Кроме того, она описывает основы правил участия в проекте и процесс общения и обмена информацией между членами команды проекта и сообществом. Другими словами, именно модель управления предохраняет проект от скатывания в хаос. Этот документ объясняет, почему необходима модель управления, даёт некоторые рекомендации по решению проблем, возникающих при принятии проектом модели управления и описывает ключевые области, которые должны быть в модели. Также здесь вы найдёте описание процесса включения вашей модели управления в управляющую документацию. Читать дальше →


У начинающих cisco-водов много вопросов вызывают различные варианты линеек IOS их отличия и функционал. Дополнительную сумятицу внесло появление новых маршрутизаторов ISR G2 и новой линейки IOS версии 15. Попробуем разобраться на пальцах. Будем обсуждать IOS для самых распространенных маршрутизаторов ? Integrated Services Router (ISR) первой и второй ?волны? (G1 и G2). Я не буду вдаваться совсем уж в историю и начну с IOS 12 версии. Более ранние, конечно, бывают, но встречаются сейчас крайне редко. Мало того, даже для самого древнего железа уже как правило хотя бы 12.0 версия есть. Начиная с этой линейки у cisco появилось понятие ?стабильный? или ?основной? образ (main deployment, MD), ?ранние версии? (early deployment, ED), всякие экспериментальные версии (обычно содержат несколько новых фич) и целая ?продвинутая? технологическая линейка (обозначается буквой Т в названии IOS). Общая идеология такая: все, что обкатали в экспериментальных и технологических линейках предыдущих версий, появляется как основная фича в следующей версии основной линейки. Например, то, что было в 12.3Т и прошло успешные испытания, зафиксировано в 12.4 MD. Понятно, что возможностей у Т-линейки больше, функционал менее оттестирован и статистически менее надежен. Читать дальше →


Сетевые видеокамеры постепенно вытесняют аналоговые, хоть и стоят они сейчас гораздо дороже. Сетевые обладают рядом очевидных приемуществ: нет необходимости в отдельном регистраторе или плате захвата; помехоустойчивость; простая интеграция в существующую сеть; нет ограничения по расстоянию; наличие камер выского разрешения; просмотр камеры прямо с самой камеры по http; наличие всевозможных настроек; и др. Нас интересует способ получения изображений с таких камер, для этого надо знать а как вообще они их передают? На наше счастье камеры используют существующие стандарты, а не то, что взбредёт в голову китайскому разработчику. Подавляющее большинство камер используют один или несколько способов передачи видео, это в основном Motion JPEG по HTTP, Motion JPEG по RTSP или H264 по RTSP. Также многие камеры могут передавать звук, но он нас не интересует сейчас. В этой статье я рассмотрю эти способы передачи изображений с сетевых камер, а также приведу пример захвата таких изображений всё на том же Python'е. Читать дальше →


Современная сеть воспитывает в нас свободу слова, а точнее, возможность свободно сказать что ты хочешь, не неся за это ответ. Принято считать, что найти сетевого человека в реале проблематично, тем более он принял меры для своей анонимности, и что только спец. службы по IP могут определить ФИО и паспортные данные ;) Все мы бывали в ситуациях, либо наблюдали их, либо хотя бы слышали, как кто-то кого-то в сети шлёт на 3 буквы, в ответ ему обещают вычислить IP и найти его, переломать ноги итп )) Один мой друг, владелец сети интернет-магазинов, стабильно развлекается поиском своих клиентов во вконтакте итп. Торгует он крупногабаритными, дорогими штуковинами. И знать своих клиентов ?в лицо? для него не только развлечение, но и способ более гибко подойти к клиенту. Недавно подключился к одному медийному проекту, в роли сетевого аналитика и тут же получил задание, найти создателя и ведущего проекта putinvzrivaetdoma.org. Ушло совсем немного времени, чтобы идентифицировать человека. Давайте попробуем разобрать несколько конкретных примеров и попробуем поразмышлять на тему анонимности в сети. Читать дальше →


Введение Добрый день. Не нашел простого и внятного описания данного алгоритма на русском языке. Решил восполнить сей пробел. Прежде всего что это такое? LR(0)-анализатор в первую очередь это синтаксический анализатор. Цель синтаксического анализатора обработать входной поток лексем(базовые элементы языка, которые производит лексический анализатор на основе входного потока символов, примеры лексем ? число, запятая, символ) и сопоставить его с описанием языка заданного в определенном формате. Сопоставление заключается в построении определенной структуры данных, чаще всего ? дерева. Дальше эта структура пойдет на следующий этап ? семантический анализ, где уже компилятор пытается понять смысл, заключенный в дереве. Существует 2 класса синтаксических анализаторов ? восходящие анализаторы и нисходящие. Первые строят дерево начиная с листьев, которые являются входными лексемами, вторые соответственно наоборот начинают с корня дерева. Собственно LR и значит то, что анализатор будет читать поток слева направо (L ? 'Left') и строить дерево снизу вверх (пусть не смущает буква R, которая значит Right, объяснения даны чуть ниже). Индекс 0 обозначает то что мы не предпросматриваем следующие лексемы, а работаем только с текущей. Какие же плюсы даёт нам выбор этого типа анализаторов? Он быстр. Покрывает множество языков. То есть если вы придумали язык и описали его, то с большой долей вероятности LR-анализатор его сможет обработать. Синтаксические ошибки обнаруживаются так быстро как это возможно. Сразу же как встречается символ, который не соответствует предыдущему входному потоку, мы можем вывести ошибку об этом. Есть и недостатки: Относительная сложность построения. Можно вогнать анализатор в ступор неоднозначностью описания языка. Читать дальше →




Отписаться от этой рассылки

Комментариев нет:

Отправить комментарий