вторник, 24 августа 2010 г.

Похожие посты на blogger.com

Несколько дней назад подключил автоматическое добавление похожих постов для своего блога. Но просто добавить виджет/гаджет - это не очень интересно. Интересно разобраться, как он работает. Мне очень повезло, что Майк, автор виджета, не просто выложил его в свободный доступ, но еще написал несколько постов о том, как установить, настроить виджет, а также о том, как он работает. Для меня, как для человека, имеющего лишь общее представление о JavaScript, разобраться в работе виджета, является чуть ли не идеальным способом в изучении нового языка..

воскресенье, 22 августа 2010 г.

Blogger.com: как убрать панель навигации

Для того, чтобы скрыть панель навигации для вашего блога достаточно зайти в Dashboard/Design/Edit HTML и в Edit Template добавить CSS определение для панели:
#navbar-iframe {
   display: none !important;
}
Удаление этого кода, вернет панель обратно

пятница, 20 августа 2010 г.

Возрождение проекта kvlite

Около 8 месяцев назад я начал небольшой проект-эксперимент, который получил название kvlite - библиотека, для работы с базами данных ключ-значение. По ходу работы над библиотекой было сделано несколько постов: kvlite или key value datastore на базе sqlite3, типы данных в sqlite.

четверг, 19 августа 2010 г.

Заметки о Dynamo, распределенной системе хранения данных

В противоположность реляционным базам данных, Dynamo - это распределенная система хранения данных, в которой информация не разбивается на таблицы, а хранится в виде объектов, доступных по ключу. Наиболее простой путь к пониманию, как работает система, можно рассмотреть на примере запроса информации о товаре. Например, запрашивая книгу на сайте amazon.com по URL http://www.amazon.com/gp/product/1590597699, вы получаете страницу с описанием книги, отзывами других людей, списком похожих книг и т.д. Для создания этой страницы Amazon выполнит большое количество запросов к базе данных. Ключевая информация о книге в данном случае берется из URL (уникальный код для каждого товара Amazon - 1590597699).

понедельник, 16 августа 2010 г.

Структура баз данных ключ/значение

Для реляционных баз данных определить структуру таблицы не составляет большого труда, так как количество и типы полей строго определены. Для баз данных ключ/значение значения представляют собой сериализированные объекты. Если поле не определено в настоящий момент, оно попросту не заносится в базу данных. Благодаря этому, число полей для каждого объекта может отличаться. Примером могут служить статьи из RSS лент: для одних статей автор один, для других авторов может быть несколько. Может отличаться число тегов, не быть краткого описания статьи и многое другое. Гибкость структуры приводит к появлению сложностей, с которыми необходимо научиться работать.

суббота, 14 августа 2010 г.

Создание коллекции видео материалов GoogleDevelopers

В предыдущих постах Простой Google Reader API и Простая реализация хранения данных на примере технологий FriendFeeds рассказывалось о небольших библиотеках сбора и хранения данных. В данном посте оба эти подхода будут объединены с целью создания коллекции видео материалов презентаций GoogleDevelopers.

пятница, 13 августа 2010 г.

Простой Google Reader API

До настоящего времени Google Reader API официально не вышел, но это не останавливает разработчиков находить методы для работы с этим сервисом. Один из лучших ресурсов с описанием API для Google Reader находится по станице проекта pyfeed. Этот документ наиболее полно описывает методы и принципы работы.

среда, 11 августа 2010 г.

Индексация URL

Наверное те, кто читал пост Брета Тейлора “Как FriendFeed использует MySQL для хранения schema-less данных” могли обратить внимание на пример создания индексной таблицы для хранения ссылок.

CREATE TABLE index_link (
    link VARCHAR(735) NOT NULL,
    entity_id BINARY(16) NOT NULL UNIQUE,
    PRIMARY KEY (link, entity_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Как видно из примера, URL индексируются в виде строк. Но так ли эффективно хранить URL в чистом виде?

воскресенье, 8 августа 2010 г.

Простая реализация хранения данных, на примере технологий FriendFeed

Можно проводить много времени в чтении о различных технологиях хранения данных, пытаться сравнивать, выбирать, что лучше. Но, наверное, самый правильный путь - это попробовать каждую из технологий. Установить, настроить, протестировать на реальных задачах. Но что делать, если технология не находится в свободном доступе, она закрыта или используется внутри компании, и все, что мы о ней знаем, что она существует. Примеры: BigTable (Google), SimpleDB (Amazon), FluidDB (fluidinfo).