Как стать автором
Обновить
0
Richard_Ferlow @Richard_Ferlowread⁠-⁠only

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

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

Истинное могущество регулярных выражений

Время на прочтение16 мин
Количество просмотров93K
Как частый посетитель тэга PHP на StackOverflow, я очень часто встречаю вопросы о том, как распарсить какие-то конкретные аспекты HTML, используя регулярные выражения. Самый распространённый ответ на это:
«Ты не можешь парсить HTML с помощью регулярных выражений, потому что HTML не является регулярным. Используй XML парсер, и будет тебе счастье»

Это утверждение — в контексте вопроса — находится где-то между сильно вводящим в заблуждение и абсолютно неправильным. Что я хочу попытаться продемонстрировать в этой статье, так это то, насколько могущественны современные регулярные выражения на самом деле.
Читать дальше →
Всего голосов 182: ↑172 и ↓10+162
Комментарии39

Администрирование компьютеров в локальной сети до загрузки операционной системы

Время на прочтение4 мин
Количество просмотров71K
Привет, хабрахабр! Эта моя первая статья и посвящена она удаленному администрированию. Надеюсь, что она будет интересна не только системным администраторам, но и просто продвинутым юзерам, так как использование некоторых компонентов может вам пригодиться.

В основном речь пойдет об администрировании компьютеров до загрузки операционной системы. Когда количество компьютеров невелико, на поддержку их работоспособности не требуется много человеческих ресурсов. С расширением парка компьютеров, их обслуживание становится более затратным. В моем случае, организация обладает около 100 компьютеров. Переустановка операционных систем, восстановление образов операционных систем занимает много времени. Мне приходилось обслуживать каждую единицу техники отдельно. Поэтому, встала задача разработать систему, которая упростит жизнь администратора и увеличит количество свободного времени, которое можно потрать на более интересные вещи.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии28

Загрузочный сервер — как загрузочная флешка, только сервер и по сети

Время на прочтение12 мин
Количество просмотров449K
Загрузочная флешка с набором нужного софта — замечательный инструмент системного администратора. Казалось бы, что может быть лучше? А лучше может быть загрузочный сервер!

Представьте, вы выбрали в BIOS загрузку по сети и можете установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ/etc с PXE Boot сервера, ведь это куда удобнее, нежели бегать с флешкой от машины к машине.
А в случае большого компьютерного парка, такой инструмент и вовсе незаменим.

Вот такое меню встречает нашу команду инженеров при загрузке с PXE



Под катом вас ждет описание всех настроек, а так же небольшой сюрприз.
Поехали!
Всего голосов 141: ↑138 и ↓3+135
Комментарии82

Подборка интересных CSS-рецептов «Голые пятницы #4»

Время на прочтение5 мин
Количество просмотров60K
голые пятницы

Здравствуй, дорогой читатель хабра!
Сегодня мы поговорим о «липких» блоках, новом свойстве для изображений object-fit, продвинутом использовании CSS-счетчиков, ключевом слове currentColor, и о том, есть ли анимация в z-index.
Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии32

Верните музыку! Или дело одного скрипта [iOs VK App]

Время на прочтение3 мин
Количество просмотров28K
Если Вы как и я пользуетесь вконтакте для прослушивания музыки, то я думаю Вас как и меня очень огорчило пропадание вкладки с музыкой из официального приложения. Одно радует, что разработчики оставили одну маленькую брешь, скорее всего специально… Заинтересовавшихся под кат.
Читать дальше →
Всего голосов 20: ↑13 и ↓7+6
Комментарии12

Разбор вызовов функций в PHP

Время на прочтение15 мин
Количество просмотров40K
Этот пост посвящён оптимизации PHP с помощью профайлера Blackfire в PHP-скрипте. Нижеприведённый текст является подробным техническим объяснением статьи в блоге Blackfire.

Обычно применяется метод strlen:

if (strlen($name) > 49) {
...
}

