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

Метель из картинок на javascript

Рецепт приготовления очень прост:

1) заходим на любую страницу, где побольше картинок
2) в строку адреса копируем код

javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.getElementsByTagName("img"); DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=(Math.sin(R*x1+i*x2+x3)*x4+x5)+"px"; DIS.top=(Math.cos(R*y1+i*y2+y3)*y4+y5)+"px"}R++}setInterval('A()',5); void(0);

3) жмем ENTER и наблюдаем красивую метел из картинок )))

Выпущен phpDays 1.1 beta2

Сегодня вышел очередной релиз phpDays 1.1 beta2.

В данном релизе было исправлено множество ошибок и добавлены новые возможности, такие как Days_Event (observer), Days_Helper (помощники вида) и Days_Tool_AppGenerator (создает новое приложение в командной строке и в браузере).

Так же были созданы UnitTests (спасибо Letlite и Xaoc2007) и проведен
рефакторинг многих частей кода.

Наша команда улучшила приложения (смотрите директорию "apps").
Изменено приложение "apps/phpdays.org" (продолжается его улучшение для использования на официальном сайте).

Наши переводчики помогли перевести документацию на 6 языков (English, Русский, Deutsche, French, Italiano, T?rk?e). Спасибо Volkirik,
Cristian Giustini, Hilmar Ackermann, Plodski, Letlite, Informpro Erelis.

Спасибо Вам за хорошую работу! В данном году мы выпустим финальную версию phpDays 1.1. В нее войдут новые возможности и исправления для работы в реальных приложениях. Мы продолжаем привлекать новых людей в проект.

С наилучшими пожеланиями!
Антон Данильченко.

Полноценные классы в Javascript. ООП в javascript. Структуры в javascript

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

    function MyClass() {
      function privateMethod() {
      }
      this.publicMethod = function() {
        // используем privateMethod();
      }
    }

Данный подход имеет недостатки, поскольку privateMethod в указанном примере грубо назвать «методом класса». Все публичные методы приходиться описывать прямо в конструкторе, а значит, они будут создаваться каждый раз при создании нового объекта.
Также невозможно вне конструктора дополнить класс новыми методами. Читать полностью »

Вирус: X-connect. Как вылечить

Вирус: X-connect
Главный симптом — в папке сетевых подключений появляется новое vpn-подключение с названием вида X-connect (i-connect, v-connect, z-connect), которое обрывает сессии через 10-50 секунд после запуска.

К слову, лечится любым адекватным антивирусом со свежими базами. Но вот беда — юзеры не могут скачать обновления: чтобы получить свежие базы, надо удалить вирус, а чтобы удалить вирус, нужны свежие базы. Замкнутый круг. Как быть? Читать полностью »

Слушаем вызовы функций javascript

Многие знают о механизме Event-Dispatcher-Listener'ов, реализованному во многих языках программирования. Я же создам подобный механизм не для Event'ов, а для любого метода объекта Javascript — Object.
Я не претендую на оригинальность, нет. Основная цель статьи — рассмотреть интересные механизмы прототипирования в Javascript, создание декораторов и, собственно, постараться хоть немного раскрыть мощь и гибкость это чудесного языка, который так часто обижают и недооценивают.

Итак, первый (и, надеюсь, не последний) рецепт в моей поваренной книге Javascript. Читать полностью »

Взломать сайт или редактирование страниц

Заходим на любой сайт в интернете (к другу — пошутить, к врагу — напакостить), и в адресной строке вашего браузера пишем следующую строчку, и нажимаем ENTER:

javascript:void(document.body.contentEditable = true);

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

Делаем 301 редирект для сайтов на asp

Бывает необходимость сделать 301 редирект, например, когда сайт переезжает на новый домен (адрес).
Для сайтов, расположеных на сервере в web-сервером Apache достаточно создать в корне файл .htaccess и прописать в нем необходимые директивы серверу.

Но так как web-сервер IIS не поддерживает управление через .htaccess, его использовать нельзя.

Но и тут ничего сложного нет. Необходимо в начале asp скрипта добавить

Response.Status = "301 Moved Permanently"
Response.AddHeader "Location", "http://www.site.ru"

"http://www.site.ru" - адрес, на который нужно редиректить

Доработанный antileech модуль к nginx (ngx_http_secure_link_module)

В конфигурационный файл добавлена директива secure_link_timeout, которая определяет время жизни ссылки в секундах (по умолчанию 3600 секунд - 1 час).

URL защищённой ссылки теперь выглядит так:

/prefix/hash/timestamp/file

Поле timestamp представляет собой hex-предстваление unixtime.
MD5-хэш счиается от имени файла, поля timestamp и секретного слова (указывается директивой secure_link_secret).

Таким образом, сначала сравнивается поле timestamp с разницей текущего времени и таймаута. Затем проверяется md5-хэш.

Ссылку можно сформировать таким образом: (пример на php):

< ?php $secret = 'topsecretword'; $fname = 'file.ext'; $ts = sprintf("%08x",strtotime("now")); echo '/' . md5($fname . $ts . $secret) . "/{$ts}/{$fname}n"; ?>

Патч применяется к файлу ngx_http_secure_link_module.с web-сервера nginx версии 0.7.41. Читать полностью »

Меняем прямые ссылки на редиректные в wordpress. Плагин wp-redir-links

Данный плагин позволяет менять обычные прямые ссылки на редиректные

В архиве содержится два файла wp-redir-links.php и r.php
Файл wp-redir-links.php следует закачать в папку плагинов "/wp-content/plugins/", а r.php - в корень сайта "/"

В файле wp-redir-links.php изменить значение переменной $domain

$domain = "www.ruscript.net";

на ваш домен

Пример использования Читать полностью »

Запрещаем копирование текста со страниц

Часто тексты со страниц по-просту воруют и публикуют на своем сайте, причем не проставляя ссылки на источник.
Можно отключать выделение текста для любого блока, например, для определенного div'а. Если поставить данный код для тега body, будет запрещено выделение всей страницы

В блок, в котором мы хотим запретить выделение текста необходимо добавить обработчик для javascript (используется для браузеров Internet Explorer)

onselectstart="return false"

и css-стили (используется для браузеров FireFox (на движке gecko), Safari (на движке KHTML))

-moz-user-select: none; //Firefox
-khtml-user-select: none; //Safari
user-select: none; //работает в css3

Для Браузера Opera необходимо писать дополнительную функцию preventSelection(); (листинг функции ниже)
Функция запрещает выделение во всем документе, кроме элементов input и textarea

Вызвать данную функцию

preventSelection(document);

Однако текст можно с легкостью скопировать, всего лишь заглянув в исходный html-код страницы

Такой способ может помочь в защите текстов от людей, но никак не поможет от роботов (программ, которые скачивают страницы целиком)

Пример Читать полностью »