Интересный доклад про разработку API
На конференции «.Тостер» попал на доклад Jordi Romero API design and more (слайды). Говорил про создание API, про кеширование, про масштабирование, клиентскую оптимизацию. Понемножку, сжато. Понравилось. Странно только, что у них три уровня хранения данных: mySQL master-slave Redis для сложного кеша, чтобы не нагружать mySQL memcache для простого кеша
Google Music: как скачать свою музыку на компьютер
Иногда хочется скачать залитую музыку обратно на компьютер. Для этого есть несколько способов: http://www.google.com/support/forum/p/Google%20Mobile/thread?tid=46ff4c31351e4627&hl=en Мне больше всего понравился способ с установкой userscript http://userscripts.org/scripts/show/118720.
Обновление Windows 7 home до ultimate
Понадобилось на ноутбуке (не на моём) вместо установленного windows 7 home установить windows 7 home ultimate (понадобился iis). Думал по старинке — нужно поставить диск в виндой и установить поверх текущей. Но оказалось, что в windows 7 есть Windows Anytime Upgrade. Пользоваться им просто: Win+Pause Получить доступ к дополнительным функциям, установив новый выпуск Windows 7 …
SQL Server: Получить время в формате (hh:mm) из datetime
Для SQL Server 2005 CONVERT( VARCHAR( 8 ), GETDATE(), 108 ) AS HourMinuteSecond, — hh:mm:ss CONVERT( VARCHAR( 5 ), GETDATE(), 108 ) AS HourMinute, — hh:mm CONVERT( VARCHAR( 8 ), GETDATE(), 101 ) AS DateOnly — mm/dd/yyyy http://blog.sqlauthority.com/2009/08/06/sql-server-get-time-in-hourminute-format-from-a-datetime-get-date-part-only-from-datetime/
DKIM для подтверждения, что почта отправлена с указанного домена
Для борьбы со спам-фильтрами gmail и яндекса, и чтобы доказать, что не верблюд, можно заморочаться и добавить дополнительный заголовок к письму и дополнительную запись в dns. Называется это всё DomainKeys Identified Mail. Очень понятно написано здесь: http://habrahabr.ru/blogs/spam/106589/, генерация ключей: http://www.port25.com/support/support_dkwz.php
Самый хороший способ подгрузки яваскриптов – тегом script
Использовали мы на проекте одну лебедевскую библиотеку — include.js. Умеет она интересные вещи, вроде последовательной загрузки зависимых библиотек в нужном порядке. Нужно в яваскрипте написать js.include( ‘my/coolwiidget’ );. Работает она, если на пальцах, следующим образом: делается ajax-запрос, которым грузится текст нужного скрипта, потом ищутся в тексте все js.include, делается их подгрузка, после чего делается eval …
Фреймворки для создания MVC-подобной архитектуры на javascript
Выбирал между backbone (habrahabr.ru/blogs/javascript/118782/) и knockout (http://habrahabr.ru/blogs/javascript/121926/). Для выбора полезно почитать stackoverflow.com/questions/5112899/knockout-js-vs-backbone-js-vs. В итоге выбрал knockout — менее монструозный и лично мне показался понятнее, к тому же не навязывает REST и не требует дополнительных библиотек. Он реализует паттерн MVVM, который, думаю, больше подходит для клиентской части web-приложения, чем MVC. На сайте есть подробные доки и …
Kyoto Tycoon: интересное noSQL хранилище/кэш
Kyoto Tycoon в общем-то аналог MemcacheDB, но некоторые утверждают, что Kyoto Tycoon лучше. Думаем использовать. Там всё просто (через API Memcached): $kyoto = new Memcached();// для persistent: $kyoto = new Memcached( ‘heyhey’ ); $kyoto->addServer( ‘127.0.0.1’, ‘22122’ );// kyoto // $kyoto->addServer( ‘127.0.0.1’, ‘11211’ );// memcached $kyoto->set( ‘my_key’, array( ‘key1’ => array( 1 ), ‘key2’ => null …
Lazy load баннеров
Сегодня из-за очередных проблем с sol.adbureau.net было решено реализовать ленивую загрузку баннеров. Начальное решение было использовать iframe, но идея была не очень удачной, т. к. могут быть проблемы с подсчётом кликов, да и модные картинки, увеличивающиеся при наведении, будут вести себя странно. А как этот iframe смотрится в разных браузерах — это вообще сказка) В …