Pull to refresh
1
0
Евгений Болдырев @boldyrev_gene

User

Send message

Как я интегрировал WebSockets в существующую систему на PHP

Reading time5 min
Views24K
Статья будет о том, как нехарактерная для PHP вещь вроде веб-сокетов может быть интегрирована в существую систему на примере CleverStyle CMS, и какие нюансы при этом могут возникнуть.

Библиотеки


Написать сервер и клиент для веб-сокетов весьма сложно, к счастью есть практически безальтернативная библиотека Ratchet, которая предоставляет сервер для веб-сокетов. Под капотом она использует несколько частей ReactPHP и Guzzle (зависит так же от Symfony компонентов, но в данном случае они оказались совершенно лишними). Так же будем использовать Pawl от автора Ratchet, это клиент для веб-сокетов.
Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments17

Обзор типов индексов Oracle, MySQL, PostgreSQL, MS SQL

Reading time6 min
Views195K
В одном из комментариев здесь была просьба рассказать подробнее об индексах, и так как, в рунете практически нет сводных данных о поддерживаемых индексах различных СУБД, в данном обзоре я рассмотрю, какие типы индексов поддерживаются в наиболее популярных СУБД
Взглянем?
Total votes 99: ↑96 and ↓3+93
Comments41

Gearman — сервер очередей: использование в проектах на PHP

Reading time9 min
Views81K
Не так давно была замечательная статья, описывающая общие принципы работы с сервером очередей Gearman. Мне бы хотелось продолжить материал, дополнив его некоторыми деталями практического применения, а именно:
— установка и управление сервером
— управление очередью — что возможно и как
— PECL и PEAR php-расширения для работы с Gearman
— мониторинг сервера
— примеры кода
— передача данных порциями
— организация параллельных вычислений в PHP

Интересно? Прошу под кат
Читать дальше →
Total votes 72: ↑66 and ↓6+60
Comments51

Coroutines в PHP и работа с неблокирующими функциями

Reading time18 min
Views79K
Одним из самых больших нововведений в PHP 5.5 будет поддержка генераторов и корутин (сопрограмм). Генераторы уже достаточно были освещены в документации и в нескольких других постах (например в этом или в этом). Сопрограммы же получили очень мало внимания. Это гораздо более мощный, но и более сложный для понимания и объяснения, инструмент.

В этой статье я покажу как реализовать планировщик задач с использованием корутин, чтобы вы поняли, что с ними можно делать и как их применять. Начнем с нескольких вступительных слов. Если вы считаете, что вы уже достаточно хорошо знаете как работают генераторы и корутины, тогда можете сразу перейти к разделу «Совместная многозадачность».

Генераторы


Суть генератора в том, что это функция, которая возвращает не просто одно значение, а последовательность значений, где каждое значение выброшено одно за другим. Или, другими словами, генераторы позволяют вам реализовать итератор, без лишнего кода.
Читать дальше →
Total votes 111: ↑103 and ↓8+95
Comments57

Работаем асинхронно в PHP или история ещё одного чата

Reading time8 min
Views37K
Меня очень радует, как бурно развивается PHP последние несколько лет. Наверное и вас тоже. Появляются постоянно новые возможности, удерживающие энтузиастов оставаться на данной платформе. Чего только стоит недавняя новость о релизе Hack.

Наверняка кто-то прочитав даже заголовок этой статьи ухмыльнется и подумает: «Мсье знает толк в извращениях!». Споры о крутости того или иного языка никогда не утихают, но как бы там ни было, лично я для себя вижу не так уж и много условий смены языка, поскольку люблю выжимать все возможности, прежде чем радикально сменить весь стек. Недавно была публикация о создании чата на Tornado и мне захотелось рассказать о том, как похожую задачу я решал при помощи PHP.

Предыстория

