Programming
Алгоритм P: Перемешивание массива
- 17 April
- Posted in PHP
- Tags: PHP, алгоритм
- 4 Comments
Приветствую друзья.
Сегодня речь пойдет о перемешивании одномерно массива. Будем пользоваться Алгоритмом P, описанным Дональдом Кнутом (Искусство программирования. Том 2, с.163).
Для начала процитируем описание алгоритма.
Алгоритм P (Перемешивание). Пусть X1, X2, …, Xt – множество t чисел для перемешивания.
P1. “Инициализация”. Присвоить j <- t.
P2. “Генерация U”. Генерировать случайное число U, равномерно распределенное между 0 и 1.
P3. “Замена”. Присвоить j <- round(j*U) + 1, где round() – операция округления до целого числа. Заменим Xk <-> Xj.
P4. “Уменьшение j”. Уменьшить j на 1. Если j>1, возвратиться к шагу P2.
Меняем значение переменных местами
Забавный факт. Сегодня узнал, что для того чтобы поменять значения двух переменных местами не обязательно пользоваться конструкцией:
tmp = var1; var1 = var2; var2 = tmp;
Можно просто выполнить три операции поразрядного исключающего ИЛИ:
var1 ^= var2; var2 ^= var1; var1 ^= var2;
P.S. Вспомнив азы булевой алгебры, проверил на листочке бумаги, таки работает =)
С днем рождения jQuery или релиз версии 1.4
- 14 January
- Posted in jQuery
- Tags: jQuery, release
- No Comment
Сегодня очередная годовщина jQuery. Разработчики jQuery решили приурочить к четвертому дню рождения этой замечательной библиотеки релиз новой версии 1.4.
В честь этого двойного праздника был открыт сайт 14 Days of jQuery, на котором в течении 14 дней будет анонсирована новая версия библиотеки.
Бегущая строка на JavaScript своими руками
- 28 July
- Posted in JavaScript
- Tags: CSS, HTML, JavaScript
- 24 Comments
Сегодня речь пойдет о создании простого скрипта для имитации эффекта бегущей строки. Для начала, придумаем, как это будет работать. По идее должен быть внешний контейнер, который определит размеры блока бегущей строки и ее положение в пространстве на странице, назовем его marquee_container. Также должен существовать блок, содержащий “бегущий” текст, наречем его – marquee_text.
Теперь должно быть все просто, мы задаем родительскому блоку фиксированную ширину, position: relative (для того, чтобы мы могли абсолютно позиционировать блок с текстом относительно текущего), overflow: hidden (для того, чтобы “бегущий” текст скрывался за границами родительского блока). Далее пишем скрипт, который отодвигает текст вправо на ширину родительского блока (теперь он не видим) и потом перемещает его влево с заданной скоростью, пока текст не скроется полностью. И повторяем это действие снова и снова =).
Знакомство с Google Maps API. Часть #2
- 24 April
- Posted in JavaScript
- Tags: Google
- 2 Comments
Как я и обещал в первой части Знакомства с Google Maps API этого цикла, мы сейчас познакомимся с обработкой событий, добавлением/управлением объектами карты Google.
Как для регистрации обработчиков событий DOM и пользовательских событий, так и для их запуска в Google maps API есть пространство имен GEvent. Сейчас мы воспользуемся для примера методом addListener(source, event, handler). Этот метод регистрирует пользовательское событие event в источнике объекта source и вызывает обработчик handler.
Знакомство с Google Maps API. Часть #1
- 22 April
- Posted in JavaScript
- Tags: Google
- 5 Comments
Для того чтобы использовать карты Google на своем веб-ресурсе, необходимо получить ключ к API карте гугла. Для этого идем по этому адресу, соглашаемся с условиями использования, вводим URL своего сайта и жмем “Сгенерировать ключ к API”. На следующей странице получаем ключ.
Следующим шагом нам необходимо подключить саму библиотеку Google:
<script src="http://maps.google.com/maps?file=api&v=2.x&sensor=false&key=[здесь_код_к_API]" type="text/javascript"></script>
Получаем список всех вложеных файлов и папок на php
Начнем как всегда с постановки задачи. Нам необходимо получить список всех вложенных директорий и файлов, находящихся в конкретной папке, и выполнить некоторые действия над ними. Для этого напишем функцию, которая будет получать список всех файлов и папок, отделять эти две категории, обрабатывать отдельно и в случае нахождения вложенных папок будет вызывать себя рекурсивно.
Время выполнения php скрипта
- 11 November
- Posted in PHP
- Tags: PHP, time
- 3 Comments
У каждого, кто хоть немного задумывался об оптимизации быстродействия своего кода, возникала потребность в измерении времени исполнения всего скрипта либо его участков. Конечно, данный способ не идеален в плане точности измерения, но для грубых измерений вполне сойдет.
В Firefox`е не работает innerHTML ?
- 21 October
- Posted in JavaScript
- Tags: Firefox, HTML, innerHTML, JavaScript, Mozilla
- 7 Comments
Панацея здесь.
Перехват (обработка, отключение) ошибок в JavaScript
- 16 October
- Posted in JavaScript
- Tags: JavaScript, xHttprequest, ошибка
- No Comment
Иногда все-таки возникает потребность перехватить ошибки при выполнении сценария JavaScript, с целью обработать каким либо образом сообщения об ошибке (например, через xHttprequest отправить на сервер и записать в .log файл) либо просто отключить вывод этих сообщений конечному пользователю.