Как стать автором
Обновить
2
0
Александр Соловей @naghtigall

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

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

Регулярные выражения — это не трудно

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

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

Знать regex стоит потому, что с его помощью можно добиться очень многого, используя очень мало кода. Если я пытаюсь с помощью обычного процедурного кода воспроизвести то, что делает моё выражение, то код часто получается очень пространным, полным багов и тормознутым. Могут потребоваться часы или дни, чтобы найти альтернативное решение, а ведь можно было за пару минут написать regex.
Читать дальше →
Всего голосов 14: ↑10 и ↓4+10
Комментарии21

Установка 1С: Сервера взаимодействия на CentOS 7, CentOS 8, RedOS 7.3. Заметки на полях

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4.6K
Нюансы установки 1С: Сервера взаимодействия в рабочем контуре на примере CentOS 7, CentOS 8, RedOS 7.3
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Как рисовать красивые соединения с помощью SVG

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

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

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

Делаем бесконечную рабочую область без Canvas

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

Рабочее пространство в нашем приложении представляет собой бесконечную доску, по которой могут перемещаться ноды. Необходимо реализовать масштабирование этого пространства и перемещение по нему. Все это мы делаем без использования Canvas, так как приложение построено на React, в дизайн-системе используется antd, а ноды могут быть огромными формами. Согласитесь, реализовывать такие интерфейсы было бы гораздо сложнее, не будь у нас доступа к нативным средствам HTML-5.

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

Команда find в Linux – мощный инструмент сисадмина

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


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


Команда find – это невероятно мощный инструмент, позволяющий искать файлы не только по названию, но и по:


  • Дате добавления.
  • Содержимому.
  • Регулярным выражениям.

Данная команда будет очень полезна системным администраторам для:


  • Управления дисковым пространством.
  • Бэкапа.
  • Различных операций с файлами.

Команда find в Linux производит поиск файлов и папок на основе заданных вами критериев и позволяет выполнять действия с результатами поиска.

Читать дальше →
Всего голосов 17: ↑11 и ↓6+7
Комментарии12

15 супер полезных примеров команды find в Linux

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

Практические примеры, которые приведены в этой статье, помогут вам освоить очень эффективную и крайне полезную команду find.
Читать дальше →
Всего голосов 34: ↑30 и ↓4+34
Комментарии17

Григорий Остер — Вредные советы для писателей мануалов

Время на прочтение9 мин
Количество просмотров25K
Недавно мне опять пытались продать «Тик-ток». Молодёжь заливалась песнями о том, как же прекрасна новая платформа. «Возможно» — сказал я — «И чем же она так прекрасна?»

— Ну, там можно научиться огромному количеству новых и неизвестных вещей.
— А… Правда? Ок, удиви меня.
— Вот! – наивный юнец с радостью ткнул на указатель на приборной панели своей «Хонды».
— И что же в этом такого прикольного?
— Видишь стрелку? Она показывает с какой стороны у тебя крышка бензобака, чтобы ты помнил, где останавливаться у бензоколонки.


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

— Ну вот, пожалуйста. Это было известно ещё до «Тик-тока», и даже до «Фэйсбука». Эх! Это было известно ещё до интернета и, возможно, до появления автоматической коробки передач. Это было известно до того, как твои родители появились на свет. Ты мануал-то читал?
— Нет.
Оно и видно.

Признайтесь, люди не читают мануалов. Давайте посмотрим, что Вам можно посоветовать, чтобы люди от них вообще избавились.
Читать дальше →
Всего голосов 85: ↑80 и ↓5+104
Комментарии145

О том, как мы на PHP запускали настоящий MS Excel и что из этого вышло

Время на прочтение6 мин
Количество просмотров28K
Не секрет, что зачастую PHP-программистам приходится решать задачи, весьма далёкие от бытового представления о «веб-разработке». Развитие языка в последние годы привело к тому, что PHP всё чаще считают языком общего назначения, пригодным не только для сайтов, но и для других задач.

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