В один прекрасный день решил я познакомиться с WebSockets. Меня заинтриговала технология, хотя не сказать бы, что она появилась только вчера, и это совпало с запуском одного чат-сервиса соционической тематики, который страдал массой недостатков. Это придало мне азарт принять участие в конкурентной гонке. Использование веб-сокетов выглядело принципиально новым и многообещающим решением.
Читать дальше →
Total votes 45: ↑32 and ↓13+19
Comments19

Легкий способ начать тестировать

Reading time4 min
Views50K
Если вы PHP-разработчик, и по разным обстоятельствам тесты для своих приложений не пишете, то эта статья для вас. В ней я постараюсь вкратце показать с чего начать и что делать, чтобы написание тестов приносило вам радость, а вашему приложению стабильность.

Итак, первый совет. Забудьте всё что вы знаете о юнит-тестах. Швырните табуреткой в человека, который сказал вам, что без них не обойтись. Попробуем разобраться, в каких случаях нужно их использовать, а в каких — нецелесообразно.
Читать дальше →
Total votes 83: ↑61 and ↓22+39
Comments54

Инженеру спасло жизнь устройство, которое он же сам и разработал

Reading time3 min
Views44K
image

Брайан – новичок в компьютерах. Он без посторонней помощи и включить-то компьютер не может. Зато он любит играть в баскетбол. На одной из игр его команда проигрывала два очка, игра подходила к концу, и они никак не могли отыграться. Один из его игроков мог хорошо попадать в кольцо, но больше ничего толком делать не умел. После удачного броска он встал на месте, хотя Брайан орал ему, чтобы тот бежал обратно в защиту. Но вместо этого игрок вдруг упал лицом вниз. У него случился сердечный приступ.
Читать дальше →
Total votes 119: ↑114 and ↓5+109
Comments13

Unit-тестирование от начинающего начинающим

Reading time5 min
Views78K
Здравствуйте.

На написание статьи меня сподвигнул этот пост. В нём приведено описание инструментов и некоторая теоретическая информация.

Сам я только начинаю разбираться в unit-тестировании и тестировании вообще, поэтому решил поделиться некоторой информацией касательно этого дела. А также систематизировать свои знания и навыки. Далее постараюсь объяснить процесс тестирования по шагам простым обывательским языком, так как нигде в интернете не нашёл разжёванного описания, по шагам так сказать. Кому интересно и кто хочет попробовать всё-таки разобраться, добро пожаловать.
Читать дальше →
Total votes 47: ↑40 and ↓7+33
Comments46

На что влияет сопротивление наушников

Reading time9 min
Views386K
image

После интервью наибольшее количество вопросов было связано характеристикой сопротивления наушников. Рассмотрим, на что влияет характеристика и с чем ее едят. Для лучшего усвоения материала мы будем последовательно выпускать материалы, собирать вопросы и комментарии и двигаться дальше.
Читать дальше →
Total votes 65: ↑64 and ↓1+63
Comments61

LEGO Mindstorms EV3. Игрушечный скайнет. Начало

Reading time10 min
Views116K
— Ты кого хотел бы — сына или дочку?
— Сына!
— Почему?
— Вертолёт хочу радиоуправляемый!!!
Несмешной и баянистый анекдот, но нельзя просто так взять и начать эту публикацию не с него – он в лучшем виде отображает суть того, о чём пойдёт речь далее. Впрочем, из заголовка вы и так поняли, о чём речь.



Осторожно! Публикация может вызвать непреодолимое желание завести сына.
Читать дальше →
Total votes 60: ↑59 and ↓1+58
Comments42

Ошибки PHP: классификация, примеры, обработка

Reading time6 min
Views68K
В статье представлена очередная попытка разобраться с ошибками, которые могут встретиться на вашем пути php-разработчика, их возможная классификация, примеры их возникновения, влияние ошибок на ответ клиенту, а также инструкции по написанию своего обработчика ошибок.
Читать дальше →
Total votes 53: ↑50 and ↓3+47
Comments75

