Pull to refresh
5
0
Агафонов Алексей @Supme

Системный администратор

Send message

Используем PHP правильно

Reading time1 min
Views12K
Чуть ли не самая главная проблема в мире PHP — это огромное количество устаревшей и/или не самой лучшей информации, приводящей начинающих разработчиков в заблуждение.
Да что там, даже опытным программистам бывает тяжело выудить крупицу адекватной информации в море интернета.

Именно эту проблему пытается решить автор PHP: The Right Way.
PHP: The Right Way — это набор best practices, принятых стандартов оформления, ссылок на современные библиотеки и источники информации по PHP.

P.S. Если вы опытный программист, то примите участие, помогите начинающим!

Ремесло программиста. Золотые правила

Reading time14 min
Views29K
imageДанный пост представляет собой выдержку «золотых правил» из примечательной книги Питера Гудлифа «Ремесло программиста».

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

Бесплатные гейтвеи из Skype в SIP и обратно

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

На тот момент у меня уже был работающий сервер с FreeSWITCH, используемый как мини-АТС для одного абонента.

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

Изучить Github за 15 минут

Reading time1 min
Views127K
TryGit — интерактивный обучающий курс по Github в стиле Codecademy. Курс состоит из 25 мини-уроков, которые знакомят пользователя с базовыми понятиями и основными командами git, при этом ученик своими руками вводит команды в консоль, смотрит результат и читает сопровождающие надписи с объяснением происходящего.



Вот таким в будущем должно стать обучение в школах!

Конечно, 15-минутное введение не заменит полноценного учебника. Для обучения можно рекомендовать бесплатную книгу Pro Git и видеокурс Getting Git.

Софтверные лицензии в двух словах

Reading time1 min
Views2.9K
Если нужно быстро посмотреть, что разрешает/запрещает та или иная лицензия, то никто не объяснит это быстрее, чем новый поисковик-справочник по лицензиям tl;drLegal. Особенно ценным этот ресурс будет для тех, кто не привык разбираться в длинных юридических текстах.

Если кто не знает, tl;dr означает “Too Long; Didn't Read”.

Для каждой лицензии указаны основные тезисы: что лицензия разрешает, что запрещает и какие обязанности накладывает на пользователя. Плюс краткое резюме и ссылка на полный текст. Сейчас в списке на сайте 24 лицензии, но список пополняется буквально с каждым часов: ещё шесть часов назад было 22.

Поисковик пока официально не запущен, дата запуска — 9 июля, так что просьба относиться со снисхождением к возможным неточностям. В любом случае, идея отличная, в стиле упрощённой версии ToS на сайте 500px.com.

Оптимизация связки Nginx, Apache, PHP, MySql

Reading time9 min
Views80K
Неожиданно поступила задача разобраться почему определенный сайт не работает столь быстро сколь хочется. В основе его CakePHP, в связке с Apache и MySQL. В статье описание процесса поиска узких мест и приведение в порядок на столько, на сколько это возможно.

Название сайта светить не буду — думаю, программисты сами узнают. Скажу лишь, что это приложение для социальной сети нагрузкой 70-150 тысяч посетителей в обычное время. Все усложняется тем, что периодически производится рекламная рассылка, которая привлекает около 200-300 тысяч посетителей за пару часов.

Итак, под катом описание всей борьбы на протяжении 4 дней.
Читать дальше →

Знакомьтесь: FreeCAD

Reading time9 min
Views78K
FreeCAD — параметрический трехмерный редактор, позволяющий создавать объемные модели и чертежи их проекций.
Текущая версия FreeCAD — 0.12, но можно также скачать бета-версию 0.13 и попытаться ее скомпилировать.

FreeCAD поддерживает несколько различных форматов документов как на импорт, так и на экспорт, а также позволяет сохранять «снимки экрана» (в т.ч. в формате pdf).

Документация к FreeCAD довольно обильная, но все-таки не настолько полная, насколько бы хотелось. Вопросы по использованию этого продукта можно обсудить на форуме FreeCAD.

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

Тонкости регулярных выражений. Часть 1: метасимволы внутри и вне символьных классов

Reading time5 min
Views17K

Вместо вступления



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

Что бывает, когда начинающий программист в первый раз узнает про регулярные выражения? Чаще всего первое знакомство с ними происходит методом «научного тыка», поскольку ни знаний в соотвествующей области, ни понимания «как это работает» обычно на данном этапе у человека нет. Почему так происходит?

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

Тонкости регулярных выражений. Часть 2: возвраты и их количество

Reading time9 min
Views12K
Часть 1: метасимволы внутри и вне символьных классов.

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

280 кроказябл или взрывная мощь регулярных выражений

Reading time4 min
Views18K
В общем, наверное, как и другой любой начинающий JavaScript прогрммист (2 года назад), мне хотелось все реализовать своими руками. Так возникло ужасающее очень быстрое регулярное выражение из 280 символов.

Немного истории


Приблизительно полтора года назад, я узнал о библиотеке yass, которая была самым быстрым инструментом для поиска DOM элементов в JavaScript по CSS селекторам (ссылка на тесты).
И тут у меня возник ужасный интерес. Я захотел придумать способ, который будет еще быстрее. В то время я как раз читал книгу «Регулярные выражения Библиотека программиста» второе издание от Дж. Фридла. И вот… Это было лето, я еще был студентом и у меня была масса времени. Работа закипела…
Читать дальше →

