Как стать автором
Обновить
29
0
Роман Чаднов @w0nder

Пользователь

Отправить сообщение

Страх, риск и хакинг

Время на прочтение1 мин
Количество просмотров1.4K
Интересную книгу с провокационным названием опубликовал американский писатель Гивер Талли (Gever Tulley).



На первый взгляд как будто о детях. Но это исключительно хакерская книга (в смысле лайфхака и социальной философии), которая поднимает глубокие проблемы, возникающие перед современным рафинированным обществом.
Читать дальше →
Всего голосов 143: ↑120 и ↓23+97
Комментарии136

Как я покупал iPod touch на ebay, и как мне пришло не совсем то…

Время на прочтение5 мин
Количество просмотров39K
Привет, image
Я хочу рассказать интересную историю, как я покупал на Ebay плеер Apple iPod touch 32Gb. О том, как я использовал «снайпер», пользовался посредником и о том какие проблемы возникли. Я уже больше полугода делаю покупки из-за рубежа и особых проблем по поиску того что мне надо не возникло.
image
Читать дальше →
Всего голосов 329: ↑295 и ↓34+261
Комментарии284

Много книг, хороших и разных

Время на прочтение20 мин
Количество просмотров96K
Мой список книг, которые мне хочется прочесть, изрядно вырос, спасибо топику “запасаемся на зиму”. Под катом вы обнаружите список книг, составленный по комментариям в том топике.
Читать дальше →
Всего голосов 139: ↑124 и ↓15+109
Комментарии89

Несколько jQuery плагинов, которые вы возможно станете использовать

Время на прочтение2 мин
Количество просмотров1.9K

qTip





qTip — это бесплатный плагин для jQuery для создания подсказок (tooltip). Данный плагин кроссбраузерный, имеет обширные возможности к настройке и содержит множество функций, таких как: закругленные углы без применения изображений, speech bubbles (изображение речи как в комиксах), а так же эффекты — fade (постепенное исчезновение изображения), slide и возможность создания собственных эффектов. Данный плагин уже включает пять готовых тем, но можно создавать свои темы без особых усилий. Кроме того можно создавать окна диалогов, изменять цвет фона подсказки и места, где она отображается.

Скачать | Демо

Читать дальше
Всего голосов 96: ↑76 и ↓20+56
Комментарии30

Facebook Connect: ссылки на руководства по аутентификации

Время на прочтение1 мин
Количество просмотров648
Взаимодействие с социальными сетями — весьма важная и актуальная задача для разработчиков веб-проектов. По мере того как в России начинается медленный переток пользователей в Фейсбук, уже отмеченный Норвежским Лесным, проблема освоения Facebook Connect становится всё более злободневной.

Некоторые CMS вроде BuddyPress уже включают функционал FBC в базовый дистрибутив.

Поискав по Хабру, нашёл лишь наработки по созданию приложений внутри FB, но конкретно о использовании системы аутентификации FB почти материалов нет.

Ниже я предлагаю обзор ссылок по руководствам, плагинам и библиотекам для подключения к Facebook Connect. К сожалению, все материалы на английском. Предлагаю всем желающим дополнить материал.

Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии3

Touch Diamond. Дубль два

Время на прочтение1 мин
Количество просмотров554
На проходящей в Барселоне MWC 2009 компания HTC анонсировала свой новый коммуникатор Touch Diamond 2.


Аппарат оборудован 3,6-дюймовым сенсорным дисплеем, разрешение которого составляет 480х800 пикселей. На борту — процессор Qualcomm с тактовой частотой 528 МГц, 512 Мб встроенной памяти и 288 Мб ОЗУ, слот для карт формата microSD и 5-мегапиксельная камера.

Изюминка функциональности этого красавца (в самом деле, это те же люди, которые сделали G1?) — сенсорная панель под дисплеем, при помощи которой можно изменять размер отображаемых на экране объектов.

Работает Touch Diamond 2 под управлением ОС Windows Mobile.

В продаже телефон появится в начале второго квартала 2009 года.

via electronista
Всего голосов 35: ↑32 и ↓3+29
Комментарии48

Поисковая оптимизация. Часть 1 — внутренние факторы

