Изучающим регулярки рекомендуется

Привет всем, кто уже изучает, или ещё только пытается начать это увлекательное занятие — изучение регулярных выражений (Regexp).

Буду краток — самое важное, что вам нужно понять при изучении регулярных выражений — это то, что результат поиска регулярным выражением может быть нулевой длины. То есть, то, что находит регулярное выражение — это не обязательно кусочек текста. Это может быть еще и позиция!

А теперь к делу.

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

Первый в списке — RegexOne (Это интерактивный сайт — учебник. Понравился мне за то, что имеет очень хорошее соотношение учебного текста и интерактива). Он на английском — учите!

Читать далее

Реклама
Рубрика: Programming, Regex, Uncategorized | Метки: , , , | Оставить комментарий

EAV (Entity attribute value)

Введение

Одним из желаний разработчиков баз данных всегда было отсутствие внезапных изменений структуры базы. И, увы, оно несбыточно! Совсем без этих изменений не получается. То у клиента в клиентской базе появляется дополнительное поле статуса, то маркетологи посетят курсы повышения квалификации и начинают требовать поля для SWAT-анализа прямо в карточках заказчиков. То, вы внезапно узнаёте, что команда маркетологов вновь отправилась на курсы повышения квалификации, где они скорее всего узнают о воронке продаж и именно для неё потребуются дополнительные сущности, поля и таблицы.

Изменения в процессе жизни базы данных неизбежны.

И что же с этим делать?

Самое простое решение —  это расширять таблицы и плодить новые. Но по мере появления новых «хотелок» потихоньку начинает копиться и куча хлама из старых- ненужных. И хорошо, если эти старые не тянут за собой ограничения на целостность, внешние ключи и т.п. Так как кроме существенного замедления скорости разработки это создаёт огромную бесполезную нагрузку на стену 🙂 на которой висит распечатка структуры таблиц.

EAV

И вот именно в этот период любой разработчик баз данных начинает задумываться о EAV.

EAV — Entity Attribute Value. Список атрибутов сущности. Она же структура в стиле Property, она же Key-Value, она же INI файл. (Если вспомните ещё названий — пишите)

Читать далее

Рубрика: Programming, SQL | Метки: , , | Оставить комментарий

Чтение технической PDF литературы на E-reader

Введение

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

Решение

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

http://www.willus.com/k2pdfopt/ (Сайт выглядит как в 90х. Не пугайтесь!)

Ashampoo_Snap_2017.11.29_10h00m55s_001_

Обратите внимание

Справа выбираете свою книгу, ну или наиболее похожую.

В опциях мне оказалась очень полезной отметка «Erase horizontal lines» — удаляет длинные горизонтальные линии рядом с колонтитулами.

Результат

Страничка обрезана ровно под текст, ничего лишнего, читаемость максимальная! С картинками тоже всё отлично! (Спасибо создателям этой замечательной программы!)

Ashampoo_Snap_2017.11.29_10h05m37s_002_

Рубрика: Books, Книги, Usability | Метки: , , , | Оставить комментарий

Публикации на Geektimes

Мои публикации на GeekTimes:

SmartEnglish

Звукосторож

Алкотестер DrinkMate

Оконно-дверная GSM-сигнализация

Светум — автономный светильник с датчиком движения

Электронный мультитул Power-флешка

Офис Лаборатории Касперского в Новосибирске

Рубрика: Uncategorized | Оставить комментарий

Google translate usability и не только.

По работе мне часто приходится пользоваться онлайн-переводчиками. Причём чаще всего приходится пользоваться Google и Bing. Оба переводчика очень достойно справляются со своими обязанностями по переводу. Но в плане удобства использования (usability) есть к ним небольшие предложения по усовершенствованию.

Предложение первое и главное касается наиболее частого сценария в переводе. а именно смены направления перевода.

Google translate Usability

Написав текст, мы тут же видим его перевод (кстати, если перевод сразу же виден,  то зачем нужна кнопка «Перевести».). Теперь нам нужен обратный перевод. Например, мы хотим уточнить текст, так, чтобы он звучал как «Привет большой мир». Для этого приходится делать следующие шаги (Не шаг, а шаги и вообще надо чтото специально делать. А это сильно отвлекает непосредственно от перевода!).

Поменять языки места (там самая выделенная на рисунке кнопка). Потом скопировать текст перевода справа и вставить его в блок для исходного текста.

Предлагаю простое но очень эффективное решение для организации окна онлайн переводчика.

Решение: Два блока для ввода текста. Кнопку обмена языков удаляем. Пишем в левый блок — получаем результат в правом. Пишем в правый — получаем результат в левом! Профит! Никакой кнопки обмены языков. Никакой связанной с этим путаницы! Более того, если перевод ведётся с использованием более одного языка то просто их добавляем.

Кстати. Те, кто немного знаком с ТРИЗ и понятием о идеальном конечном результате, заметят что предлагаемое улучшение как раз и является классическим примером идеальной системы. А именно: кнопки «переключить язык туда обратно» не существует, но её функция успешно, и даже более чем успешно выполняется.

P.S. Если вдруг ребята из google, bing, promt или любой другой компании решат воплотить эту идею у себя в интерфейсе — разрешаю!

Рубрика: Usability | Метки: , | Оставить комментарий

Замена разбитого подшипника



Изображение | Posted on by | Оставить комментарий

Passport :-)



Изображение | Posted on by | Метки: | Оставить комментарий