Category Archives: Programming
Создание web-приложения для работы без подключения к сети
Основная идея — проверять перед сохранением данных значение navigator.onLine и слушать события online (для сохранения на сервере), offline (для сохранения в localStorage) и load (для загрузки несохранённых данных на сервер при загрузке страницы после подключения к сети).
Сравнение 12 javascript MVC-фреймворков
The Top 10 Javascript MVC Frameworks Reviewed Лучшим признан Ember.js. Надо поковырять) UPD: поковырял. В принципе, более стройная архитектура, чем у того же backbone, у которого часть логики контроллера во вью. Но из коробки нет router и не так просто с pushState, так что не стал использовать серьёзно. Возможно, через полгода-год этот фреймворк будет интереснее.
Готовый бесплатный видеоплеер на html5
http://videojs.com/
Презентации на javascript
https://github.com/bartaz/impress.js. Вот что получается: http://bartaz.github.com/impress.js/#/bored. Кстати, есть и описание на хабре — http://habrahabr.ru/blogs/css/136505/
Библиотека для доставания хранимых процедур из SQL Server)
Написана на python https://github.com/squadette/sqlup
Popcorn.js — удобный и простой фреймворк для создания видеоплеера на HTML5
http://popcornjs.org/ — позволяет показывать видео и другой контент пользователю без использования flash. Есть большой каталог примеров: http://popcornjs.org/Demo/semantic-video, http://popcornjs.org/Demo/popcorn-remote
Удобная работа с датами в php
Периодически возникают задачи типа вернуть дату «первого числа прошлого месяца», или «прошлого понедельника». Это можно решить как-то так:
1 2 3 4 5 6 7 8 9 |
$dt = self::getCurrentMonthStartDt(); $dt->setTime( 0, 0, 0 ); $dt->setDate( $dt->format( 'Y' ), $dt->format( 'm' ) - 1, 1 ); return $dt; ... $dt = new DateTime(); $dt->modify( '-' . ( $dt->format( 'N' ) - 8 ) . ' days' ); $dt->setTime( 0, 0, 0 ); return $dt; |
А можно гораздо проще:
1 2 3 4 5 6 7 |
$dt = new DateTime( 'first day of last month' ); $dt->setTime( 0, 0, 0 ); return $dt; ... $dt = new DateTime( 'mon this week' ); $dt->setTime( 0, 0, 0 ); return $dt; |
It’s a kinda magic, но работает. http://www.php.net/manual/ru/datetime.formats.relative.php
Реализация счётчика на memcached
http://habrahabr.ru/blogs/webdev/43282/
Вёрстка под мобильные устройства
Хороший доклад — Прокрустовы окна. Как вписаться в устройства с минимальными потерями (ссылка на видео — http://mediadl.microsoft.com/mediadl/www/r/rus/html5camp2011/4005_800_2.wmv, слайды на http://pepelsbey.net/pres/procrustes/). Главное — это понять viewport и dpi. Для примера:
1 2 |
<meta name="viewport" content="width=device-width, target-densitydpi=device-dpi, user-scalable=no, initial-scale=1.0, maximum-scale=1.0" /> |
Советуют удобные сервисы для тестирования мобильных сайтов («firebug для мобильных устройств») — Opera Mini Simulator и Opera Mobile Emulator for desktop.
SQL coding style
Цель — стараться сделать код как можно более вертикально компактным, но читаемым.