Однако такой вариант примерно на 20% медленнее этого:

if (isset($name[49])) {
...
}

Выглядит неплохо. Наверняка вы уже собрались открыть ваши исходники и заменить все вызовы strlen() на isset(). Но если внимательно прочитать оригинальную статью, то можно заметить, что причина 20-процентной разницы в производительности — многократные вызовы strlen(), порядка 60-80 тысяч итераций.
Читать дальше →
Всего голосов 54: ↑52 и ↓2+50
Комментарии70

СМС-рассылка с Google Sheets API

Время на прочтение3 мин
Количество просмотров26K
Недавно от знакомого фриланс-работодателя поступило предложение о небольшой работе, связанной с организацией смс-рассылки, данные для которой должны браться из .xls-таблицы. Плюс к этому было необязательное пожелание вынести эту же таблицу на корпоративный веб-сайт с обязательной возможностью её редактирования. При этом был озвучен весьма малый бюджет максимум на два человеко-дня.

Минимальное исследование существующих веб-инструментов работы с электронными таблицами показало, что разработка на их основе потребует времени в разы больше. Например, связка PHPExcel и какой-нибудь AJAX-таблицы выливалась в разработку функционала полноценного сайта. К тому же требующего отдельного хостинга в целях безопасности. Теоретически рассматривался вариант MS Excel + VB script, но и тут были свои подводные камни. В итоге выбор пал на Google Sheets.
Читать дальше →
Всего голосов 22: ↑17 и ↓5+12
Комментарии3

Нестандартная оптимизация проектов на PHP

Время на прочтение5 мин
Количество просмотров29K
В данной публикации хочу рассказать о том, как нетрадиционными методами мы смогли снизить нагрузку на серверы и ускорить время обработки страницы в несколько раз.

image

Традиционные методы, думаю, всем известны:
  • Оптимизация SQL-запросов;
  • Поиск и исправление узких мест;
  • Переход на Memcache для часто используемых данных;
  • Установка APC, XCache и подобных;
  • Клиентская оптимизация: CSS спрайты и т.п.


В нашем же проекте всё это было сделано, но при этом проблема скорости обработки страниц сохранялась. Средняя скорость обработки страницы была в районе 500мс. В один прекрасный момент пришла идея проанализировать, какие ресурсы есть, и на что они могут тратиться.
Читать дальше →
Всего голосов 53: ↑40 и ↓13+27
Комментарии103

Построение анимированной круговой диаграммы на jQuery

Время на прочтение6 мин
Количество просмотров28K
Формы это неплохой способ добавить некую изюминку элементам на вашей веб странице. Круги особенно хороши в этом отношении, потому что они целостны, просты и похожи на пирог. А теперь серьёзно, кто не любит пироги?



ДемоИсходный код

Как вы, должно быть, заметили по собственному многолетнему опыту пользования интернетом, большинство элементов на веб страницах, по сути, являются либо квадратами, либо, прямоугольниками. Поэтому, в некоторых случаях, интересные элементы, такие как круги и треугольники в вашем дизайне могут быть весьма полезными. Этот туториал продемонстрирует, как построить анимированную круговую диаграмму, подобную тем, которые вы обычно видите на сайтах портфолио. Это может помочь визуально подчеркнуть ваши навыки, а также продемонстрировать то, с какими задачами вы можете справиться. Взгляните на демо, чтобы увидеть конечный результат.
Читать дальше →
Всего голосов 14: ↑8 и ↓6+2
Комментарии4

Как не переплачивать за Умный Дом. Защита от потопа (антипротечка)

Время на прочтение6 мин
Количество просмотров88K
В статье представлен прагматичный подход по созданию одного из элементов Умного Дома — экономной защиты от потопа (антипротечки) на базе универсального контроллера домашней автоматизации.

Главные отличия от ранее представленных на хабре решений данной задачи – простота реализации, относительно дешево + для повторения не надо быть программистом. Правда паять все равно придется, но всего 2 раза.


