Search
Write a publication
Pull to refresh
19
0
Максим @mopkob

Разработчик. Управляющий разработкой.

Send message

PHPCI: Система непрерывной интеграции для PHP-проектов

Reading time3 min
Views24K
image

Совсем недавно вышла из бета-версии новая система непрерывной интеграции для PHP-проектов с открытым исходным кодом — PHPCI (текущая версия — 1.1.0), она вскользь упоминалась в дайджесте PHP №21.

Я уже какое-то время эксперементирую с этой системой, поэтому хочу представить вам небольшой ее обзор, тем более что на Хабре нет ни одной статьи о ней.

Читать дальше →

VAX — инструмент для визуального программирования, или как написать SQL мышкой

Reading time7 min
Views41K


Я хочу рассказать про созданный мною web редактор для «визуального программирования» и его историю создания.
Читать дальше →

Тюнинг сетевого стека Linux для ленивых

Reading time5 min
Views95K

Сетевой стек Linux по умолчанию замечательно работает на десктопах. На серверах с нагрузкой чуть выше средней уже приходится разбираться как всё нужно правильно настраивать. На моей текущей работе этим приходится заниматься едва ли не в промышленных масштабах, так что без автоматизации никуда – объяснять каждому коллеге что и как устроено долго, а заставлять людей читать ≈300 страниц английского текста, перемешанного с кодом на C… Можно и нужно, но результаты будут не через час и не через день. Поэтому я попробовал накидать набор утилит для тюнинга сетевого стека и руководство по их использованию, не уходящее в специфические детали определённых задач, которое при этом остаётся достаточно компактным для того, чтобы его можно было прочитать меньше чем за час и вынести из него хоть какую-то пользу.

Читать дальше →

Автомонтирование файловых систем с systemd

Reading time2 min
Views55K
Среди множества функций, которые предоставляет systemd, есть одна, которую несправедливо забыли. Это функция автомонтирования. При настройке автомонтирования указанный каталог будет подмонтирован только после первого обращения к нему (точнее, прямо во время).

NFS over VPN


Конкретный пример: у меня есть удалённый сервер, на котором есть интересующий меня каталог. Я хочу иметь этот каталог локально на своей машине. Протокол доступа — nfs. Т.к. он не имеет шифрования, то разумным решением выглядит использование vpn-канала до сервера.

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

Как оно устроено


Systemd имеет специальный вид automount-юнитов, которые позволяют автоматически монтировать указанный каталог.
Читать дальше →

Понятия: множество, тип, атрибут

Reading time14 min
Views18K
Математикам лень объяснять на языке обывателя, что такое действительное число. Обывателю трудно читать значки, написанные математиком, потому что их смысл для него не понятен. В итоге есть разрыв между теорией и практикой. В теории математики прекрасно знают, что такое типы объектов и что такое атрибуты, но, спускаясь к практике, мы видим, что мало, кто из практиков понимает, что это такое. Существует множество интуитивных понятий, но каждое из них скорее похоже на религиозную догму, нежели на знание. В данной статье я попытался ликвидировать пробел между математиками и прикладниками, объясняя основы теории множеств простым языком, без сложных значков. Например, вы знакомы с определением понятия атрибут? Я выстрадал его самостоятельно, потому что не мог найти формального его определения. И лишь потом Игорь Катричек прислал мне ссылку на книгу Е.Киндлера «Языки моделирования» (1979 год, перевод 1985 год), в которой дано определение атрибута:


В данной статье я дам свое, более общее определение атрибута, чтобы можно было легко его себе представить.
Читать дальше →

Моделирование конструкций. Требования к моделлеру

Reading time7 min
Views4.1K
В прошлой статье Понятие системы и конструкции. Их место в проектировании информационных систем, посвященной конструкциям, я вкратце затронул герменевтический круг – это один из способов нашего мышления, нацеленного на достижение понимания. Герменевтический круг состоит из двух направлений мышления: анализа и синтеза.

Анализ – это процесс, при котором мы представляем изучаемый объект в виде множества его частей (изучаем различные конструкции, на которые можно разложить изучаемый объект).

Синтез — это обратная «сборка» объекта.

Утверждается, что чувство понимания достигается, когда, сделав разборку объекта (анализ), а затем его сборку (синтез), — субъект получает непротиворечивый результат. В той же статье я отметил, что стандарты, как правило, нацелены на описание только одного направления мышления — анализа, но совершенно игнорируют второе направление – синтез.


Игнорирование процесса синтеза приводит к тому, что мы теряем способность делать проверку результатов анализа и начинаем мыслить шаблонами. Например, если нас спросить, из чего состоит велосипед, то довольно быстро найдется «правильный» ответ. Но если спросить: "Частью чего является велосипед?", – мы сильно затруднимся с ответом.
Читать дальше →

Понятие системы и конструкции. Их место в проектировании информационных систем

Reading time16 min
Views14K
После прочтения комментариев к предыдущей статье Классификация конструкций: примеры и заблуждения, посвященной классификации конструкций, я понял, насколько разное представление мы имеем относительно термина конструкции. Когда я писал статью, мне казалось, что этот термин трактуется довольно просто. Но, почитав комментарии, понял, что стоит поговорить о нем отдельно.