Образовательные и обучающие ресурсы для веб-разработчиков и веб-дизайнеров

Reading time15 min
Views143K
Данным постом мы открываем рубрику «Переводы» в нашем блоге. Почему мы решили открыть такую рубрику? Дело в том, что сотни специалистов, работающих в Mail.Ru Group, для решения стоящих перед ними задач ежедневно прочитывают множество интересных статей и постов на форумах. Некоторые из них кажутся нам интересными, и мы считаем своим долгом перевести их на русский и поделиться этими ценными знаниями с Хабражителями.

Пользуясь случаем, хотим сообщить новость: сегодня состоялось открытие Технопарка — нашего образовательного проекта, о котором мы уже не раз писали на Хабре (например, тут, тут и тут). Теперь у технопарковцев есть свое собственное помещение. Изначально Технопарк задуман как место, где талантливые студенты МГТУ им. Баумана могут получить дополнительное образование в сфере веб-разработки, дизайна и программирования, а также окунуться в работу над реальными проектами высокой сложности. В общем, у Технопарка сегодня знаменательный день, и поэтому первый выпуск в рубрике «Переводы» мы решили посвятить образовательным ресурсам для веб-разработчиков и веб-дизайнеров. Ведь пока такие Технопарки не распространились по всей стране, разработчикам зачастую приходится заниматься исключительно самообразованием.

Читать дальше →
Total votes 91: ↑83 and ↓8+75
Comments18

Логика мышления. Часть 8. Выделение факторов в волновых сетях

Reading time11 min
Views39K


В предыдущих частях мы описали модель нейронной сети, которую назвали волновой. Наша модель существенно отличается от традиционных волновых моделей. Обычно исходят из того, что каждому нейрону свойственны собственные осцилляции. Совместная работа таких склонных к систематической пульсации нейронов, приводит в классических моделях к определенной общей синхронизации и появлению глобальных ритмов. Мы вкладываем в волновую активность коры совсем другой смысл. Мы показали, что нейроны способны фиксировать информацию не только за счет изменения чувствительности своих синапсов, но и благодаря изменениям в мембранных рецепторах, расположенных вне синапсов. В результате этого нейрон приобретает способность реагировать на большой набор определенных паттернов активности окружающих его нейронов. Мы показали, что срабатывание нескольких нейронов, образующих определенный узор, обязательно запускает волну, распространяющуюся по коре. Такая волна это не просто возмущение, передающееся от нейрона к нейрону, а сигнал создающий по мере продвижения определенный узор активности нейронов, уникальный для каждого излучившего его паттерна. Это означает, что в любом месте коры по тому узору, что принесла с собой волна, можно определить какие паттерны на коре пришли в активность. Мы показали, что через небольшие пучки волокон волновые сигналы могут проецироваться на другие зоны коры. Сейчас мы поговорим о том как может происходить синаптическое обучение нейронов в наших волновых сетях.
Читать дальше →
Total votes 30: ↑23 and ↓7+16
Comments9

Логика мышления. Часть 6. Система проекций

Reading time9 min
Views62K


Для тех, кто только присоединился, я советую начать с первой части или хотя бы с описания используемой нами волновой модели коры. Суть волновой модели в том, что информация кодируется одновременно двумя способами. Первый способ – это паттерны вызванной активности, соответствующие обнаруженным нейронами-детекторами явлениям. Второй – волны идентификаторы, распространяющиеся от паттернов вызванной активности и несущие уникальные узоры. Уникальность узора каждой из волн позволяет на удалении от источника сигнала узнать о его активности. При таком подходе хорошо объясняется сформулированное Мак-Каллоком и Питсом несоответствие между объемом зон коры и количеством волокон в пучках, проецирующих информацию от них на другие зоны.
Читать дальше →
Total votes 53: ↑45 and ↓8+37
Comments21

Логика мышления. Часть 5. Волны мозга

Reading time15 min
Views77K


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

