среда, 23 января 2008 г.

Потоковое видео - это можно!

Дать пользователям возможность показать себя в конкурсе с помощью видеоролика - 
это будет круто, подумал я. Осталось добавить поддержку потокового видео в сервис.
Это оказалось совсем несложно, все элементарно:
 - Адрес видеоролика YouTube выглядит примерно так: http://www.youtube.com/watch?v=CtQjOkL6YlM (или http://ru.youtube.com/watch?v=CtQjOkL6YlM если это RuTube)
 - Идентификатор видеофайла здесь находится как значение параметра - CtQjOkL6YlM
 - Адрес к превью - http://img.youtube.com/vi/CtQjOkL6YlM/default.jpg
Что-бы поместить плеер в страницу нужно заюзать следующую конструкцию:

<object width='425' height='355'>
<param name='movie' value='http://www.youtube.com/v/CtQjOkL6YlM&rel=1'>
</param>
<param name='wmode' value='transparent'>
</param>
<embed src='http://www.youtube.com/v/CtQjOkL6YlM&rel=1' type='application/x-shockwave-flash' wmode='transparent' width='425' height='355'>
</embed>
</object>
Значения параметров width и height можно свободно варьировать.

Вот собственно и все дела с потоковым видео :)

Центровка в DIV по вертикали - хак для IE

Написав в CSS "vertical-align: middle;" можно получить вертикальное выравнивание контента внутри DIV в Firefox, Opera, Safari. Но не в Internet Explorer.

<div class="contest_logo">
<img src="http://www.blogger.com/{{%20featured_contest.contest.get_logo%20}}" />
</div>

Высота DIVа класса "contest_logo" фиксированная. Это рамка логотип конкурса. Конкурсы выводяться списком. Вот здесь.
Но вот картинки-логотипы имеют разную высоту. И их нужно выровнять внутри рамки по вертикали.

Решение для "нормальных" броузеров:
.contest_logo {
width: 252px;
height: 213px;
padding: 4px;
border:1px solid #9dbaec;
text-align: center;
display: table-cell;
vertical-align: middle;

}

Но в IE это не работает. Погуглив немного, нашел элегантное решение:
.contest_logo img {
vertical-align: middle;
margin-top: expression((213-height)/2 + "px");
}

IE поддерживает использование в CSS оператора expression(), внутри которого
можно поместить код на JavaScript.

вторник, 22 января 2008 г.

Документация по Django в одном файле

Один хороший человек взял и скомпилировл всю документацию из
http://www.djangoproject.com/documentation/
в виде CHM-файла. Честь ему и слава!

Скачать можно отсюда:
http://charupload.wordpress.com/2007/12/02/django-documentation-chm/
(1,3Мб)

з.ы.: только что скачал. Файл регулярно обновляеться ;)

вторник, 15 января 2008 г.

Всему своё время

Есть время собирать камни, и есть время выносить мусор. Или как-то так. 

Когда же оно наступает, это "правильное время" что-то делать? ИМХО, тут нужно положиться на чутье, сигналы от подсознания. Когда подсознание тихо шепчет - "давай, действуй", - вот тогда и наступило время Икс.

У нас в сервисе не было предусмотрено места для рекламы. С другой стороны, мысли размещать контекстную рекламу на страницах были. Вчера послеобеда (угу, кто же на голодный желудок работает) решил добавить на главной странице панель для 10ти свежих комментариев. Симпатично получилось. И динамично, что тоже плюс для ботов поисковых систем. Можете посмотреть.

И вот тут до меня дошло! На остальных страницах ведь тоже появилась эта панель. И если на главной странице её назначение - выводить комментарии, - то на остальных страницах она пустует. Немного поправив CSS я сделал е пригодной для размещения стандартных баннеров 150х200. До трех штук на странице. Уже сейчас количество страниц превышает 200 (страницы конкурсов, участников конкурсов, списков участников и т.д.).

Вечером того же дня для пустующих рекламных площадок нашелся рекламодатель. Вот так - всему своё время.

понедельник, 14 января 2008 г.

Что же тебе нужно?

Сегодня пытался выбить из потенциального заказчика признание, что же ему нужно на_самом_деле? Победа над конкурентами, успех! Да? А мне почему-то показалось - больше функций, картинок, текста. Чем сложнее представление о проекте с самого начала, тем больше вероятность затягивания.

Мы поставили в проекте "Конкурсоф.Нет" в приоритете не функциональность. Приоритет - запуск в продакшн. Да, вы наверное подумаете, что это глупо - предоставлять пользователям не рабочую версию программы. И разумеется будете правы.

Но, я говорю о _работоспособном_ веб-приложении. Вся прелесть Веба в том, что можно проводить обновление незаметно для пользователей. Повторю - пользователям не требуется устанавливать новую версию сервиса каждый раз, когда они заходят на сайт.

Когда мне нужно написать пару строк текста, я напишу его и в обычном текст-боксе. Однако, большинство разработчиков сервисов почему-то считают, что без WYSIWYG редактора ну просто не обойтись. Плюс еще пару-тройку таких "жизненно важных" функций, и запуск сервиса откладываеться на месяц, два и т.д.

Простите, но к этому времени мы уже получим долю рынка!

Почитайте Getting Real на ночь. Очень протрезвляет.
  • Меньше возможностей
  • Меньше опций и настроек
  • Меньше структура компании
  • Меньше встреч и абстракций
  • Меньше обещаний
Да, вот так это работает.

воскресенье, 13 января 2008 г.

Дисклаймер

Мой друг (а теперь и партнер по стартапу) давно мечтал проводить конкурсы. Сколько я его помню, он носился с этой идеей. Еще у него была одна болезнь, к которой судя по моим личным наблюдениям, склонны начинающие веб-программисты. "Нужно написать свой движек! Движек - это ключ" и т.д.

В начале декабря у меня было довольно много свободного времени (странно, но у меня почему-то всегда оно есть), и одного вечера мы обсуждали глобальные проблеммы развития социальных сервисов. Как принято у нас в екс-ссср - на кухне.

Тема проведения конкурсов опять всплыла. И по необьяснимому стечению обстоятельств на это время у меня был прототип социального сервиса. Вот за что я люблю смесь Питон+Джанго, так это за молниеносное прототипирование.

Ок-ей, сказал я через две недели - будем делать сервис. Сколько себя помню, у меня складывается такое ощущение, что каждой идее нужно помариноваться. У меня срок мариновки идей аккурат две недели.

Вот и весь дисклаймер :)

Со Старым Новым Годом, друзья!

Первую запись в блоге хочется посвятить чему-нибудь приятному, настраивающему на хороший лад. Например - сказкам. Рассказывайте своим детишкам сказки, импровизируйте и будьте оригинальны. И еще раз - С Новым Старым Годом!