Search
Write a publication
Pull to refresh
17
0.5
Максим @SabMakc

User

Send message

Gitlab 2.0

Reading time1 min
Views32K
image
22 декабря мы зарелизили версию 2.0.

Основные изменения:
  • Переезд с gitosis на gitolite.
  • Пересмотрен дизайн. Теперь он более удобен и практичен.
  • Улучшенное управление правами
  • Улучшенная система email — нотификации.
  • Улучшение dashboard.
  • Улучшение работы дерева файлов и каталогов.
  • Atom лента для комитов и тасков.
  • Багофикс + другие мелкие изменения.

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

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

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

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


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

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

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

Процессы и потоки в Android: пишем AsyncTask правильно

Reading time7 min
Views123K
Продолжаю свои повествования об Android. И в этот раз хочу поделиться ценной информацией о процессах и потоках, которая должна быть хорошо усвоена и всегда оставаться под рукой во избежании ошибок и недопонимания при написании приложений. В конце статьи приведу пример реализации AsyncTask, который загружает в ImageView картинку по нажатию на кнопку.
Читать дальше →

Выполнение задач в бэкграунде

Reading time4 min
Views118K
На Stackoverflow часто встречаются вопросы по выполнению на Android фоновых задач, в т.ч. и повторяющихся с заданным промежутком времени. Как правило, первое, что используется, это Service.

Такой подход в некоторых случаях может привести к тормозам и низкой скорости ответа пользовательского интерфейса. Расскажу когда так бывает и как с этим бороться…
Читать дальше →

Tower Defense + Box2D

Reading time4 min
Views11K
Если бы вы писали Tower Defense игру, пришло бы ли вам на ум воспользоваться для этого физическим движком, например Box2D? Как бы вы реализовали движение юнитов, поведение башен? Что еще полезного вы бы извлекли из физического движка в такой игре?

Над этими и другими вопросами я начал думать несколько месяцев назад, в результате чего родилась довольно таки интересная игра.
Читать дальше →

Я медленно удаляю apache с сервера

Reading time13 min
Views54K
image
Есть у меня серверок (да, да, именно серверок, сервером его назвать сложно). Железо старенькое (2 гига оперативы, AMD Athlon(tm) 64 Processor 3500+, програмный RAID). Админю я его сам, без особых навыков и познаний. Когда-то давным давно (больше года назад) поставил на него Debian 5.0 Lenny (это была вторая в жизни установка linux-системы, до этого ставил только Ubuntu на рабочий ноутбук) и панель управления ISPConfig3 по мануалу. Держу на нем несколько (штук 40) сайтов друзей и клиентов, Redmine, SVN и еще немного по мелочам.
Периодически все это безобразие падает (load average > 20), и приходится на сервере раз в пару часов перегружать apache или высасывать из пальца очередную попытку оптимизации. В общем полный раздрай и разруха. И вот в одну прекрасную субботу я подумал — а почему бы не решить вопрос раз и… И вот в общем.
Под катом — история убитых выходных + предыстория. Интересна в первую очередь мне, чтобы потом легко вспомнить что именно и зачем я ставил. Может быть интересна новичкам в интересном и нелегком (ох, ...) деле серверной оптимизации постепенным(!) переводом сайтов из-под Apache c его ModRewrite под Nginx (кстати, правильно это слово читается «энжинкс»меня поправили, Сысоев на конференциях не раз говорил, что название сервера стоит читать, как «энжин-икс», спасибо bayandin и DorBer ). Возможно, будет интересна более-менее опытным товарищам, оказавшимся в тех же условиях (Debian Lenny, ISPConfig3, слабое железо, несколько хороших, не сильно хороших и разных сайтов). И более опытным может быть интересно зайти, оставить пару комментариев.
Если интересно - нажмите сюда, если нет - нажмите звездочку ниже

Восстановление расфокусированных и смазанных изображений

Reading time10 min
Views226K
Восстановление искаженных изображений является одной из наиболее интересных и важных проблем в задачах обработки изображений – как с теоретической, так и с практической точек зрения. Частными случаями являются размытие из-за неправильного фокуса и смаз – эти дефекты, с которым каждый из вас хорошо знаком, очень сложны в исправлении – именно они и выбраны темой статьи. С остальными искажениями (шум, неправильная экспозиция, дисторсия) человечество научилось эффективно бороться, соответствующие инструменты есть в каждом уважающем себя фоторедакторе.

Почему же для устранения смаза и расфокусировки практически ничего нету (unsharp mask не в счет) – может быть это в принципе невозможно? На самом деле возможно – соответствующий математический аппарат начал разрабатываться примерно 70 лет назад, но, как и для многих других алгоритмов обработки изображений, все это нашло широкое применение только в недавнее время. Вот, в качестве демонстрации вау-эффекта, пара картинок:



Я не стал использовать замученную Лену, а нашел свою фотку Венеции. Правое изображение честно получено из левого, причем без использования ухищрений типа 48-битного формата (в этом случае будет 100% восстановление исходного изображения) – слева самый обычный PNG, размытый искусственно. Результат впечатляет… но на практике не все так просто. Под катом подробный обзор теории и практические результаты.
Осторожно, много картинок в формате PNG!
Читать дальше →

PostgreSQL: Уникальные ключи для распределенной базы. Практика

Reading time5 min
Views10K
По следам статьи «Уникальный ключ в условиях распределенной БД».

У нас есть база которую мы хотим разделить. В идеальном случае хочется сделать master-master. Один из самых сложных моментов, это обеспечение уникальности ключей на всех серверах. И хорошо если база изначально проектировалась с учетом масштабирования… Опять же, это что-то из области идеала, который встречается, скажем так — не часто.

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

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

Принцип домино или XSS на крупных сайтах рунета

Reading time1 min
Views4.4K
На странице регистрации нового аккаунта Mail.ru не фильтровались поля 'Имя' и 'Фамилия', в следствии чего туда можно было вставлять скрипты и регистрировать пользователя чьим именем был скрипт (до 80-ти символов). На самом Mail.ru эта уязвимость никак не отражалась, а проявляла себя на тех сайтах, что использовали авторизацию через Mail.ru, и на тех сайтах, что использовали авторизацию сайтов, использовавших авторизацию через Mail.ru :)
Вот так было до исправления уязвимости:
image
Читать дальше →

Разработка производительного игрового сервера на Netty + Java

Reading time5 min
Views55K
Piccy.info - Free Image Hosting

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

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

Чёртова дюжина советов начинающим верстальщикам. Часть первая

Reading time6 min
Views32K
Доброго времени суток!

Введение


Я являюсь фрилансером. Раньше я не особо задумывался над тем, как и что делают верстальщики. Я делал серверную часть, а мой друг верстал и набивал контент. Совсем недавно мне захотелось попробовать «что и как». Пару дней назад мне на глаза попался материал, который мне очень понравился. Он наглядно обЪяснял, что и как нужно писать. К сожалению, сылку дать не могу, так как я не запаомнил, где располагался сей мануал, но… Казалось бы, можно это и запомнить, но я пошёл ещё одним путём — законспектировал это дело. Собственно, добро пожаловать в мою записку.
Читать дальше →

Улучшенный 9-patch редактор

Reading time4 min
Views45K
Добрый день, Хабражитель!

imageУверен с форматом nine-patch уже все давным-давно знакомы, вероятно даже не раз пользовались им в своих Android-проектах (а может даже и где-то ещё). Также о нём чуть менее года назад skkap писал небольшую статью о том, что это за формат, и «с чем его едят». Также он описал инструмент, предлагаемый для быстрого редактирования этих самых файлов.

Собственно, прошёл уже почти год с того момента и я, опять наткнувшись на ту статью и вспомнив жалобы знакомых на неудобство этого самого «инструмента», решил посмотреть нет ли каких других вариантов и, к моему большому удивлению, я таковых не нашёл. Вероятно потому, что формат сам из себя ничего сложного и специфичного не представляет (при желании nine-patch файлы можно редактировать почти в любом графическом редакторе поддерживающем png) и тем более уже есть готовый инструмент (пусть и не самый удобный).

Тут я и решил лично взяться за дело…

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

GPS. Прошлое, настоящее и будущее глазами обывателя

Reading time8 min
Views21K

Введение


В настоящее время, когда современные телефоны стали в десятки раз мощнее первых суперкомпьютеров, когда появились первые iPhone, iPad и множество устройств на Android мы получили новую идеологию применения этих ресурсов. Карманные гаджеты теперь не просто уменьшенные до размеров ладони компьютеры, а инструменты, позволяющие пользователю при помощи одного пальца управлять целыми сферами его жизни – всеми сферами, в которые проник Интернет: общением, развлечениями, путешествиями, поиском информации…
Список можно продолжать до бесконечности. Во многом вплетению Интернета в нашу жизнь поспособствовала GPS-навигация. Теперь, когда почти у каждого в кармане лежит GPS-приемник, множество сервисов получило возможность улучшить нашу жизнь. Однако рассмотрим сначала историю происхождения GPS.
Читать дальше →

Aibolit для android

Reading time4 min
Views2.7K
Как же утомителен процесс инициализации UI при разработке android-приложений. Раз за разом приходится писать горы шаблонного кода: findViewbyId, setOnClickListener, getResources().getDrawable, … Возникает естественное желание переложить эту работу на плечи AOP. Беглый поиск готовых решений, адаптированных под android, навел разве что на RoboGuice, о котором уже упоминалось на хабре. Однако библиотека имеет значительный размер (~0.5 mb), что для многих приложений недопустимо много, и к тому же требует наследования ваших классов application и activity от RoboApplication и RoboActivity, чего не всегда хочется делать. Потому и появился Aibolit, легкая (~40kb), простая в использовании и функциональная библиотека, использующая dependency injection для инициализации UI на android.

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

Juvia: open source система комментирования для вашего сайта

Reading time1 min
Views1.7K
Многие веб-разработчики пытаются упростить себе жизнь и пользуются различными сторонними сервисами для «аутсорсинга» базы данных, системы комментирования, хранения аватарок, чата, системы аутентификации и так далее. Это очень удобно: например, чтобы добавить на сайт комментарии, достаточно вставить просто сниппет JavaScript. Приятно знать, что в этой сфере появляются новые сервисы, лучше прежних. Речь идёт о системе комментирования Juvia.

Сейчас самыми популярными сторонними системами комментирования считаются Disqus и IntenseDebate. Однако, обе они были разработаны в начале 2000-х, когда Ajax ещё не стал стандартом де-факто. Поэтому, при попытке интегрировать их на Ajax-сайте могут возникнуть проблемы.
Читать дальше →

Интеграция некоторых возможностей социальной игровой сети Scoreloop в приложение на Android

Reading time6 min
Views5.8K
Таблицы рекордов появились в играх много-много лет назад. Сначала они были очень простыми, вспомним, например, игры для приставок с трехсимвольными именами игроков.

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

В наши дни, во времена интернета, социальных сетей и мобильных устройств, таблицы рекордов выросли в целые социальные игровые сети.

Ниже я расскажу про интеграцию в свое Android-приложение одной из таких социальных игровых сетей под названием Scoreloop.
Читать дальше →

Выбираем мультиплатформенный движок для разработки мобильных игр (часть 1)

Reading time4 min
Views53K
imageРазработка мобильных приложений это весьма перспективное и выгодное занятие. Одним из самых интересных направлений являются игры. Однако, игры — это довольно сложные приложения, а учитывая, что на рынке существует как минимум две мобильные платформы, на которые стоит ориентироваться, сложность возрастает вдвойне. По этому, нам надо как то облегчить свой и без того нелегкий труд.
Читать дальше →

Выбираем мультиплатформенный движок для разработки мобильных игр (часть 2)

Reading time3 min
Views26K
Слегка затянул с публикацией продолжения, но первая часть не смогла накопить достаточно силы, а потом бац, и какой-то добрый незнакомец помог, за что ему огромное спасибо.

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

В этот раз вводную часть опустим и сразу перейдем к нашим пациентам.
Читать дальше →

Несколько находок

Reading time2 min
Views7.3K

Кроссдоменные запросы с помощью YQL


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

Позавчера, один уважаемый человек с форума javascript.ru с ником melky вскользь упомянул о каком-то странном, на первый взгляд, jQuery плагине, который называется jquery.xdomainajax.js
Пытливому уму программиста не нравятся всякие плагины, без понимания сути, поэтому я выковырял самую нужную часть:
var query = 'select * from html where url="http://javascript.ru/" and xpath="*"'
var url = 'http://query.yahooapis.com/v1/public/yql?q='+encodeURI(query)+'&format=xml&callback=callback';
var script = document.createElement('script');
script.src = url;
document.body.appendChild(script);
function callback(data) {
    console.log(data); //сам текст ответа находится в data.result[0]
}


Откройте консоль и зупустите код. Как видно, в запрос пихается урл сайта и XML запрос в виде xpath, ответ приходит в виде jsonp. Если в урле написать format=json, то ответ придет в виде объекта с тегами.
Дальше этого применения я не пошел, поэтому лучше сами изучите матчасть здесь: developer.yahoo.com/yql

В комментариях настаивают указать на ограничения по количеству запросов с одного IP и запросов, использующих accesskey, которого у нас нет (так что, скорее всего, можно забить :) ).

Еще немного

Централизованное резервное копирование данных Windows и *nix серверов средствами Bacula

Reading time15 min
Views99K
Приветствую всех хаброжителей!

Как нетрудно догадаться, речь пойдет о бекапах.
Своевременный бекап — крайне важная часть работы системного администратора. Своевременный бекап делает сон спокойным, а нервы стальными, придает сил и оберегает здоровье.

Думаю вполне резонным будет предположение, что данная тема уже набила оскомину, но все же я рискну поделиться своим опытом. На суд читателя будет представлена клиент-серверная реализация схемы резервного копирования. В качестве инструмента я выбрал open source проект Bacula. По более чем полугодовому опыту его использования остаюсь доволен своим выбором.

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

Под хабракатом я опишу все демоны подробно


В моем случае резервному копированию подлежат:
  1. Конфигурационные файлы различных демонов со всех серверов.
  2. MySQL базы данных.
  3. Документооборот с файлового сервера Windows.
  4. Различные важные данные с nix серверов(движки сайтов/форумов, etc..)


Приглашаю под кат тех, кто еще не делает бекапы, и тех кто уже их делает.

Information

Rating
3,581-st
Location
Россия
Registered
Activity