![]() |
|
![]() |
||||||
![]() |
![]() Алгоритм вычисления дней до дня рождения следующий:
Читать дальше... Решил изучить джойны кроме обычных JOIN, LEFT JOIN и RIGHT JOIN. MySQL еще предлагает два - NATURAL и STRAIGHT_JOIN (хотя второй представляет собой инструкцию оптимизатору, а не другую логику объединения таблиц). Про них хорошо написано здесь. Еще есть FULL OUTER JOIN, который MySQL'ом не поддерживается, кратко про него на википедии. Ну а здесь можно посмотреть визуальное представление работы джойнов, кроме NATURAL. Проблема актуальна для Windows-платформы. Потребовалось возможность программно объединять несколько mp3-файлов в один - реализации на питоне, к сожалению не нашел. Меня даже устроило бы выполнение данной задачи через стороннее консольное приложение, но на мое удивление подобных нормально работающих приложений под Windows не нашлось - возможно причина в том, что эти приложения изначально разработаны под *nix и под Windows не всегда работали корректно (исходные файлы могли оказаться битыми, у некоторых бились теги и неправильно определялась длина звучания, некоторые корректно обрабатывали mp3 с постоянным битрейтом и некорректно с переменным). Мною были опробованы следующие приложения: mp3wrap, mp3DirectCut, mpgtx. Решение пришло в виде библиотеки NAudio для .Net, которую можно легко использовать под Python, правда не под обычный, а под IronPython. Код можно посмотреть здесь. combine, ironpython, join, mp3, naudioXDebug удобно использовать в режиме profiler_enable_trigger=On, то есть когда профилирование не ведется постоянно, а включается только в том случае, если в запросе передан параметр XDEBUG_PROFILE. Обычно достаточно добавить этот параметр в адресную строку, а при отладке форм, приходится править уже код формы - добавляя параметр XDEBUG_PROFILE в action формы или в качестве элемента формы. Это неудобно и отнимает время, поэтому предлагаю вам воспользоваться простеньким букмарклетом, который добавит к всем формам на странице параметр XDEBUG_PROFILE. Читать дальше... Начал изучать фреймворк Django, и конечно изучение начал с поиска подходящей книги - в итоге был найден DjangoBook, затем перeвод DjangoBook на русский, затем из-за того что неудобно читать с монитора нашел тот же перевод скомпилированный в формат PDF из формата DocBook. Не знаю по какой причине, данный PDF ну очень долго рендерится на электронной читалке (Sony PRS-600)- перелистывание страницы достигало 5 минут! В формате ePub данную книгу я не нашел, но на сайте где я скачал PDF лежала хорошая инструкция по компилированию данной книги кроме PDF еще и в ePub, что я собственно и сделал. (Если захотите скомпилировать сами, учтите, что в инструкции не сказано что необходимо выгрузить из репозитория саму книгу и в самой книге необходимо будет поправить chap08.xml - он содержит ошибки XML-разметки) Кроме этого я встроил в книгу шрифт понимающий кириллицу, без него на некоторых читалках (в частности на моей PRS-600) вместо русских символов отображаются знаки вопроса. Если вы не пользуетесь линуксом или просто хотите сэкономить время - Скачать DjangoBook на русском в формате ePub. Первым делом смотрим лог индексирования, если лог заканчивается фразой unsorted clattr portion, то эта заметка Вам поможет. По-умолчанию индексатор Яндекс.Сервера пишет индексы во временную директорию, называется она newindex, а после окончания индексации переносит индекс из временной директории в директорию индекса конкретного сайта. Если прошлая индексация к примеру завершилась аварийно - файлы индекса во временной директории остались, именно это и имеет в виду ошибка unsorted clattr portion - удаляем все файлы из директории newindex и запускаем индексацию заново. В силу ряда причин время на компьютере может сбиваться. Чтобы установить точное время можно синхронизироваться с одним из NTP-серверов - вот список. В Linux для этих целей можно использовать специальный пакет ntp. Читать дальше... linux, ntp, ntpd, ntpdate, синхронизацияОдно из частых применений Mechanize - работа с формами. В этом примере мы найдем на странице форму авторизации, заполним ее данными и отправим на сервер. При этом не забудем сохранить кукисы и воспользоваться сохраненными кукисами при следующем запуске скрипта. Читать дальше... Простой парсер для файлов в формате Bencode, который используется для кодирования .torrent файлов. В примере буде показано как извлечь список файлов и их размер из .torrent файла. Читать дальше... ![]() Технологии → Библиотеки для автоматизации сбора данных на сайте и имитации действий пользователя → PythonДанный класс библиотек облегчит Вам жизнь, если Вам будет необходимо произвести некоторые действия на удаленном сайте, такие как:
При этом Вам не надо будет заботиться о отсылке соответствующих заголовков, механизма работы с кукисами, редиректами и пр. Помочь в этом Вам смогут библиотеки:
Python не имеет стандартной библиотеки для работы с Rar-архивами, но имеется сторонняя библиотека для этих целей - RarFile В простом примере, я покажу, как работать с данной библиотекой. Мы откроем архив, найдем первую директорию в корне архива и извлечем ее. Читать дальше... Одна из проблем, с которой сталкивается разработчик при создании мобильной версии сайта - это правильно определить зашел ли пользователь на страницу с помощью мобильного устройства. Правильный способ это сделать - использовать специальную базу данных определения устройств, одна из самых известных - это DeviceAtlas. Способ попроще, конечно же, основан на анализе строки User-Agent. Ниже приведенный код как раз использует этот метод, плюс еще несколько других нюансов и способен с большой долей вероятности определить является ли браузер мобильным. Читать дальше... ![]() Базы данных → Партиционирование (partitioning) — механизм разбиения больших таблиц на логические части → ЗаметкиПартицирование - простой в использовании (по крайней мере, относительно MySQL) механизм разбиения больших таблиц на части, позволяющий увеличить скорость выборки данных из этих таблиц. При создании таблицы указываются партиции и условия для данных, по которым определяется в какую партицию попадут данные. Использование партиций никак не отражается на синтаксисе запросов - они остаются неизменными. На хабре есть небольшая статья, в которой хорошо расписано как использовать в своей работе партицирование. В примере мы импортируем файл с классом в основную программу по его имени, динамически инстанцируем класс, и у полученного объекта класса динамически вызовем метод Читать дальше... В примере показан способ получения и сохранения кукисов в файл с использование библиотеки cookielib Читать дальше... В JavaScript'е при присваивании переменной массива или объекта происходит создание ссылки на объект(массив). Ниже приведены два примера, используя которые можно создать копию объекта массива. Читать дальше... Неудивительно, что Internet Explorer не поддерживает отображение потокового видео в формате MJPEG, в то время как остальные браузеры его давно поддерживают. Но исправить этот недостаток можно, используя специальный ActiveX от компании Axis Communications amc.cab. Читать дальше... CodeIgniter предоставляет неплохие возможности по обработке ошибок, но мне они показались недостаточными по следующим причинам:
Будем это исправлять =) Читать дальше... Первый способ основывается на регулярных выражениях и взят из библиотеки Prototype. Второй способ основан на том, что при попытке получить объект из его текстового представления будет возникать ошибка, если формат представления некорректен. Читать дальше... form, javascript, js, parent, родительская, форма event, javascript, js, событияC помощью данного скрипта можно быстро рассортировать фотографии по датам. Дата создания фотографии берется из EXIF. Директории фотоархива будут иметь следующий формат: photos/2009/20090628. Читать дальше... Две проверки осуществляется посредством регулярных выражений, еще одна посредством функции filter_var. Читать дальше... ![]() Многие мобильные телефоны позволяют снимать видео на встроенную камеру и сохранять его в формате 3gp. Для работы с видео и звуком под Linux есть как минимум 2 классных инструмента, mencoder и ffmpeg. Ниже представлены три способа конвертирования. Читать дальше... |
Меню
Подписка на RSS:
Поиск
Облако тегов
.net
array
asp
bash
browser
charset
check
class
clean
convert
count
create
css
curl
database
date
delete
directory
download
element
email
equivalent
extension
file
find
form
format
function
get
height
html
http
ie
image
javascript
jquery
load
mysql
number
page
perl
php
random
scriplet
send
shell
size
sql
string
text
time
url
utf8
variable
vb
visual basic
width
window
xml
xslt
|
![]() |
![]() |
![]() |
||
![]() |
![]() |