Дано


  • Многие наши партнёры (скажем прямо — это крупные банки) любят считать что-то в Excel. Причем «любят» — это очень нежно сказано. Сложнейшие скоринговые модели могут быть «запрограммированы» в Excel, в файле из сотни листов с десятками макросов
  • Перевести «программы», написанные в Excel на какой-либо язык программирования — практически нереально. Это займет уйму времени, а проблема постоянного обновления и проверки корректности делает такую задачу и вовсе нерешаемой


Требуется


  • Основная информационная система нашей компании написана на PHP. Она содержит в себе как веб-интерфейсы, так и множество консольных сервисов и воркеров.
  • С этими «программами» в Excel нужно как-то взаимодействовать из консольных приложений на PHP — передавать в них данные, обсчитывать, получать результаты

Некоторое время нам хватало возможностей популярной библиотеки PHPExcel. Но когда от бизнеса поступило очередное требование «нужно, чтобы работали макросы, и еще бы хорошо всё это сохранять в PDF», стало понятно, что выбранный путь — тупиковый. Нужно не парсить файлы xlsx, не имитировать просчёт, и даже не использовать Open Office, а научиться взаимодействовать с «настоящим» Microsoft Excel.


Что из этого вышло - под катом
Всего голосов 50: ↑46 и ↓4+42
Комментарии102

Как сделать ваш HTML отзывчивым, добавив одну строку кода на CSS

Время на прочтение4 мин
Количество просмотров64K
Привет, Хабр! представляю вашему вниманию перевод статьи «How to make your HTML responsive by adding a single line of CSS» автора Per Harald Borgen.



В этой статье я научу вас, как использовать CSS Grid для создания крутой сетки изображений, которая изменяет количество столбцов в зависимости от ширины экрана или окна браузера.

Самое крутое, что для добавления отзывчивости потребуется написать одну строчку кода на CSS
Читать дальше →
Всего голосов 79: ↑69 и ↓10+59
Комментарии38

Sass MediaScreen — Определяем девайсы на CSS

Время на прочтение3 мин
Количество просмотров9.4K
Я считаю, что в последнее время разница размера экранов между разными группами устройств всё больше размывается. Не смотря на это я попытался написать инструмент для определения, как групп устройств (мобильники, планшеты, лаптопы, десктопы), так и конкретных девайсов (iPhone 5, iPhone X, iPad Pro 12 и т.д.). Получилась, на мой взгляд, довольно удобная пачка SASS-миксинов. И что немаловажно, инструмент прост в использовании, а также позволяет расширять список устройств своим без правки исходников.

Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии6

Node.js, Express и MongoDB: API за полчаса

Время на прочтение11 мин
Количество просмотров243K
Начинающему программисту разработка для Node.js может показаться сущим кошмаром. Виной всему – гибкость этой платформы и отсутствие чётких руководств. Но, на самом деле, всё не так уж и страшно.


Вот, например, типичная задача: разработка REST API, серверной части некоего приложения. Обилие собственных возможностей Node и множество дополнительных модулей, которые способны помочь в решении этой задачи, способны завести новичка в тупик, вызванный богатством выбора. Основные вопросы здесь заключаются в подборе компонентов и в настройке их совместной работы.
Читать дальше →
Всего голосов 39: ↑30 и ↓9+21
Комментарии30

Рекомендации после установки Ubuntu 16.10

Время на прочтение3 мин
Количество просмотров42K
13 Октября компания Canonical представила Ubuntu 16.10. 16.10 является промежуточным релизом между LTS выпусками и по своей сути служит для отладки и тестирования новых возможностей.

image
Читать дальше →
Всего голосов 34: ↑19 и ↓15+4
Комментарии79

Обзор систем мониторинга серверов. Заменяем munin на…

Время на прочтение9 мин
Количество просмотров185K
Очень долго хотел написать статью, но не хватало времени. Нигде (в том числе на Хабре) не нашёл такой простой альтернативы munin, как описанная в этой статье.


Читать дальше →
Всего голосов 79: ↑76 и ↓3+73
Комментарии111

Laravel подробнее про Homestead