Время на прочтение3 мин
Количество просмотров1.8K
Рекомендации по html-коду, вёрстке и немного — по копирайтингу. Актуально для февраля-2009

Это не очередной список «101 совет, как достичь идеала в том-то», которых полно в интернете. Это «инсайдерская информация» SEO-компании, ведущей более 600 проектов. Перечислено то, на что мы обращаем внимание, начиная поисковую оптимизацию. Разумеется, не всё получается реализовать (например, движок сайта что-то не позволяет, а где-то пункты противоречат(!) друг другу). Ничего страшного. Если больше половины рекомендаций получается реализовать, то это уже очень хорошо!
Читать дальше →
Всего голосов 115: ↑73 и ↓42+31
Комментарии79

Заполнение пустого пространства плавающими блоками. Разбор 2-ух примеров реализации. От Яндекса и от студии Лебедева.

Время на прочтение1 мин
Количество просмотров713
Недавно столкнулся с проблемой реализации плавающих блоков в одном интернет магазине. Суть в том, что товары выводятся в виде блоков. По задумке количество блоков по горизонтали должно меняться в зависимости от разрешения экрана. Использовать float в тупую не удалось из-за не фиксированой высоты блоков.
Немного погуглив я ничего не нашел. Зато вспомнил, что видел подобное на Яндексе и в магазине студии Лебедева.
Сообственно я выкладываю сюда для ознакомления то, что вы и сами можете найти в указанных источниках. Все, что я сделал это почистил от лишнего кода. Если-бы я нашел подобный пост раньше это сэкономило-бы мне время.

смотрим...
Всего голосов 23: ↑20 и ↓3+17
Комментарии18

API Playground

Время на прочтение1 мин
Количество просмотров1.6K
api playground

На прошлой неделе Google официально представил очередную разработку в рамках «20% личного времени» которая вышла за пределы компании. Инженер по разработке Бен Лисбаккен (Ben Lisbakken) создал API Playground, с которым изучение кода для Google Javascript API становится легким, как никогда ранее.

API Playground предоставляет простой и удобный интерфейс написания и тестирования javascript-кода для восьми сервисов Google, использующих API, это: Maps, Search, Feeds, Calendar, Visualization, Language, Blogger, Libraries и Earth. Кроме того новый API Playground скоро станет способом по умолчанию для демонстрации примеров JS-кода. Еще одна хорошая новость заключается в том, что гигант перевел часть исходных кодов под лицензию Apache 2.0 для использования в Playground.

На данный момент на «игровой площадке» (playground) доступно более 170 javascript-шаблонов, начиная от простых списков, слайдшоу основанных на медиа-RSS и заканчивая KML-файлами Google Earth.

Playground отлично подойдет новичкам, желающим узнать немного больше о Google API — кроме понятных примеров использования в API Playground присутствует так же поддержка специалистов.

Google Code Blog via ReadWriteWeb
Всего голосов 71: ↑59 и ↓12+47
Комментарии15

UserAPI — Конструктор Социальных сетей на базе ВКонтакте

Время на прочтение2 мин
Количество просмотров78K
Павел Дуров заявил об открытии нового проекта: User API.

Сервис предназначен для быстрого построения соцсети (заявленное минимальное время — 5 мин.)
Новые сети будут использовать данные сети ВКонтакте (пользователи, фото, etc.).

При монетизации проекта: доходы будут делиться на 60% хозяину, 40% User API. Подробнее в уловиях пользования User API.

Документация проекта.

Для тех кто не зарегестрирован ВКонтакте копипаста из блога Дурова:
Читать дальше →
Всего голосов 83: ↑74 и ↓9+65
Комментарии153

Shadowbox.js

Время на прочтение1 мин
Количество просмотров1.4K
Король среди всех Lightbox клонов.

Коротко о Lightbox

Это скрипт написанный на JavaScript который добавляет на сайт визуальный эффект увеличения изображения в виде окна.

Коротко о Shadowbox.js

Красивый, удобный, мульти-язычный, гибкий и быстрый Lightbox. Легко подключается, работает во всех современных браузерах. Имеет хорошую документацию и адаптируется под большинство JavaScript библиотек. Сам скрипт может быть самостоятелен и не требует подключения других библиотек.