Конструкция


Толковый словарь Ефремовой определяет два разных понятия, которые обозначаются одним термином конструкция:

  1. Состав и взаимное расположение частей какого-либо сооружения, механизма.
  2. Само сооружение или механизм с таким устройством.

Попробуем перевести их на формальный язык.

Поскольку состав – это множество, то первое понятие переводится так: конструкция — это множество объектов, связанных между собой связями. При этом, судя по определению, объекты должны быть рукотворным и неживыми. То есть, нельзя представить Землю в виде конструкции, если не предположить, что ее сделали инопланетяне. Нельзя представить ДНК в виде конструкции, если только эта ДНК не создана кем-то. То есть, в определение конструкции надо добавить, что объекты рукотворные. Например, множество объектов: {фюзеляж, крылья, хвост} состоит из рукотворных объектов, и, потому, может называться конструкцией. Конструкцией под названием самолет. Замечу, что в данном контексте самолет – это не объект, а множество объектов {фюзеляж, крылья, хвост}. Можно назвать это множество самолет(к).

Сколько объектов может быть в конструкции? В определении нет ответа на этот вопрос. Но мы можем предположить, что их конечное число, большее одного, потому что в определении говорится о связях. Итого получилось: рукотворное множество объектов, созданное человеком, объекты объединены связями, множество конечное, количество элементов больше одного.
Читать дальше →

Классификация конструкций: примеры и заблуждения

Reading time14 min
Views7.8K
Это завершающая статья из цикла классификации моделей. В данной статье я классифицирую конструкции. Должен извиниться за отсутствие иллюстраций, но так получилось. Поэтому сегодня просто текст. Должен предупредить, что данная статья опирается на предыдущие мои статьи, в которых подробно описано, что объект, операция и функция — объекты, имеющие лишь разную трактовку.

Термины


Начнем с термина «есть часть». В быту мы встречаем следующие высказывания: слоны – есть часть млекопитающих. Речь идет о том, что множество слонов есть подмножество множества млекопитающих. В этой статье термин «есть часть» будет употребляться в другом смысле. Мы будем употреблять этот термин только в отношении конкретных объектов. Например, конкретная ветка дерева – есть часть конкретного дерева. При этом не надо думать, что речь идет о любой ветке дерева, как тогда, когда мы даем определение понятию: ветка дерева – есть часть дерева. В терминах матлогики это утверждение читается так: для любой ветки дерева найдется такое дерево, что данная ветка есть часть этого дерева. Такое утверждение относится уже не к конкретному объекту, а к понятию, определяющему объекты. Если в статье понадобиться сказать так, я скажу явно. В противном случае я буду говорить о конкретных объектах.

Следующий термин «включает в себя». Если я говорю, что дерево включает в себя ветку, то это значит, что конкретная ветка – это часть конкретного дерева. И речь по-прежнему идет о конкретных объектах, а не о множествах или понятиях.
Читать дальше →

Узнать и полюбить Xdebug

Reading time6 min
Views82K
Вот уже 15 лет прошло со времен первого релиза Xdebug. Прекрасный повод вновь представить эту систему миру и объяснить как и почему она делает то что делает.
image
Xdebug — это расширение для PHP (должно быть скомпилировано и установлено в процессе установки PHP) которое представляет разработчику следующий функционал для отладки:
Читать дальше →

14 инструментов, которые будут полезны для продвижения сайта

Reading time5 min
Views18K
Сегодня на повестке дня подборка интересных инструментов с Product Hunt — на этот раз для тех, кто ищет эффективные способы привлечь аудиторию и сделать себе имя. Грамотное продвижение продукта — это всегда целый комплекс самых разноплановых действий, поэтому я постарался включить в список сервисы и ресурсы, которые затрагивают разные его аспекты, от подбора качественного, продающего контента до анализа результатов.

Аналитика




Fullstory

Fullstory собирает максимум информации о поведении пользователей на сайте (клики, ввод текста, переходы по страницам) и проводит анализ, на основании которого можно сделать выводы о трендах. Вы можете просматривать отчеты по конкретным пользователям, проводить поиск по тому или иному действию или же кликом выводить статистику по любому объекту на странице. Помимо аналитики, пошаговые логи также будет полезны и для техподдержки.
Читать дальше →

Bash-скрипты, часть 2: циклы

Reading time8 min
Views815K
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. Даже то немногое, что уже разобрано, позволяет всем желающим приступить к автоматизации работы в Linux. В этом материале продолжим рассказ о bash-скриптах, поговорим об управляющих конструкциях, которые позволяют выполнять повторяющиеся действия. Речь идёт о циклах for и while, о методах работы с ними и о практических примерах их применения.

image

Внимание: в посте спрятана выгода!
Читать дальше →

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

Reading time2 min
Views20K


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

Я собрал небольшой дайджест, в котором собраны ссылки на практические материалы, в которых рассказывается о том, как действенно привлечь трафик на свой сайт и после этого повысить его конверсию, а также каких ошибок стоит избегать в процессе работ.
Читать дальше →

