Предположим что существует некий массив из координат отрезков составляющих какую то ломанную линию.
Требуется разбить эту линию на более мелкие отрезки. Зачем? Да мало ли, мне вот понадобилось.

private  ArrayList breakLines (ArrayList aV) //на входе массив координат
{

int snap=200; //требуемое количество отрезков на выходе
ArrayList tPixel = new ArrayList (); //новый массив координат для возврата
ArrayList aPixel = new ArrayList (); //временный массив координат

Point obj1 = new Point ();
int b=0;
foreach (Point obj in aV)
{
if (b != 0)
{
float x1 = obj1.X;
float y1 = obj1.Y;
float x2 = obj.X;
float y2 = obj.Y;
//Алгоритм DDA-линии
int L = (int) Math.Max (Math.Abs (x2 — x1), Math.Abs (y2 — y1));
float dX = (x2 — x1) / L;
float dY = (y2 — y1) / L;
aPixel.Add (new Point ((int) x1, (int) y1)); //Начальную точку в массив

for (int i = 0; i < L; i++)
{
x1 = (x1 + dX);
y1 = (y1 + dY);
aPixel.Add (new Point ((int) x1,(int) y1)); //Следующую точку в массив
}
//aPixel.Add (new Point ((int) x2, (int) y2)); // Можно раскомментировать если требуется дублирование каждой последней точки в отрезке
}
obj1 = obj;
b++;
}
for (int i=0;i<snap;i++)   tPixel.Add (aPixel[(int)(aPixel.Count*i/snap)]);
return tPixel;
}

Такая вот теорема для критики. Если есть кому что добавить, то вэлком.

Ставим Subversion:
USE="apache2" emerge subversion
Конфигурируем:
emerge --config =dev-util/subversion-1.4.6

Редактируем /etc/conf.d/apache2:
добавляем -D DAV -D SVN

Изменим /etc/apache2/modules.d/47_mod_dav_svn.conf:
<Location /svn/repos>
DAV svn
SVNPath /var/svn/repos
AuthType Basic
AuthName «Subversion repository»
AuthUserFile /var/svn/conf/svnusers
Require valid-user
</Location>

Создаём файл паролей:
htpasswd2 -m -c /var/svn/conf/svnusers USERNAME
Создаём других пользователей:
htpasswd2 -m /var/svn/conf/svnusers USERNAME

Перезапускаем Apache:
/etc/init.d/apache2 restart

Готово.
Теперь доступ к репозиториям можно получить как браузером, так и SVN клиентом по адресу http://mydomain/svn/repos/

Легко и просто...

Этот и последующие статьи будут из серии простейших операций с 2d графикой. Получается так, что с частотой в год или два,  приходится выполнять одинаковые задачи с подобными незатейливыми алгоритмами. И постоянно приходится вспоминать одни и те же действия. Статьи будут краткие  и простые. Текущий заказчик захотел исполнение на C# , следовательно код будет именно на нём.

private Double length (Double _x1, Double _y1, Double _x2, Double _y2) {
return Math.Sqrt (Math.Pow (_x2 — _x1, 2) + Math.Pow (_y2 — _y1, 2));
}

И да, скажете почему нет подсветки кода? Мне она не нужна.

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

Перепробовал массу готовых php скриптов (Prairie, phpMyID, PHP OpenID Server, Clamshell, NetMesh InfoGrid LID PHP, SimpleID). Одни не устраивали тем, что требуется база данных (зачем она нужна для одного аккаунта?), другие тупо не хотели работать с одним сайтом, но работали с другим. Надежного автономного решения так и не нашлось.

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

А теперь по порядку:
1) Заходим на www.myopenid.com и регистрируемся. В итоге получаем для авторизации адрес типа youraccount.myopenid.com
2) Добавляем следующий код в секцию HEAD своего сайта:
<link rel="openid.server" href="http://www.myopenid.com/server" />
<link rel="openid.delegate" href="http://youraccount.myopenid.com/" />
<link rel="openid2.local_id" href="http://youraccount.myopenid.com" />
<link rel="openid2.provider" href="http://www.myopenid.com/server" />
<meta http-equiv="X-XRDS-Location" content="http://www.myopenid.com/xrds?username=youraccount.myopenid.com" />

На этом всё. Не правда ли просто? Теперь при авторизации на любом сайте где требуется OpenID вы можете использовать адрес своего сайта.

Там же в myopenid можно заполнить ваши данные (почта, пол, ФИО, возраст, дата рождения, язык и т.д.) которые если потребуются для какого либо сайта, то будут автоматически выданы сервером.

P.S. youraccount надо заменить на ваш логин полученный при регистрации.

Так уж вышло, что анонс собственного проекта (dataap.info) делаю с опозданием.

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

Собственно на сайте присутствует вся информация. Жду ваших отзывов и инициативы.

У вас есть масса вариантов его использования:
1) Ставим код, регистрируемся.
2) Ставим код, не регистрируемся.
3) Не ставим код, регистрируемся.
4) Не ставим код, не регистрируемся.

Последний вариант не обязателен. Можете его не выполнять.

Представляю вашему вниманию плагин трансляции анонсов  записей из WordPress в Twitter. За основу был взят плагин Twitter updater от Victoria Chan. Из-за того, что оригинальный плагин не работал, как требуется, пришлось его допилить. Чем и делюсь со всеми.

Установка:
1.    Скачайте плагин wp2twitter (44)
2.    Распакуйте папку с плагином в папку плагинов Wordpress (/wp-content/plugins/)
3.    Активируйте плагин в админке плагинов.
4.    Двигайтесь  в панель инструментов и выберите WP2Twitter
5.    Настройте параметры под себя и укажите свои данные от твиттера

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

То же самое произошло и со мной сегодня. Были обращения пользователей, что яндекс не открывается. Что характерно жалоб то не было до этого. Отложив данную проблему на потом, потому как есть более глобальные проблемы, нежели не открытие одной из многих поисковых систем. И вот уже под вечер, разобравшись с основной работой, решил взглянуть, что же там такое происходит. Пошел по пути пользователя и обнаружил что, проблем то нет. Но дыма без огня не бывает, полез изучать логи и обнаружил интересную штуку. Буквально сегодня в строке запроса яндекса добавилась новая строка stparhome=banner. И уже под вечер эта строка из запроса заменилась на stparhome=byes.

Фраза banner естественно попала под действие баннерорезки. Каким местом думал яндекс при добавлении этой фразы? Небось опомнились когда количество поисковых запросов упало на неопределенный процент?