Прошу любить и жаловать: тык.

P.S. Если вы захотите я смогу написать более подробно как работать с данной прелестью.
P.S.2 Данный продукт в отличии от Lightview бесплатен, и не требует покупки лицензии.
Всего голосов 17: ↑16 и ↓1+15
Комментарии15

Исследуем Google Reader API

Время на прочтение6 мин
Количество просмотров2.2K
Возникла необходимость сделать интерфейс к гуглоридеру, отличный от стандартного. Использование стандартного ajax reader api не удовлетворило из-за коммерческих ограничений. API, описанное во множестве импортных блогов отказывалось нормально работать, поэтому на вооружение было взято расширение firebug всеми любимого браузера. В результате получилась небольшая подборка полезных для работы с ридером URLов, которыми хочу поделиться с общественностью.

disclaimer: эта подборка не претендует на полноту, а лишь подытоживает некоторый результат, который позволил решить поставленную задачу, а именно: получить список подписок, непрочитанные элементы по подписке, отметить элементы как прочитанные, отметить подписки как прочитанные. Вся остальная информация с легкостью может быть получена с использованием официального руководства.

Для реализации взаимодействия клиентского ajax-интерфейса с google.com/reader/ будем использовать посредника на php+curl.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии10

Десять маленьких программ, без которых неуютно жить

Время на прочтение5 мин
Количество просмотров8K
Заменяем диспетчер задач
Управляем автозагрузкой и следим за состоянием системы
Устанавливаем переключение раскладки
Создаем виртуальные рабочие столы
Сохраняем все заметки в одно место, не задумываясь ни о чем, кроме текста
Ускоряем навигацию по винчестеру
Ставим плагины к проводнику Windows и радуемся
Легко и быстро удаляем папки-файлы «занятые другими процессами»
Копируем и перемещаем быстрее и качественнее
Перестаем парится с кодировками, заменив блокнот

и как мы это сделаем?
Всего голосов 180: ↑139 и ↓41+98
Комментарии306

Как замутить стартап: пособие вебдванолера (часть 1).

Время на прочтение6 мин
Количество просмотров991
Итак. Отбрасываем сомнения. Ставим перед собой портрет Брина в рамочке. Запасаемся "Дошираком" на полгода вперед и начинаем стартапить. На какую тему? Плевать — миллиарды баксов зовут нас вперед. Тем, кто готов, но к чему — не знает, посвящено это пособие.
Читать дальше →
Всего голосов 54: ↑45 и ↓9+36
Комментарии57

Версионирование структуры БД в MySQL: MySQL Migration with PHP

Время на прочтение3 мин
Количество просмотров13K
Когда БД проекта вырастает за пределы трех-пяти таблиц, продолжая при этом постоянно изменяться, на свет рождаются неудобства обмена изменениями между разработчиками. Проблема стара как мир, но инструмента удовлетворяющего мои требования я в ноябре 2009го найти не сумел.

Мои требования к инструменту очень просты:
  • Как бы я не издевался над структурой данных в приложении, инструмент должен уметь изменить структуру в другой инсталляции приложения так, чтобы она была идентична моей.
  • System requirements: PHP и MySQL — не более того.
  • Бесплатность.
  • Открытость.


Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии51

Архитектура ExtJS приложений: подход со стороны Zend Framework

Время на прочтение8 мин
Количество просмотров3.7K
В дополнение статей oddy про архитектуру RIA-приложений на основе ExtJS хочу предложить свой, альтернативный подход к данной проблеме. Он состоит в использовании ZendFramework-подобного каркаса xFrame, написанного на JavaScript. Под катом — описание ключевых элементов системы, ссылки на демо приложение и исходный код.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии12

Как FriendFeed использует MySQL для хранения данных без схемы

Время на прочтение7 мин
Количество просмотров3.2K

Условия