Читать дальше →
Всего голосов 37: ↑36 и ↓1+35
Комментарии115

5 способов сделать ваш сайт легче и быстрее, от David Walsh

Время на прочтение4 мин
Количество просмотров21K
Предлагаю читателям «Хабрахабра» перевод упомянутой в дайджете статьи «5 Ways to Make Your Site Smaller and Faster» из блога Девида Уэлша (David Walsh)

Исповедь: Раз в неделю я говорю, что мне искренне жаль, что я был ребенком, который проводил свой рабочий день подстригая траву и занимаясь озеленением. Почему? Потому что в конце дня, хозяева могли сказать «трава подстрижена, работа завершена». Как веб-разработчики, мы никогда не можем сказать это, или можем? Сайт всегда может быть более эффективным — всегда есть стратегии для уменшения количества байт. Всегда. До тех пор, пока мы это внутренне осознаем, и постоянно повторяем — «сайт не достаточно хорош». Чтобы ежедневно быть великим разработчиком, мы почти обречены чувствовать/ощущать, что наша работа как будто не достаточно хороша — что за негативный способ проживать наши жизни!
Читать дальше →
Всего голосов 13: ↑8 и ↓5+3
Комментарии7

Эмуляция банковской карты на телефоне

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


HCE (Host-based Card Emulation) – это технология, которая дает возможность писать софт, не требующий для исполнения выделенного криптопроцессора, чтобы обеспечить сеанс связи с платежным терминалом. Приложение исполняется на основном процессоре мобильного устройства, в окружении операционной системы телефона.

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

Мы сделали такой HC-эмулятор в своём приложении. До появления технологии HCE информацию для осуществления NFC-транзакций в мобильных устройствах можно было хранить тремя способами: либо на SIM-карте (принцип SIM centric NFC), либо в специальном элементе на телефоне (Embeded Secure Elements, eSE), либо на специальной MicroSD.
Читать дальше →
Всего голосов 42: ↑39 и ↓3+36
Комментарии72

Прокачиваем умную зарядку Imax B6

Время на прочтение6 мин
Количество просмотров254K
Воистину говорят: лень — двигатель прогресса! Вот и мне, взбудоражила голову мысль, автоматизировать процесс измерения и тренировки кислотных аккумуляторных батарей. Ведь кто, в здравом уме, будет, в наш век умных микросхем, корпеть над аккумулятором с мультиметрами и секундомером? Наверняка, многие знают «народное» зарядное устройство Imax B6. На хабре есть статья про него (и даже не одна). Ниже я напишу, что я с ней сделал и зачем.


Читать дальше →
Всего голосов 44: ↑44 и ↓0+44
Комментарии39

300 потрясающих бесплатных сервисов

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


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

Читать дальше →
Всего голосов 341: ↑325 и ↓16+309
Комментарии107

Как мы написали helpdesk (часть 2)

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

В продолжении части 1, мы решили написать статью, как вышли на «новый уровень» по созданию веб-продукта. Хочу сразу уточнить, что это не совсем хелпдеск, который основан на создании заявок клиентами (хоть такая возможность и присутствует), а больше рассчитан на внутреннюю работу организации или IT-департамента. Так же хочу напомнить, что система создавалась конкретно под наши требования, поэтому она не лучше других, но и не хуже. Она просто «другая», у которой есть свои функции под конкретные задачи и возможно займёт достойное место в общем мире продуктов, делающих IT-мир лучше.
Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии22

Знак рубля на сайте: экспресс-метод

Время на прочтение2 мин
Количество просмотров104K
Знак рубля

Задача


Без лишней головной боли начать использовать знак рубля на сайте.

Идея


В свободно распространяемых (в том числе для использования в вебе) шрифтах PT Sans и PT Serif среди символов есть и знак рубля. Если использовать эти шрифты на сайте, то для решения задачи можно обойтись без лишнего html-кода, css-бубнов, векторной графики и прочих джедайских извращений.