Время на прочтение6 мин
Количество просмотров43K
В официальной документации Laravel написана целая страница о Homestead, но проблема в том, что в ней мало разъяснений зачем это вообще надо. В документации скорее инструкция для тех кто уже знаком и с VirtualBox и с Vagrant и с Linux (Ubuntu). Если Вы из таких — статья не откроет что-то новое, но если Вы прочитали про Homestead в документации и не поняли зачем это вообще надо, или что-то не получилось выполнить по инструкции — в этой статье все будет разжевано подробно.
Читать дальше →
Всего голосов 13: ↑7 и ↓6+1
Комментарии20

Делаем nginx как front-end к apache

Время на прочтение1 мин
Количество просмотров150K
Эта тема довольно избита, но на просторах интернета не так и просто найти короткий и четкий ответ на этот вопрос. Вот по этому я решил собрать все в виде небольшой инструкции.
Читать дальше →
Всего голосов 84: ↑43 и ↓41+2
Комментарии42

Bash-скрипты, часть 3: параметры и ключи командной строки

Время на прочтение10 мин
Количество просмотров550K
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

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

image
Читать дальше →
Всего голосов 47: ↑41 и ↓6+35
Комментарии23

Bash-скрипты: начало

Время на прочтение11 мин
Количество просмотров1.8M
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

Сегодня поговорим о bash-скриптах. Это — сценарии командной строки, написанные для оболочки bash. Существуют и другие оболочки, например — zsh, tcsh, ksh, но мы сосредоточимся на bash. Этот материал предназначен для всех желающих, единственное условие — умение работать в командной строке Linux.


Читать дальше →
Всего голосов 69: ↑61 и ↓8+53
Комментарии123

Почтовый сервер на Linux

Время на прочтение11 мин
Количество просмотров310K
Как наладить работу почтового сервера, умеющего принимать и отправлять электронную корреспонденцию, бороться со спамом, взаимодействовать с клиентами? На самом деле, всё довольно просто.

Сегодня поговорим о почтовых серверах на Linux. Мы расскажем о том, как настроить сервер, о широко распространённом в интернете протоколе SMTP, а также о других протоколах, таких, как POP и IMAP. В итоге вы окажетесь обладателем полноценной системы для работы с электронной почтой.



Начнём с SMTP-сервера на Linux
Читать дальше →
Всего голосов 51: ↑39 и ↓12+27
Комментарии84

Так ли безопасно использование абсолютного пути в *nix системах, как мы привыкли считать?

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

image


Идея редактирования переменных окружения пользователя для повышения прав при тестировании на проникновение стара как мир. По этой теме написано множество статей, и даже в книгах начали появляться советы по использованию абсолютного пути вместо относительного. Вот пример такого совета из довольно известной книги Unix и Linux. Руководство системного администратора (4 издание):


…
Рекомендуем взять за правило при вводе команды указывать полное имя, например /bin/su или /usr/bin/su, а не просто su. Это послужит определенной защитой от тех программ с именем su, которые преднамеренно были прописаны в переменной среды path злоумышленником, намеревавшимся собрать хороший “урожай” паролей.
…

Но так ли это безопасно? Если вы тоже задавались этим вопросом, то добро пожаловать под кат.


Читать дальше →
Всего голосов 82: ↑75 и ↓7+68
Комментарии139

Разработка SELinux-модуля для пользователя

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

Это вторая статья из цикла


Сегодня мы поговорим о SELinux-пользователях, их создании, привязке, правам и другим вещам.

Зачем это делать? Есть много причин. Для меня главной причиной было выдать доступ для техподдержки для рутинных операций (таких как ребут, чистка логов, диагностика итд), но без доступа к критичным данным и изменению системных функций.

Предположения


В тексте будет содержаться много технической информации, поэтому автор предполагает, что читатель:

  • Прочитал прошлую статью
  • Имеет под рукой CentOS 7
  • На котором установлены пакеты setools-console, policycoreutils-devel, selinux-policy-devel, policycoreutils-newrole
  • И включен SELinux в режиме enforcing с политикой targeted или minimum

Это все про вас? Тогда поехали!
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии20
1
23 ...

Информация

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