Pull to refresh
0
0
Виталий @Tamotokushi

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

Send message

Regexp — это «язык программирования». Основы

Reading time4 min
Views26K
Несколько лет назад я думал, что regexp осуществляет линейный поиск по тексту, но какое моё удивление было, когда я понял, что это не так. Тогда я убедился на собственном опыте, что от простой смены местами а и b в схеме (...a...)|(...b...) поменялся полностью результат.

Поэтому сейчас я расскажу, как на самом деле работает regexp.
Поняв эти простые принципы и как оно работает, вы сможете писать любые запросы.
Для примера, я разберу сложную при первом приближении, но на самом деле простейшую задачу – выявление всех строк в кавычках.
Читать дальше →
Total votes 114: ↑101 and ↓13+88
Comments35

8 полезных регэкспов с наглядным разбором

Reading time2 min
Views273K
О мощи и гибкости регулярных выражений написано много, и их использование давно уже является стандартом для различного рода операций над текстом. Пожалуй, чаще всего регэкспы работают при валидации вводимых данных — здесь им практически нет альтернативы, если не считать громоздкий циклический разбор с кучей неочевидных проверок. Начнём с самого простого:

1. Часть ЧПУ (человекопонятный URL)


По сути, слово с дефисами.

Паттерн: /^[a-z0-9-]+$/
short_url

Примеры посерьёзнее
Total votes 176: ↑132 and ↓44+88
Comments119

re2c — компилятор регулярных выражений

Reading time3 min
Views8.3K
Задача выделения из потока символов определенных лексем является весьма распространенной. Часто ее решают с помощью лексических анализаторов, конфигурируемых регулярными выражениями. Многие анализаторы построены по принципу генерации программного кода, который в свою очередь реализует логику регулярных выражений. Фактически, это компиляция языка регулярных выражений в код языка программирования.

Например, flex — это один из таких анализаторов. Старый, но проверенный годами.

Я много пользовался flex'ом, он имеет и плохие и хорошие стороны, но по большому счету, жаловаться не приходилось.

Но вчера наткнулся на интересный проект — re2c. По сути, на этой штуке можно писать лексические анализаторы прямо на коленке за несколько минут.

Подробности
Total votes 39: ↑37 and ↓2+35
Comments18

Regexponline – интерактивный анализатор и редактор регулярных выражений

Reading time4 min
Views53K
Есть одна бородатая шутка: «если у вас есть проблема, и вы собираетесь решать ее с использованием регулярных выражений, то у вас есть две проблемы». Действительно, регулярные выражения – очень мощный и гибкий инструмент, применяемый для решения весьма широкого круга задач. Но, как водится, для поддержания баланса, такой серьёзный инструмент имеет весьма недружелюбный вид.

(<([a-z]+[^>]*)>)(.*)(</\2>)

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

image

Когда-то и мне пришлось по долгу службы подружиться с регулярными выражениями. Прочитав Фридла и несколько статей на Хабре, я, конечно, начал понимать этот синтетический язык. Тем не менее, каждый раз, когда приходилось написать очередную регулярку, я быстро закапывался в нагромождении скобок, слешей, точек, плюсов, знаков вопроса, и других хорошо вам знакомых конструкциях. Разобраться в этой каше было очень сложно, особенно если возвращаешься к задаче месячной давности. Я мечтал об инструменте, который помог бы мне разобраться в собственном творении. Приблизительно подходящих по смыслу сервисов нагуглилось с десяток, но все они приносили мало пользы. Как раз тогда я и начал разрабатывать этот проект.

Итак, regexponline – инструмент, способный наглядно изобразить структуру регулярного выражения, разобрав его по элементарным компонентам; продемонстрировать совпадающие и не совпадающие его части; помочь в написании и отладке выражения, которое почему-то не совпадает с нужной строчкой.
Читать дальше →
Total votes 84: ↑81 and ↓3+78
Comments74

Разбор регулярных выражений

Reading time1 min
Views101K


Хочу просто поделиться недавно найденным сервисом для работы с регулярными выражениями. Да, это еще один сервис. Но у него есть особенность — он позволяет не только составлять регулярные выражения, но и помогает разбирать уже написанные — эдакий regexp-декомпилятор.
Сервис называется Regex101.

Читать дальше →
Total votes 99: ↑94 and ↓5+89
Comments53

Из аналога в цифру, или IP-камера своими руками

Reading time3 min
Views165K
Начну историю с того, что была у меня аналоговая купольная камера из поднебесной. Она была куплена по распродаже, стоила в районе 20 баксов, поработала пару недель и тихо скончалась. Нет, она не умерла совсем, а только видео с нее стало очень темным и непригодным для записи. Поэтому камера была заброшена в дальний угол до лучших времен.