Красивые формы для приёма банковских карт с CardInfo.js

Reading time5 min
Views47K

UPD. CardInfo больше не работает. Используйте BinKing.


Гайд по использованию: https://habr.com/ru/post/527796/
Сайт сервиса: https://binkng.io

Всем кто верстал, верстает или будет верстать форму для приёма банковских карт дарю плагин CardInfo.js, с помощью которого можно сверстать вот такую форму:



Плагин по номеру карты определяет один из 49 российских банков (потом и прочие страны добавлю), выдаёт вам логотип банка, цвета для фона, ссылку на сайт банка, определяет тип карты, его логотип и прочее. С этими данными делаете что хотите, верстаете любую форму.


Поиграться с формой можно на демо странице. Код плагина и инструкции по установке на гитхабе.


Под катом:


  • Пара слов о плагине;
  • Про базу банков, и почему их 49, а не 50;
  • Про логотипы банков;
  • Про логотипы типов;
  • Несколько моих вопросов к читателям;
Читать дальше →

101 бесплатный сервис для дизайнера

Reading time10 min
Views212K
Представляем вам подборку бесплатных сервисов для дизайнера. Это первый вариант, в дальнейшем планируем расширять, добавляя новые разделы и инструменты.


Читать дальше →

Отслеживание js-ошибок с помощью Метрики

Reading time3 min
Views14K

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

Читать дальше →

Советы, книги, блоги и инструменты для мобильного арбитража трафика

Reading time8 min
Views18K
Это девятый и заключительный урок базового курса по мобильному арбитражу, в рамках которого вы получите общий набор знаний про мобильный арбитраж, фундаментальные понятия и набор инструментов, которые необходимы любому арбитражнику, интернет-маркетологу или трафик-менеджеру.

Предыдущие уроки:

  1. Что такое арбитраж
  2. Участники рынка
  3. Базовые метрики и понятия
  4. Офферы и вертикали
  5. Партнерские сети
  6. Источники трафика
  7. Типы конверсий и выплат
  8. Модели покупки рекламы

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


Презентация | Текстовая расшифровка

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

Настройка DKIM/SPF/DMARC записей или защищаемся от спуфинга

Reading time5 min
Views272K
Приветствую, Хабр! В этой статье будет инструкция по настройке DKIM/SPF/DMARC записей. А побудило меня написать эту статью полное отсутствие документации на русском языке. Все статьи на эту тему, которые были мной найдены, были крайне не информативны.
Читать дальше →

Использование ssh socks прокси совместно с MSF Reverse TCP Payloads

Reading time5 min
Views14K
Данный вольный перевод был мотивирован необходимостью в собственном понимании сабжа после прочтения ряда постов, начало которым было положено здесь, спасибо хабраюзеру levinkv

Использование ssh socks прокси совместно с MSF Reverse TCP Payloads

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

Один из моих любимых случаев (как и многие другие) это работа с OpenSSH Socks прокси. Удаленный ssh прокси дает возможность различными способами переадресовывать трафик через ssh туннель. Тем не менее существует главный недостаток в случае с socks прокси — вы «не можете» использовать сушествующие reverse tcp payloads, которые поставляются с Metasploit framework (и многими другими подобными инструментами). Однако, это не совсем так. Есть возможность для включения некоторых функций OpenSSH в целях обхода ограничений при использовании ssh перенаправления.

Читать дальше →

Секреты Metasploit

Reading time4 min
Views229K

Вступление


В 2003 году, хакеру, известному как «HD Moore», пришла идея разработать инструмент для быстрого написания эксплоитов. Так был рожден хорошо известный во всех кругах проект Metasploit. Первая версия фреймфорка была написана на языке Perl, содержавшая псевдографический интерфейс на базе библиотеки curses.

К 2007 году разработчики консолидировались, основав компанию Metasploit LLC; в это же время проект полностью переписали на Ruby и, частично на Си, Python и Ассемблер.

В октябре 2009 года, проект Metasploit был приобретен компанией Rapid7 с условием, что HD Moore останется техническим директором фреймворка, на что согласилась компания Rapid7.
Читать дальше →

Секреты Meterpreter Payload

Reading time6 min
Views95K
Что такое Meterpreter?

Meterpreter — расширенная многофункциональная начинка (Payload), которая может быть динамически расширена во время выполнения. В нормальных условиях, это означает, что это обеспечивает Вас основной оболочкой и позволяет Вам добавлять новые особенности к ней по мере необходимости.

Первым, наиболее частым действием является внедрение в процесс explorer'a. Эту возможность предоставляет команда migrate:

meterpreter > migrate 1888 #1888 — PID процесса, вывести список процессов - ps
[*] Migrating to 1888...
[*] Migration completed successfully.


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

meterpreter > getsystem
...got system (via technique 1).
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Specialist
Middle
From 250,000 ₽
Git
Docker
MySQL
Nginx
PHP
Bash
High-loaded systems
Flutter
Vue.js
ENTERPRISE SERVICE BUS