Как стать автором
Обновить
-4
0
Xander Bass @XanderBass

Веб-разработчик

Отправить сообщение

Делаем вебсокеты на PHP с нуля

Время на прочтение 18 мин
Количество просмотров 304K
Некоторое время назад я выбирал библиотеку для работы с вебсокетами. На просторах интернета я натыкался на статьи по интеграции node.js с yii, а почти все статьи о вебсокетах на хабре ограничивались инструкциями к тому, как использовать phpdaemon.

Я изучал библиотеки phpdaemon и ratchet, они достаточно монструозны (причём используя ratchet для отправки сообщения конкретному пользователю рекомендовано дополнительно использовать wamp). Мне не совсем было понятно для чего использовать таких монстров, которые требуют установку других монстров. Почитав исходники этих, а также других библиотек, я разобрался как всё устроено и мне захотелось написать простой вебсокет-сервер на php самостоятельно. Это помогло мне закрепить изученный материал и наткнуться на некоторые подводные камни, о которых я не имел представления.

Так я решил написать необходимый для меня функционал с нуля.

Получившийся код и ссылка на демонстрационный чат в конце статьи.
Читать дальше →
Всего голосов 88: ↑76 и ↓12 +64
Комментарии 77

Создаем нейронную сеть на PHP

Время на прочтение 5 мин
Количество просмотров 11K

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

Читать далее
Всего голосов 21: ↑10 и ↓11 -1
Комментарии 6

Трудности маскирования текстового поля

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 8.5K

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

Хороший UI/UX помогает пользователю избежать большинства таких проблем. Инструментов контроля огромное количество, сегодня расскажу про один их них — создание маски для поля ввода силами Javascript.

Читать далее
Всего голосов 37: ↑37 и ↓0 +37
Комментарии 23

JavaScript. Работа с буфером, Ctrl+C Ctrl+V

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 6.5K

Как копировать в буфер картинки. Какие типы данных можно класть в буфер. Поддержка кастомных типов. Как сделать свои кнопки копировать/вставить.

Читать далее
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 2

Быстрый поиск изоморфных подграфов

Уровень сложности Средний
Время на прочтение 16 мин
Количество просмотров 4.2K

Привет, Хабр!

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

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

Примеры кода написаны на C++, исходники всей библиотеки лежат здесь. Также написана копия библиотеки на Java, исходники лежат здесь.

Читать далее
Всего голосов 16: ↑14 и ↓2 +12
Комментарии 12

Туториал по основам Apache Kafka: установка и работа с кластером из одного брокера

Время на прочтение 14 мин
Количество просмотров 34K

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

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 3

FOAF for dummies

Время на прочтение 6 мин
Количество просмотров 5.2K
Вам довелось узнать что такое RDF.
Вам доводилось читать в моем блоге по каких-то страшных FOAF, SIOC, SKOS, DOAP...
Настало время узнать, что это такое, и зачем я рассказывал про RDF.

Начнем?

Читать дальше →
Всего голосов 31: ↑26 и ↓5 +21
Комментарии 9

Дозиметр судного дня

Время на прочтение 14 мин
Количество просмотров 21K

Хомяки приветствуют вас друзья! 

Сегодняшний пост будет посвящен одной из легендарных самоделок, дозиметр RAD BOY. Тут тебе и цветной экран, и возможность просмотра накопленной дозы за день, продолжительная автономность, в общем сливки в своем роде. В ходе поста рассмотрим как собрать такое устройство, самостоятельно запрограммировать и произвести примитивные манипуляции с настройкой высоковольтного трансформатора. Чтобы устройство выглядело подобающе, смоделируем и напечатаем корпус. В процессе повествования узнаем технические особенности, рассмотрим меню настроек, распилим счетчик Гейгера для изучения внутренностей и сравним показания самодельного прибора с профессиональным дозиметром Радиаскан-701.

Читать далее
Всего голосов 67: ↑62 и ↓5 +57
Комментарии 68

Гитарный fuzz на кремниевых транзисторах

Время на прочтение 7 мин
Количество просмотров 13K


Привет, Хабр! Гитаристы шутят, что на пути творческого развития каждого любителя гитары ожидают несколько неминуемых этапов. Когда узнаёшь, что кроме зелёного 0.88 мм существуют медиаторы всевозможных форм, размеров и материалов. Когда открываешь для себя существование стробоскопических тюнеров. Когда переходишь на ламповое усиление. Когда понимаешь, что тебе обязательно необходима гитара фирмы Гибсон (чаще всего, такое случается после первого опыта игры на настоящем Гибсоне).

Существует и признак старения гитариста — сначала периодически появляющееся, а впоследствии устойчивое желание приобрести педаль фуза.

Gibson Explorer, Fender EVH 5150 III и Peterson StroboClip HD у меня есть, медиаторы тоже, нет только фуза и денег на его приобретение. Потому я его спаяю. Тем более что это интереснее, чем покупать готовый. Не у всех гитаристов это получается, но электронщик отличается тем, что в его практике не получалось очень многое, а потом что-то начало получаться.
Изучим, послушаем, посмотрим осциллограммы
Всего голосов 63: ↑62 и ↓1 +61
Комментарии 16