Недавно, блуждая по всем известному сайту Aliexpress, наткнулся на модуль для IP-камеры, который предлагался как набор «сделай сам», в магазине продавца были еще разные запчасти для камер. По размеру модуль подходил на место аналогового (38х38), было решено заказать его и попробовать собрать IP-камеру из вышедшей из строя аналоговой. Модуль обошелся в смешные 11 долларов, доехал до меня очень быстро, за пару недель.
Что было дальше
Total votes 36: ↑34 and ↓2+32
Comments13

Голосовое управление Arduino средствами Processing и Google Speech API

Reading time5 min
Views70K

Идея:


Пришла как-то идея сделать голосовое управление Arduino, но одного Arduino мало, т.к. для системы умного дома нужно еще и общение с компьютером и его системами.
Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments13

MEIZU MX4: смартфон для игр и фото! Старт предзаказов

Reading time3 min
Views40K
MEIZU RUSSIA объявили цену на MEIZU MX4 в России и начинает сбор предзаказов с приятными бонусами первым покупателям!

2 сентября компания MEIZU официально представила в Пекине долгожданную новинку 2014 года, смартфон MEIZU MX4!

Читать дальше →
Total votes 36: ↑17 and ↓19-2
Comments23

Как мы делали студию для записи онлайн-курсов

Reading time6 min
Views32K
Если вкратце, то Stepic – это платформа, где каждый пользователь может создать и разместить свой собственный онлайн-курс. В прошлом году Стэпик использовался в курсе Bioinformatics Algorithms на Coursera как движок для проверки задач на программирование и анализ данных.

Через какое-то время мы поняли, что стоит посодействовать развитию онлайн-образования и в России. Что для этого надо? Хорошие преподаватели и хорошая студия, где можно записывать видео. Поскольку мы любим программировать, то и начать решили с курсов, так или иначе связанных с программированием, это алгоритмы и структуры данных, операционные системы и язык С++ от преподавателей Computer Science Center.

А еще через какое-то время мы поняли, что чем больше будет хороших студий для записи, тем лучше же для всех нас и образования в целом. Поэтому мы решили рассказать, показать и выложить в опенсорс все те небольшие наработки, которые на данный момент есть в Stepic по части видео-курсов и их производству.
Читать дальше о том, как мы оборудовали офис под студию для автоматической записи онлайн-курсов
Total votes 38: ↑38 and ↓0+38
Comments33

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

Reading time7 min
Views115K
image


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

Что мы имеем?


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

Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments31

Как сделать nandroid backup устройства непосредственно на компьютер, минуя sdcard

Reading time7 min
Views92K
Здравствуй, Хабрахабр.

Так случилось, что мне понадобилось создать полную копию Android устройства, в котором полностью отсутствовали обычно используемые для этого средства. Поиски меня привели на форум XDA, где и была найдена данная всеобъемлющая инструкция, которая пришлась как нельзя кстати и которой я решил поделиться с вами.
В статье имеются мои комментарии, так как применял эту инструкцию для создания backup'a планшета Teclast x98 3g.
Более подробно под катом
Total votes 19: ↑18 and ↓1+17
Comments20

Обзор Zenfone 4

Reading time7 min
Views120K
Сегодня мы продолжаем знакомить вас с новой линейкой смартфонов под названием Zenfone. В этот раз героем сегодняшнего обзора является Zenfone 4 — самый младший представитель серии. Как явствует из названия, перед нами Zenfone с диагональю экрана в 4 дюйма, при этом рекомендуемая цена устройства 4 тыс. рублей. Сложно выделиться среди бюджетных устройств, но не стоит обходить этот смартфон стороной, у ASUS нашлась пара козырей в рукаве, о которых я расскажу в этом обзоре.

Читать дальше →
Total votes 24: ↑17 and ↓7+10
Comments38

30 полезных сервисов для веб-разработчиков и дизайнеров v2

Reading time3 min
Views86K
Предыстория: я веду свой паблик ВК о веб-разработке, в связи с чем я каждый день имею дело с большим количеством материалов о веб-разработке. Однажды (3 месяца назад) мне пришла в голову идея опубликовать на хабре подборку «30 полезных сервисов для веб-разработчика». Тот пост набрал почти 100 000 просмотров, и мне приятно, что он оказался полезен сообществу. С тех пор у меня поднакопилось больше 30 новых сервисов, которые будут полезны как разработчикам, так и дизайнерам. Лучшие из них я собрал в этом посте. Осторожно, под катом много картинок!
Читать дальше →
Total votes 67: ↑63 and ↓4+59
Comments19

InFocus M512 — бюджетный аппарат на Snapdragon 400 и с поддержкой 4G-сетей