Обзор бесплатных инструментов для пентеста web-ресурсов и не только v2

Reading time8 min
Views195K
Как-то давно я уже писал об этом, но немного скудно и сумбурно. После я решил расширить список инструментов в обзоре, добавить статье структуры, учесть критику (большое спасибо Lefty за советы) и отправил ее на конкурс на СекЛаб (и опубликовал ссылку, но по всем понятным причинам ее никто не увидел). Конкурс закончен, результаты объявили и я с чистой совестью могу ее (статью) опубликовать на Хабре.

Бесплатные инструменты пентестера веб-приложений


В данной статье я расскажу о наиболее популярных инструментах для пентестинга (тестов на проникновение) веб-приложений по стратегии «черного ящика».
Для этого мы рассмотрим утилиты, которые помогут в данном виде тестирования. Рассмотрим следующие категории продуктов:

  1. Сетевые сканеры
  2. Сканеры брешей в веб-скриптах
  3. Эксплойтинг
  4. Автомазация инъекций
  5. Дебаггеры (снифферы, локальные прокси и т.п.)

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

Простая настройка .htaccess для production

Reading time2 min
Views20K
Иногда, когда сайты хостятся на shared-хостинге или работа идет только с Apache, нужно сделать максимальную оптимизацию работы сервера и сайта соответсвенно. В статье приводятся несколько настроек, которые позволят вашему сайту работать лучше.

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

Защита для NGINX — NAXSI

Reading time3 min
Views39K

Что такое NAXSI ?


NAXSI = NGINX ANTI XSS & SQL INJECTION
Проще говоря, это файрвол веб-приложений (WAF) для NGINX, помогающий в защите от XSS, SQL-инъекций, CSRF, Local & Remote file inclusions.
Отличительными особенностями его являются быстрота работы и простота настройки. Это делает его хорошей альтернативой например mod_security и апачу.

Зачем нужен NAXSI ?

Очевидно, лучше всего защищаться от вышеперечисленных атак правильно написанным кодом. Но есть ситуации, когда WAF (и в частности naxsi), поможет:
  • Низкое качество кода сайта, при отсутствии возможности/ресурсов все выкинуть и переписать нормально.
  • “Закрытый” код, в котором невозможно исправить ошибки.
  • Неизвестное качество кода в важном для бизнеса участке.


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

AntiSMS — быстрое и эффективное лечение блокировщиков

Reading time4 min
Views5.9K
Приветствую, друзья!

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

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

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

Создание 1k/4k intro для Linux, часть 2

Reading time23 min
Views8.4K
Не прошло и полгода! Как вы можете, поднапрягшись, вспомнить, в прошлый раз мы остановились на унынии и обещании нырнуть в ассемблер.
Ну что же, пацан сказал — пацан сделал. Из этого аляповатого нагромождения букв вы узнаете, как можно инициализировать OpenGL-контекст в GNU/Linux в какие-то 450 байт, высвободив ещё больше места для разворачивания таланта.

Под катом вы узнаете, как в один килобайт нарисовать что-нибудь такое:


Заинтересованные пристёгиваются и вдавливают педаль в пол, а глаз — в экран.
Читать дальше →

Портируем C/C++ библиотеку на JavaScript (xml.js)

Reading time7 min
Views21K
Статья является дополненным переводом статьи «HOWTO: Port a C/C++ Library to JavaScript (xml.js)» (автор: azakai). Автор оригинальной статьи имеет приличный опыт портирования C/C++ библиотек в JavaScript. В частности, он успешно портировал lzma.js и sql.js. В своей статье он описывает общую схему портирования C/C++ кода на примере libxml – открытой библиотеки для валидации XML.
Читать дальше →

Почта. Основы настройки в Linux

Reading time6 min
Views29K
Когда начинающие системные администраторы сталкиваются с необходимостью настройки почтового сервера, они могут испытывать затруднения связанные с пониманием основных принципов работы почтового механизма. Чтобы внести ясность, я подготовил эту статью, основанную на освещении тех моментов, которые были мне в свое время непонятны. Статья подойдет также разработчикам ПО, которым надо быстро поднять почтовый сервер и протестировать свое приложение.
Читать дальше →

Бэкап для Gmail

Reading time2 min
Views14K
Состоялся релиз версии 1.0 beta свободной программы GMVault, которая предназначена для бэкапа почтового архива Gmail на локальном диске и восстановления данных в случае сбоя на Gmail. Поддерживается синхронизация по заданному интервалу, криптографическая защита, несколько gmail-аккаунтов.

GMVault — хороший вариант для тех, кто не в полной мере доверяет надёжности облачного хранилища Gmail, но не готов отказаться от удобного веб-интерфейса. Shell/batch-клиент доступен для Linux, Mac OSX и Windows.
Читать дальше →

Руководство по оформлению HTML/CSS кода от Google

Reading time12 min
Views361K

От переводчика


С удовольствием ознакомился с этими рекомендациями и теперь предлагаю вам перевод.

Введение


Это руководство описывает правила для оформления и форматирования HTML и CSS кода. Его цель — повысить качество кода и облегчить совместную работу и поддержку инфраструктуры.

Это относится к рабочим версиям файлов использующих HTML, CSS и GSS

Разрешается использовать любые инструменты для минификации компиляции или обфускации кода, при условии, что общее качество кода будет сохранено.
Читать дальше →

Information

Rating
Does not participate
Location
Рязань, Рязанская обл., Россия
Date of birth
Registered
Activity