Реализация простого механизма регулярных выражений в 70 строк кода

Время на прочтение 7 мин
Количество просмотров 6.5K

Эта короткая статья обязана одному интересному тестовому заданию, в котором требовалось реализовать базовый функционал утилиты grep на языке PHP, не используя никаких встроенных функций по работе с регулярными выражениями.

Строка с шаблоном должна была включать поддержку следующих метасимволов:

^ - начало строки

$ - конец строки

. - любой символ

* - 0 или более раз

? - 0 или 1 раз

+ - 1 или более раз

Так же нужно было поддерживать экранирование метасимволов при помощи '\', чтобы по ним возможно было производить поиск. В результате, получившаяся утилита занимает порядка ста строк кода, из которых 70 - это функции регулярных выражений. 

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

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 14

Компактный плоский генератор… Почему нет?

Время на прочтение 9 мин
Количество просмотров 28K
Источник

Без электричества невозможен современный мир в том виде, который мы знаем. При
этом для выработки электроэнергии используют генераторы различных конструкций. Правда каждый, кто сталкивался с этой темой, при слове «электрогенератор» представляет себе достаточно тяжёлое и объёмное устройство. Эффективная работа генератора неразрывно связана с совершением высокочастотной работы, но не всегда это обязательно, так как есть более интересная альтернатива…
Читать дальше →
Всего голосов 61: ↑59 и ↓2 +57
Комментарии 39

Как работает Git

Время на прочтение 19 мин
Количество просмотров 148K
В этом эссе описана схема работы Git. Предполагается, что вы знакомы с Git достаточно, чтобы использовать его для контроля версий своих проектов.

Эссе концентрируется на структуре графа, на которой основан Git, и на том, как свойства этого графа определяют поведение Git. Изучая основы, вы строите своё представление на достоверной информации, а не на гипотезах, полученных из экспериментов с API. Правильная модель позволит вам лучше понять, что сделал Git, что он делает и что он собирается сделать.

Текст разбит на серии команд, работающих с единым проектом. Иногда встречаются наблюдения по поводу структуры данных графа, лежащего в основе Git. Наблюдения иллюстрируют свойство графа и поведение, основанное на нём.

После прочтения для ещё более глубокого погружения можно обратиться к обильно комментируемому исходному коду моей реализации Git на JavaScript.
Читать дальше →
Всего голосов 110: ↑99 и ↓11 +88
Комментарии 38

Программирование&Музыка: понимаем и пишем VSTi синтезатор на C# WPF. Часть 1

Время на прочтение 26 мин
Количество просмотров 49K

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


Я планирую несколько статей, в которых будет пошагово рассказано, как написать свой VST плагин/инструмент: программирование осциллятора, частотного фильтра, различных эффектов и модуляции параметров. Упор будет сделан на практику, объяснение программисту простым языком, как же все это работает. Теорию (суровые выводы и доказательства) обойдем стороной (естественно, будут ссылки на статьи и книги).


Обычно плагины пишутся на C++ (кроссплатформенность, возможность эффективно реализовать алгоритмы), но я решил выбрать более подходящий для меня язык — C#; сфокусироваться на изучении самого синтезатора, алгоритмов, а не технических деталей программирования. Для создания красивого интерфейса я использовал WPF. Возможность использования архитектуры .NET дала возможность библиотека-обертка VST. NET.


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



Предстоит нелегкий путь, если вы готовы — добро пожаловать под кат.


Всего голосов 55: ↑54 и ↓1 +53
Комментарии 20

Почему некоторые ноты гармонично звучат вместе

Время на прочтение 4 мин
Количество просмотров 45K


Вы никогда не задумывались, почему некоторые ноты больше подходят друг другу, чем другие? Как связаны между собой частоты их волн? Почему ноты одной тональности звучат «хорошо»? Почему «хорошо» звучат ноты в составе аккорда?
Читать дальше →
Всего голосов 34: ↑33 и ↓1 +32
Комментарии 65

Получение ссылок на аудио без VKApi

Время на прочтение 3 мин
Количество просмотров 43K
Данная страница будет полезной для тех, кто решил взять заказ на парсер аудио-треков VK и резко понял, что ничего не понял.

В чем проблема


Знакомо?

https://m.vk.com/mp3/audio_api_unavailable.mp3?extra=AeL2rMfFyZzlD3HkyvfnvNvLx1KOqw5UDfuXCOTvttm4ts1OBJnYELvHyxvODI9fnM9YztD5A3iOyI14sxv2mNiXt3iTzdLInduXzvG9C2uVr3b5mezinfj2lJbpDhGYC25rDxbwsOPQmg1eu2Pbyxr3ntPowNLhDMrrDs8XnKu2sOuOyO8XzMf1otDmBtL6BNvllNjZx3aZuLHpq3aOBvvhzenJnZKTzKnMuwfKBI4TquffrtzKv2nymMyVDu1LzJnuwMLxwMm/BeTcserWlun3ExLVBG#AqSZntu