Reading time9 min
Views8.7K
LTE стремительно распространяется по всей территории РФ, «подсаживая» все больше и больше людей на быстрый серфинг в недрах всемирной паутины. И хотя я лично не разделяю столь воодушевленных воплей вокруг 4G — другие люди готовы тратить деньги и менять свои некогда отличные смартфоны на новые, но уже с поддержкой сетей четвертого поколения. Проблема в том, что далеко не все производители стремятся выпускать такие аппараты. В бюджетном сегменте все вообще печально, выбор аппаратов с LTE до 10000 рублей достаточно невелик, а если внести критерий актуальности ОС, то и подавно. И тут в тред вписываются китайцы, хотя как китайцы, несмотря на то, что герой нашего сегодняшнего обзора произведен в Поднебесной, сама компания-производитель родом из США.

Читать дальше →
Total votes 25: ↑11 and ↓14-3
Comments5

Экшн-камера SJ4000 на процессоре Novatek NT96650

Reading time4 min
Views8.9K
Не так давно на рынке появилась интересная, на мой взгляд, экшн-камера под названием SJ4000, которая внешне копирует знаменитые камеры от GoPro. Понятно, что эту модель некорректно сравнивать с GoPro по качеству материалов и железа, так как разница в цене пятикратная. Соответственно и качество другое. Но все таки интересно посмотреть, что хорошего подсмотрели производители SJ4000 у известного бренда. К тому же, комплект аксессуаров для этой камеры очень богатый и частично совместимый с GoPro. Чтобы максимально объективно показать весь потенциал этой модели, сделал побольше разнообразных съемок в разное время суток. Но обо всем по порядку.

Читать дальше →
Total votes 22: ↑8 and ↓14-6
Comments15

Приставка к роутеру (USB HUB + USB HDD + UPS)

Reading time4 min
Views138K

После приобретения достаточно мощного роутера с портами USB (это был ASUS RT-N16), задался вопросом — как использовать роутер по полной?
Что мне было нужно:
  • сетевое хранилище,
  • торрент-качалка,
  • и конечно, чтобы всё это не падало при бросках/перебоях в сети электропитания.

Читать дальше →
Total votes 57: ↑52 and ↓5+47
Comments56

Приручаем бюджетную IP камеру DCS-930-L

Reading time3 min
Views76K
Это был тихий летний денек в славном городе Екатеринбург. Если можно считать погоду в этом городе действительно летней. Но не будем о грустном.
Перебирая старый хлам, наткнулся на когда-то давным давно подаренную мне камеру от одного всем знакомого производителя.

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

И вот, выдались очередные свободные выходные для того чтобы испытать свежий RC Barrier Breaker. И… получилось! Не без хитростей, но удалось все настроить и камера успешно отрабатывает задачу удаленного наблюдения за котом.

Заинтересовало?
Добро пожаловать под кат за подробными инструкциями.
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments39

Восстановление данных с флешек монолит

Reading time2 min
Views137K
Флешки к нам в лабораторию на восстановление данных приносят почти ежедневно. Однако, за последние годы, всё чаще и чаще начали приносить миниатюрные, при разборе которых выясняется особенный конструктив изготовления — Monolith.

image

В кругу ремонтников мы прозвали такое исполнение корпуса «монолит». Из-за того, что микросхема контроллера и микросхема памяти NAND выполненны в «одном флаконе».

Читать дальше →
Total votes 197: ↑193 and ↓4+189
Comments109

Автогенерация powershell-скриптов

Reading time4 min
Views24K
Все рано или поздно приходят к желанию переложить занудную и однообразную работу на «плечи» компьютера. Например, ко мне это чувство пришло, когда я начал внедрять Active Directory в организации на 100+ сотрудников. Добавлять и заполнять все поля для большого числа пользователей вручную — ужасно нудное и долгое занятие. Конечно, первым делом я обратился к powershell, но процесс написание скрипта как-то уж слишком затянулся и в конечном счете ничего путного не вышло. Мечты иметь красивый и аккуратный каталог пользователей так и остались мечтами. Пока я не загорелся идеей автоматизации создания powershell-скриптов.
Что из этого получилось и приглашение на бета-тест
Total votes 24: ↑18 and ↓6+12
Comments18

Бюджетная многокамерная FullHD видеосъёмка концерта своими руками

Reading time15 min
Views49K
Прежде всего, конечно же, нужно сделать оговорку, что многокамерную съёмку нельзя в принципе сделать только своими руками, так как один человек физически не может одновременно работать сразу с пятью камерами. Так что, как минимум, видеооператороры нам всё-таки понадобятся. А в остальном, всё будет делаться своими руками с использованием подручных средств. И я постараюсь рассказать максимально подробно на конкретном примере о имеющихся нюансах (правда без указания конкретных денежных эквивалентов, так как это будет противоречить моим договорённостям с организатором мероприятия).
Читать дальше →
Total votes 63: ↑59 and ↓4+55
Comments23

Information

Rating
Does not participate
Location
Springfield, Missouri, США
Date of birth
Registered
Activity