Мы используем MySQL для хранения любых данных FriendFeed. Наша база данных растёт вместе с числом пользователей. Сейчас у нас более 250 миллионов записей, это записи пользователей (post'ы), комментарии, оценки («likes»)

По мере того как росла база данных, мы время от времени имели дело с проблемами масштабируемости. Мы решали проблемы стандартными путями: slave-сервера, используемые только для чтения, memcache для увеличения пропускной способности чтения и секционирование для увеличения пропускной способности записи. Однако, по мере роста, использованные методы масштабируемости привели к затруднению добавлению новой функциональности.

В частности, изменение схемы базы данных или добавление индексов к существующим 10-20 миллионов записей приводили к полной блокировке сервера на несколько часов. Удаление старых индексов требовало времени, а не удаление ударяло по производительности, так как база данных продолжала использовать их на каждом INSERT. Существуют сложные процедуры с помощью которых можно обойти эти проблемы (например создание нового индекса на slave-сервере, и последующий обмен местами master'a и slave), однако эти процедуры настолько тяжелые и опасные, что они окончательно лишили нас желания добавлять что-то новое, требующее изменение схемы или индекса. А так как наши базы сильно распределены, реляционные вещи MySQL как например JOIN никогда не работали для нас. Тогда мы решили поискать решение проблем, лежащее вне реляционных баз данных.

Существует множество проектов, призванных решить проблему хранения данных с гибкой схемой и построением индексов на лету (например CouchDB). Однако, по-видимому ни один из них не используется крупными сайтами. В тестах о которых мы читали и прогоняли сами, ни один из проектов не показал себя стабильным, достаточно зрелым для наших целей (см. this somewhat outdated article on CouchDB, например). А все это время MySQL работал. Он не портил данные. Репликация работала. Мы уже в достаточной мере понимали все его узкие места. Нам нравился MySQL именно как хранилище, вне реляционных шаблонов.

Все взвесив, мы решили создать систему хранения данных без схемы поверх MySQL, вместо использования полностью нового решения. В этой статье я попытаюсь описать основные детали системы. Так же нам любопытно как другие сайты решили эти проблемы. Ну и мы думаем, что наша работа будет полезна другим разработчикам.
Читать дальше →
Всего голосов 116: ↑110 и ↓6+104
Комментарии60

Увеличиваем скорость загрузки сайта используя lazy-load изображений

Время на прочтение1 мин
Количество просмотров70K
Сейчас многие сайты насыщены графикой в разных видах: аватары, иллюстрации к постам, галереи и тп.

Читатели блога «Клиентская оптимизация» как никто другой знают цену лишних запросов к серверу.

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

Читать дальше →
Всего голосов 68: ↑62 и ↓6+56
Комментарии75

Оптимизация JSON датасетов (массивов записей)

Время на прочтение11 мин
Количество просмотров9K
Под датасетом будем понимать массив записей JavaScript:

var dataset = [
  { foo: 'xxx', bar: xxx' },
  { foo: 'yyy', bar: 'yyy' },
  ...
  { foo: 'zzz', bar: 'zzz' }
];


Это обычное JavaScript представление некоторой части таблицы (или выборки) из реляционной базы данных: имена свойств соответствуют именам столбцов, значения свойств — значениям полей записи.

Читать дальше →
Всего голосов 46: ↑27 и ↓19+8
Комментарии34

Фокус с HeadScript (сборка в один файл)

Время на прочтение8 мин
Количество просмотров3.2K
Если сделать так:
<?php $this->headScript()->appendFile('/js/my1.js');?>
<?php $this->headScript()->appendFile('/js/my2.js');?>
<?php $this->headScript()->captureStart() ?>
  var action = '<?php echo $this->baseUrl ?>';
<?php $this->headScript()->captureEnd() ?>

<?php echo $this->headScript(); ?>
<?php echo $this->magicHeadScript(); ?>


то вместо чего-то типа такого:
<script type="text/javascript" src="/js/my1.js"></script>
<script type="text/javascript" src="/js/my2.js"></script>
<script type="text/javascript">
  var action = '/123';
</script>

получим на выходе:
<script type="text/javascript" src="/cache/js/1b1004a203..._compressed.js"></script>

Читать дальше →
Всего голосов 74: ↑60 и ↓14+46
Комментарии129

Информация

В рейтинге
Не участвует
Откуда
Redwood City, California, США
Дата рождения
Зарегистрирован
Активность