Если да — то вы пытались парсить мобильную версию сайта и успешно доставали ссылки. Неверные ссылки. Ссылки на 25-секундный голос, сообщающий что все идет не по плану.
Читать дальше →
Всего голосов 51: ↑49 и ↓2 +47
Комментарии 41

Написание собственной работоспособной ОС за полгода

Время на прочтение 4 мин
Количество просмотров 88K
image

Предыстория


Здравствуйте! Всех категорически приветствую, сегодня хотел бы рассказать Вам о своём опыте написание работоспособной ОС под архитектуру x86.

Как-то весенней ночью у меня родилась гениальная идея — попробовать себя в написании собственной ОС, которая может позволить запускать программы, работать с устройствами, да и в общем выжимать всю мощь из Intel'овской архитектуры в своих нуждах: к примеру, для своей фабрики или чего-либо иного. Моей целью было и есть написание такой ОС, которая могла бы позволить максимальную производительность для каких-то конкретных задач, не тратя процессорное время на всяческие излишества. В основном я преследую лишь спортивный интерес, получение опыта для себя в системном программировании и написания драйверов для устройств, которые используются повсеместно. Что из этого вышло — решать вам, сразу говорю, что не надо писать комментарии про создание собственного дистрибутива линукса, и преследовал интерес написать всё «From scratch» — с нуля, дабы хорошо погрузиться в тему ОСдева. Сразу хочу выразить огромную благодарность Бенджамину Лунту и форуму OSDev, так же как их Вики. Бен помог мне разобраться с EHCI, что несомненно внесло огромный вклад в мою ОС — USB устройства, они везде! Так же передо мной стояла задача создать собственную архитектуру, удобную мне, не исключая использование стандартов ELF-файлов.
Читать дальше →
Всего голосов 196: ↑187 и ↓9 +178
Комментарии 207

Разработка шахматной программы

Время на прочтение 10 мин
Количество просмотров 74K
Было ли вам когда-либо интересно написать свою шахматную программу? Настраивать и развивать её, проверять её на знакомых любителях шахмат и радоваться её победам. Но как написать такую программу? Об этом я и расскажу в этой статье.
Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Комментарии 26

Пишем свою ОС: Выпуск 1

Время на прочтение 6 мин
Количество просмотров 264K
Данный цикл статей посвящён низкоуровневому программированию, то есть архитектуре компьютера, устройству операционных систем, программированию на языке ассемблера и смежным областям. Пока что написанием занимаются два хабраюзера — iley и pehat. Для многих старшеклассников, студентов, да и профессиональных программистов эти темы оказываются весьма сложными при обучении. Существует много литературы и курсов, посвящённых низкоуровневому программированию, но по ним сложно составить полную и всеохватывающую картину. Сложно, прочитав одну-две книги по ассемблеру и операционным системам, хотя бы в общих чертах представить, как же на самом деле работает эта сложная система из железа, кремния и множества программ — компьютер.

Каждый решает проблему обучения по-своему. Кто-то читает много литературы, кто-то старается поскорее перейти к практике и разбираться по ходу дела, кто-то пытается объяснять друзьям всё, что сам изучает. А мы решили совместить эти подходы. Итак, в этом курсе статей мы будем шаг за шагом демонстрировать, как пишется простая операционная система. Статьи будут носить обзорный характер, то есть в них не будет исчерпывающих теоретических сведений, однако мы будем всегда стараться предоставить ссылки на хорошие теоретические материалы и ответить на все возникающие вопросы. Чёткого плана у нас нет, так что многие важные решения будут приниматься по ходу дела, с учётом ваших отзывов.
Читать дальше →
Всего голосов 293: ↑282 и ↓11 +271
Комментарии 223

Операционные системы с нуля; Уровень 0

Время на прочтение 11 мин
Количество просмотров 132K

Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий.


Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.


Тут есть про диски, файловые системы, операции ввода-вывода, потоки /процессы, планирование, виртуальную память, защиту и безопасность, прерывания, параллелизм и синхронизацию. Как и в любом другом, уважающем себя курсе. Разница в актуальности материала и в количестве практики. Коддить придётся много.

Читать дальше →
Всего голосов 80: ↑78 и ↓2 +76
Комментарии 55

30 легковесных JavaScript плагинов и библиотек

Время на прочтение 5 мин
Количество просмотров 107K
В это обзоре мы познакомимся с 30 бесплатными JavaScript плагинами и библиотеками, которые сфокусированы на определенных задачах. Это простые, полезные и легкие решения, которые помогут сделать процесс веб-дизайна и разработки гораздо проще и быстрее.

Как и следовало ожидать ниже вы найдете много плагинов для создания ползунков, галерей с изображениями, адаптивных меню, а также много других полезных плагинов и библиотек. Также в списке представлены плагины, которые предлагают действительно уникальные функциональные возможности. Давайте взглянем на список!
Читать дальше →
Всего голосов 66: ↑53 и ↓13 +40
Комментарии 16
1

Информация

В рейтинге
Не участвует
Откуда
Тольятти, Самарская обл., Россия
Дата рождения
Зарегистрирован
Активность