Читать дальше →
Всего голосов 102: ↑91 и ↓11+80
Комментарии183

Устраняем пробелы, изучаем Android

Время на прочтение3 мин
Количество просмотров54K
Речь пойдёт не о пробелах в знаниях, но об этом чуть позже.

По старой привычке я по-прежнему читаю книги по программированию в бумажном варианте. В частности, про разработку под Android. Несколько лет назад с литературой по этой тематике на великом и могучем была напряжёнка. Сейчас положение немного выправилось. Я купил и прочитал, наверное, 99% всех выпущенных книг. Есть две проблемы с книгами. Первая — они однотипны в своей массе и рассказывают об одном и том же. Вторая проблема — значительная задержка в выпуске издания. Как правило, запаздывание происходит на 1-2 версии, что бывает достаточно критичным. Например, когда появились версии Android 3.0 и 4.0 с фрагментами, читать примеры создания приложений под Android 2.3 было глупо.

В далёком 2011 году вышла книга Android за 24 часа, которая, на мой взгляд, была одной из лучших. Мне понравился подход к раскрытию темы — брался один сквозной проект и постепенно усложнялся от часа к часу. Попутно объяснялись фундаментальные вещи на одном проекте. Было понятно, где и когда применять те или иные возможности.
На прошлой неделе случайно наткнулся в интернете на сообщение, что вышло новое издание с более длинным названием Создание приложений для Android за 24 часа с теми же авторами. И немедленно выпил купил.
Читать дальше →
Всего голосов 41: ↑34 и ↓7+27
Комментарии20

Несколько интересностей и полезностей для веб-разработчика #38

Время на прочтение4 мин
Количество просмотров30K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Awesome-react


Традиционная «awesome» коллекция полезных ресурсов для завоевавшего сердца миллионов фреймворка React.js.

CSS Reference



Вероятно самый подробный справочник по CSS от авторов Codrops с их удивительными HTML/CSS/SVG реализациями. Помимо того, что данный перечень CSS описывает все самые новые свойства, псевдо-классы, функции, типы, правила, он также содержит информация по последним концептам от W3C.

Читать дальше →
Всего голосов 38: ↑34 и ↓4+30
Комментарии3

Мелочи разработки на Android для начинающих

Время на прочтение4 мин
Количество просмотров41K
В связи со стремительным развитием мобильных технологий, IT-компаниям все больше требуются разработчики мобильных приложений для своих продуктов. Наша компания не стала исключением. В моем распоряжении оказалось два падавана, которых надо было обучить премудростям разработки на Android (к слову сказать, парни были умные и способные, но практически без опыта). Было решено написать им небольшую памятку касательно основных аспектов разработки. Выкладываю ее на суд хабрапользователей.
Читать дальше →
Всего голосов 32: ↑25 и ↓7+18
Комментарии16

Несколько интересностей и полезностей для веб-разработчика #37

Время на прочтение6 мин
Количество просмотров41K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Buzz.js




В последнее время в интернете все чаще и чаще встречаются проекты, где различные интерфейсные элементы сопровождаются определенными звуками. Я бы даже сказал, что UX/UI в вебе переходит на новую ступень эволюции. А Buzz.js одним из первых готов помочь вам в озвучке вашего интерфейса. Это библиотека для работы с HTML5 Audio API с рядом подходящих обработчиков событий.

var mySound = new buzz.sound( "/sounds/myfile", {
    formats: [ "ogg", "mp3", "aac" ]
});

mySound.play()
    .fadeIn()
    .loop()
    .bind( "timeupdate", function() {
       var timer = buzz.toTimer( this.getTime() );
       document.getElementById( "timer" ).innerHTML = timer;
    });


Читать дальше →
Всего голосов 57: ↑52 и ↓5+47
Комментарии5

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность