Как стать автором
Обновить
393
0
Александр Макаров @SamDark

PHP, Yii

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

Ресайз изображений на лету

Время на прочтение9 мин
Количество просмотров19K
Практически в любом веб-приложении использующем изображения существует потребность формировать уменьшенные копии этих изображений, причем зачастую, форматов дополнительных изображений несколько.
Так же вызывает некоторую головную боль добавление новых размеров на существующем приложении. Отсюда задача:
Читать дальше →
Всего голосов 73: ↑69 и ↓4+65
Комментарии65

Creating Scalable Vector Graphs with PHP

Время на прочтение15 мин
Количество просмотров10K
Как и большинство разработчиков PHP я знаком с расширением GD, которое позволяет достаточно просто создавать изображения в форматах JPEG, GIF и PNG. Расширение очень удобно, когда надо сделать сложные изображения из динамически получаемых данных в режиме он-лайн.
Обратной медалью GD является то, что изображения создаются в растровом формате. Изменение размеров изображения ухудшают его качество.
Читать дальше
Всего голосов 66: ↑58 и ↓8+50
Комментарии21

Удалённый сервер с 100% шифрованием и защитой от маски-шоу

Время на прочтение4 мин
Количество просмотров46K
На написание сего шедевра меня сподвигла статья «Мечта параноика или Еще раз о шифровании». Очень замечательная и полезная за одним исключением — если придут «маски-шоу», то они заберут сервер вместе со всеми флэшками и ключами. Отсюда вопрос — как сделать так, чтобы на сервере вообще не было никаких следов шифрования, ключей и т.п.?
Ответ банален — не хранить их на сервере. И рядом с сервером не хранить. И вообще где-либо в районе досягаемости потенциального злоумышленника.
Читать дальше →
Всего голосов 155: ↑137 и ↓18+119
Комментарии167

Мечта параноика или Еще раз о шифровании

Время на прочтение7 мин
Количество просмотров100K
В свете последних событий с torrents.ru и активизации государственных группировокорганов по борьбе с пиратством, думаю многие задумались как же обезопасить себя или свой сервер на случай если придут нежданные «гости». Вот и мне подвернулась задача защитить локальный медиасервер от посягательств, проведя пару дней за гугленнием и чтением мануалов/howto — мне удалось это реализовать. Скажу сразу, статей по шифрованию очень много, но в основном они рассчитаны на шифрование только определенных разделов, либо устарели/содержат много ошибок.

ЦЕЛИ:

  1. Весь винт(винты) должны быть надежно зашифрованы
  2. На винтах не должно быть абсолютно никакой разбивки, так как будто это новый(или стертый) винт
  3. ОС должна стоять на зашифрованных разделах
  4. Должна быть возможность увеличения дискового пространства, путем добавления новых винтов
  5. Загрузка системы без ввода ключа от шифрованных данных

Читать дальше →
Всего голосов 183: ↑176 и ↓7+169
Комментарии198

«Дети и интернет»: программы в помощь

Время на прочтение3 мин
Количество просмотров44K
Здравствуйте! В связи с некоторыми причинами столкнулся с необходимостью найти хорошую программу для «ограничения» детей от «плохих» сайтов.
В данном топике не хотелось бы рассуждать о необходимости контроля детей в сети интернет — это решает каждый родитель сам. Хотелось бы помочь тем, кто все-таки решил привлечь себе в помощь специализированный софт. Ибо при поиске необходимой программы — затратил кучу времени, а решение лежало на поверхности.


Фото взято с просторов «Интернета». (С) фотографии: Сергей Леонтьев

Заинтересованных милости прошу под Хабракат…
Читать дальше →
Всего голосов 77: ↑66 и ↓11+55
Комментарии97

Управление проектами – управление людьми

Время на прочтение5 мин
Количество просмотров37K
Я работаю ПМом в небольшой – порядка 50 человек – компании по разработке софта. Данная статья написана исключительно с целью – поделиться своими мыслями по поводу процессов управления людьми в команде и, в идеале, услышать комментарии профессиональных руководителей и разработчиков. Сразу оговорюсь, что я не затрагиваю другие аспекты управления
Поскольку работаю весьма недолго, около года, а до этого был программистом (прошёл все ступени от стажёра до архитектора), то в памяти ещё свежи те ошибки, которые осуществляли мои руководители, после которых, в лучшем случае, на душе становилось пакостно. Опять же, дисклеймер, написано всё это исключительно с целью обсуждения… Итак, начнём.
Читать дальше →
Всего голосов 112: ↑103 и ↓9+94
Комментарии79

Алгоритм коллаборативной фильтрации

Время на прочтение2 мин
Количество просмотров16K
Коллаборативная фильтрация (англ. collaborative filtering) — это метод, который даёт автоматические прогнозы исходя из наколенной информации о интересах и вкусах пользователей.

Чаще всего можно рекомендовать музыку или книги уже имея какие-то данные о пользователе. Например, Amazon или Ozon запоминают, что я ищу или куда ходил и из этих данных строит мне рекомендацию. Но лучше, чтобы пользователь сам вводил их в свой профиль, можно даже ему рассказать, что у вас эта система стоит и чтобы он сам мог выбирать что ему дать в следующий раз.
Читать дальше →
Всего голосов 47: ↑38 и ↓9+29
Комментарии16

Рекомендации друзей для социальных сетей

Время на прочтение2 мин
Количество просмотров1.7K
Не давно писал как можно рекомендовать товар в Интернет-магазинах или других местах, используя информацию о пользователе. Сейчас хочу показать алгоритм, который позволяет рекомендовать друзей, например в социальных сетях.

Первый шаг, представим информацию о пользователя в интервальной шкале и рекомендуем пользователю друзей используя коэффициент корреляции Пирсона, который будет измеряет степень линейной зависимости между двумя интервальными переменными. Например, у нас есть 4 пользователя: Дима, Анна, Петя и Саша. Мы знаем о них информацию, которую представляем в виде чисел в массиве (интересы, блоги, возраст и т.д.)
Читать дальше →
Всего голосов 38: ↑29 и ↓9+20
Комментарии46

Особенности национальной типографики

Время на прочтение6 мин
Количество просмотров8.1K
Не знаю, от чего, но мне почему-то очень интересны все эти закорючки и значки, вроде запятых, тире, кавычек, точек и прочей, вроде бы, бессмысленной ерунды, которая не воспринимается всерьез большинством людей. Нетрудно догадаться, что развился этот интерес после знакомства с Ководством, которое включало в себя популяризированное и наглядное объяснение основных норм употребления этих типографических знаков в русском языке. И когда я принялся за более-менее глубокое изучения английского, я стал обращать внимание на своеобразность его правил в этой области и определенные отличия, многие из которых на первый взгляд кажутся весьма необычными. Об этом-то я и хочу поведать; быть может, кому это тоже покажется любопытным, а может даже полезным.

Однако, должен подчеркнуть, что все нижеследующее — только наблюдения и результаты расспросов «местных», но никак не сформулированные правила. Буду рад замечаниям людей, действительно разбирающихся в вопросе.

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

Что там дальше?
Всего голосов 91: ↑84 и ↓7+77
Комментарии51

Сверхплавное передвижение объектов

Время на прочтение2 мин
Количество просмотров7K
Иногда у веб-разработчиков возникает задача, которая требует плавного движения объекта по экрану. Это может быть строка загрузки, какой-то спрайт (например, машинки на клавогонках) или что-то ещё. Проблема возникает, когда сдвиг даже на одну точку кажется слишком резким и портит общее ощущение от происходящего. Как этого избежать? Использовать приёмы антиалиасинга.

Мы сделали небольшой пример (а затем и ещё один с зацикленным фоном), в котором можно посмотреть, как выглядит плавный сдвиг с субпиксельной точностью и антиалиасингом, и как выглядит тот же сдвиг без этого эффекта.

Как это сделано?
Читать дальше →
Всего голосов 217: ↑212 и ↓5+207
Комментарии103

Что нужно настроить в mySQL сразу после установки?

Время на прочтение5 мин
Количество просмотров145K
Вольный перевод довольно старой статьи с MySQL Performance Blog о том, что лучше сразу же настроить после установки базовой версии mySQL.
Читать дальше →
Всего голосов 95: ↑88 и ↓7+81
Комментарии24

Named Capturing Group и Backreferences

Время на прочтение3 мин
Количество просмотров6.3K
Данная заметка не предназначена для начинающих изучать регулярные выражения, для начинающих я бы посоветовал книгу Ben Forta "Teach Yourself Regular Expressions in 10 Minutes" (ISBN: 0-672-32566-7).

Для тестирования и отладки регулярных выражений идеально подходит программа RegexBuddy (http://www.regexbuddy.com). Чтобы отлаживать следующие примеры нужно во вкладку Test скопировать HTML какой-либо страницы или вбить несколько тегов самим.

Задача — найти в HTML все теги IMG и вытащить из тегов значения атрибутов SRC и ALT.

Читать дальше →
Всего голосов 66: ↑57 и ↓9+48
Комментарии46

Три первых шага к оптимизации LAMP

Время на прочтение2 мин
Количество просмотров5.4K
Бытует мнение, что связка LAMP (Linux+Apache+Mysql+PHP) не требует особой настройки и работает «из коробки». Это далеко не так. После того, как я долго убеждал товарища установить кеширующий акселератор PHP xcache, я решил провести небольшой эксперимент и попробовать выключить xcache на своём виртуальном сервере, находящемся под небольшой нагрузкой (около хита в секунду). В реальной жизни нагрузка на процессор мала, а вот память загружена сильно, т.к. её немного (256МБайт).

Результаты эксперимента превзошли все ожидания.
Читать дальше →
Всего голосов 82: ↑66 и ↓16+50
Комментарии84

Нормализация Unicode

Время на прочтение2 мин
Количество просмотров21K
Однажды мне пришлось наблюдать, как спамеры очень интересным образом обходят спам-фильтр. Вместо традиционного URL типа «example.com», ссылка выглядела так:
http://example.com
Ссылка с подобной изощрённой точкой работает в IE7, FF3, Opera 9.5, Safari 3, Google Chrome и не работает в IE6.
Читать дальше →
Всего голосов 126: ↑125 и ↓1+124
Комментарии27

Эмулятор капчи школьного портала

Время на прочтение1 мин
Количество просмотров2.1K
Все помнят недавнюю статью про занимательную капчу на сайте Школьного Портала?
Сколько радости нам приносили эти слова:


Написал на PHP компактный генератор слов, работающий по такому же принципу.
Читать дальше →
Всего голосов 118: ↑89 и ↓29+60
Комментарии130

Графические фильтры на основе матрицы скручивания

Время на прочтение6 мин
Количество просмотров42K
UPD: Заголовок изменен, что бы более соответствовать теме статьи

В статье пойдет речь об использовании convolution matrix (матрицы скручивания или матрицы свертки), с помощью которой можно создавать и накладывать на изображения фильтры, такие как blur, sharpen и многие другие.

Cтатья будет интересна не только веб-программистам, но и всем кто так или иначе занимается программной обработкой изображений, поскольку функции для работы с матрицей скручивания имеются во многих языках (точно известно о php и flash). Так же, статья будет интересна дизайнерам, использующим Adobe Photoshop, поскольку в нем имеется соответствующий фильтр (Filter-Other-Custom).

Примеры будут на языке PHP с использованием библиотеки GD. Теория, практика, примеры (осторожно, много картинок!)

под катом
Всего голосов 100: ↑98 и ↓2+96
Комментарии37

Букмарклет, подгружающий внешний скрипт

Время на прочтение1 мин
Количество просмотров1.2K
В текущем проекте была задача написания полуавтоматического граббера страниц. Для этого необходимо было делать инъекцию скрипта в текущую страницу. Решил таким букмарклетом:

<a href=«javascript:(function(){var d=document,s;
s=d.createElement('script');
if(typeof s!='object')s=d.standardCreateElement('script');
s.src='http://example.com/js/bookmarklet.js';
s.type='text/javascript';
d.body.appendChild(s);})();»
>Do it!</a>


В более читаемом виде:

(function(){
 var d = document, s;
 s = d.createElement('script');
 if(typeof s != 'object'){
  s = d.standardCreateElement('script');
 }
 s.src = 'http://example.com/js/bookmarklet.js';
 s.type = 'text/javascript';
 d.body.appendChild(s);
})();


Оттестировано в IE6, IE7, FF2, FF3, Opera 9.2, Opera 9.5, Safari.
Всего голосов 28: ↑18 и ↓10+8
Комментарии25

Каптча: спрайты, минные поля и лицензирование

Время на прочтение2 мин
Количество просмотров1.1K
Хочу представить три авторских способа организации анти-спам защиты. Первый основан на технологии CSS спрайтов, второй на узкой специализации ботов, а третии на почтовых уведомлениях.

CSS sprites1


CSS sprites каптча
Суть проста изображение с каптчей содержит 20–30 символов, только 4–5 из них идущие подряд являются кодом, начинаются они то с 1го символа то с 20го в общем с произвольного, остальное — мусор, с помощью позиционирования бекграунда в слое видны только нужные символы. Человек введёт их, бот распознает и введёт все 30. Вуаля! ;)

Остальные два
Всего голосов 63: ↑57 и ↓6+51
Комментарии178

Публичная порка он-лайн типографов (часть 1)

Время на прочтение1 мин
Количество просмотров1.7K
Последний раз подобное мероприятие проводилось очень давно, и к сожалению в порке участвовали далеко не все кандидаты.
Читать дальше →
Всего голосов 41: ↑34 и ↓7+27
Комментарии55

Информация

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