В предыдущей части мы говорили о том, что активность нейронов делится на вызванную и фоновую. Отголоски фоновой активности наблюдают, снимая электроэнцефалограмму. Записываемые сигналы имеют сложную форму и зависят от места приложения электродов к голове, но, тем не менее, в них достаточно четко прослеживаются отдельные гармонические составляющие.
Читать дальше →
Total votes 40: ↑36 and ↓4+32
Comments67

Логика мышления. Часть 4. Фоновая активность

Reading time8 min
Views85K


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

Вернемся к описанию работы реальных нейронов. Сигналы от одних нейронов через их аксоны поступают на входы других нейронов. В химических синапсах происходит выброс медиатора, который в зависимости от типа синапса оказывает либо активирующее, либо тормозящее воздействие на принимающий сигнал нейрон. Чувствительностью синапса, которая может меняться, определяется вклад этого синапса в общее возбуждение. Если суммарное воздействие превышает определенный порог, то происходит деполяризация мембраны и нейрон генерирует спайк. Спайк – это одиночный импульс, продолжительность и амплитуда которого не зависит от того, какая синаптическая активность его породила.
Читать дальше →
Total votes 42: ↑37 and ↓5+32
Comments37

Железо на службе у алгоритма (продолжение)

Reading time29 min
Views80K
Борис Бабаян о прошлом, настоящем и будущем вычислительной техники


Борис Бабаян


Почти три месяца прошло с момента публикации первой части этой работы. Всё это время вызревала вторая часть и… наконец, созрела!

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

Поехали!
Total votes 91: ↑84 and ↓7+77
Comments50

Железо на службе у алгоритма

Reading time14 min
Views198K
Борис Бабаян о прошлом, настоящем и будущем вычислительной техники

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

Мне удалось побеседовать на эту тему с Борисом Арташесовичем Бабаяном, директором по архитектуре компании «Интел».

Борис Бабаян известен как главный архитектор компьютерных вычислительных систем «Эльбрус-1», «Эльбрус-2» и «Эльбрус-3». Некоторые из его идей использованы в архитектуре Transmeta. В настоящее время Борис возглавляет разработку новой микропроцессорной архитектуры в компании «Интел».

Чтобы совсем покончить с формальностями, перечислю звания, степени и должности Бориса: член-корреспондент РАН, доктор технических наук, профессор, заведующий кафедрой «Микропроцессорные технологии» МФТИ, Intel Fellow, лауреат Государственной и Ленинской премий.

Дальнейшее повествование построено от лица Бабаяна. Мои скупые комментарии оформлены в виде врезок либо ссылок на интернет-страницы.

Поехали!
Total votes 210: ↑200 and ↓10+190
Comments138

Логика мышления. Часть 3. Персептрон, сверточные сети

Reading time8 min
Views124K


В первой части мы описали свойства нейронов. Во второй говорили об основных свойствах, связанных с их обучением. Уже в следующей части мы перейдем к описанию того как работает реальный мозг. Но перед этим нам надо сделать последнее усилие и воспринять еще немного теории. Сейчас это скорее всего покажется не особо интересным. Пожалуй, я и сам бы заминусовал такой учебный пост. Но вся эта «азбука» сильно поможет нам разобраться в дальнейшем.

Персептрон


В машинном обучении разделяют два основных подхода: обучение с учителем и обучение без учителя. Описанные ранее методы выделения главных компонент – это обучение без учителя. Нейронная сеть не получает никаких пояснений к тому, что подается ей на вход. Она просто выделяет те статистические закономерности, что присутствуют во входном потоке данных. В отличие от этого обучение с учителем предполагает, что для части входных образов, называемых обучающей выборкой, нам известно, какой выходной результат мы хотим получить. Соответственно, задача – так настроить нейронную сеть, чтобы уловить закономерности, которые связывают входные и выходные данные.
Читать дальше →
Total votes 62: ↑54 and ↓8+46
Comments20

Information

Rating
Does not participate
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity