Cегодня рассмотрим задачу по кодированию строки по алгоритму Хаффмана и ее декодированию. Также в ходе решения задачи будет рассмотрен тест алгоритма, позволяющий оценить его корректность. Читать далее...

Так вышло, что последние 2 месяца я прохожу курс по алгоритмам на stepic.org от CSC ну и благодаря курсу я узнал много нового и вспомнил много того, чего забыл. Пока память свежа, решил опубликовать решение одной из задач... Читать далее...

Для предоставления пользователю возможности создавать записи в базах данных прежде всего хочется себя обезопасить от хулиганства. Для этого, пользователь, добавляющий записи должен быть зарегистрирован на сайте. Хочется, чтобы регистрация осуществлялась в 1-2 клика и без ввода с клавиатуры. В этом нам может помочь регистрация пользователей через социальные сети. Воспользуемся библиотекой django-allauth для организации авторизации через социальные сети. Установка библиотеки довольно подробно описана в документации. Единственная проблема, с которой я столкнулся при добавлении приложения - это то, что в этом проекте есть шаблон base.html, и если добавить это приложение до своих приложений и у вас есть тоже шаблон base.html, то возможно пересечение шаблонов. Я это обошел, переназвав свой шаблон в main.html. Читать далее...

Всем привет! Ну вот, прослушал и проделал урок 48 в школе на spb-tut.ru. Добавил новую форму в практикум, соединил форму с моделью, теперь можно добавлять данные из формы в модель. Пока что сделал не безопасно и добавить данные в модель может кто угодно, но завтра или послезавтра эту "дырку" закрою. Выложил результаты практикума на github. Сам пример можно посмотреть на этой странице. Раньше писал информацию о коде на закладке "Код" практикумов, но теперь буду его отпралять на GitHub и давать ссылку на конкретные коммиты или просто на папки проекта. Читать далее...

Друзья, сегодня решил отправить свой проект на GitHub. Во первых - контроль версий будет полезен мне. Во вторых, все желающие смогут посмотреть мой исходный код и: - что то взять себе как пример - указать мне на мои ошибки В третьих - при разборе примеров я смогу давать ссылки на файлы на GitHub... Читать далее...

Постарался и сделал на выходных блог на своем сайте. http://practice.keyfire.ru/blog/ Можно почитать, как я его делал из этих статей: http://practice.keyfire.ru/blog/2-kak-sdelat-blog-na-django-1-8-ot-nachala-i-do-kontsa/ http://practice.keyfire.ru/blog/3-kak-sdelat-blog-na-django-1-8-ot-nachala-i-do-kontsa-chast-2/ После того, как сделал блог, перенес все данные в него из этого блога. Также сделал RSS-фид: http://practice.keyfire.ru/feed/ и зарегистрировал его в нескольких каталогах. Статьями блога можно делиться и можно комментировать.

Исходя из планов по улучшению контента, изменил страницу первоначального практикума по добавлению страниц с базами данных. Сделал реальное добавление и возможность просмотра видеофайлов с Youtube. Для этого немного изменил модель и воспользовался возможностями Bootstrap для открытия модального диалога. Не обошлось и без Javascript, в частности jQuery. Результат можно посмотреть тут: http://practice.keyfire.ru/info/video/. Изменения на сайте практикума:

Модуль models.py

class Video(models.Model):  # Видео
    class Meta:
        db_table = 'app_info_video'
        ordering = ['-date']

    # Описание модели
    title = models.CharField(verbose_name='Заголовок', max_length=200)
    description = models.TextField(verbose_name='Описание', blank=True)
    date = models.DateTimeField(verbose_name='Добавлено')
    thumbnail = models.CharField(verbose_name='Эскиз', max_length=200, default='')
    video_url = models.CharField(verbose_name='URL видео', max_length=200, default='')
Добавлены новые поля для возможности проигрывания видео с Youtube:
  • thumbnail - адрес эскиза картинки Youtube
  • video_url - адрес видео с Youtube
  • ordering = ['-date'] - для упорядочивания видео по дате добавления

Шаблон video.html

Подробно рассматривается в группе Google Python + Django framework 1,7; 1,8; 1,9 - школа В. Бовсуновского. - только для пользователей spb-tut.ru Добавлена возможность проигрывать видео в модальном окне, для этого:
  • Добавлен модальный диалог из Bootstrap3.
  • Добавлен скрипт, который при закрытии видео очищает поле и заново его устанавливает. Без этого скрипта видео не будет останавливаться при закрытии модального диалога. В скрипте используются события Bootstrap3, обрабатываемые с помощью jQuery.

Добавил к статьям на сайт http://practice.keyfire.ru/ социальные кнопки. Теперь понравившимися статьями можно делиться. Это даст мне мотивацию писать хороший контент, которым я бы сам поделился. Использовал самые простые кнопки https://tech.yandex.ru/share/. Чтобы задачи по урокам хорошо добавлялись в социальные сети, пришлось поколдовать над заголовками страниц. Теперь у каждой страницы свой уникальный заголовок, что достаточно удобно. Можно открыть несколько страниц и не запутаться. Отображение кнопок обернул в блок {%if %} {% endif %}. Все это потребовало изменений в модели, управляющей отображением уроков. Соответственно в нее добавил поля

social = models.BooleanField(verbose_name="Соц.сети", default=True)
tab_title = models.CharField(verbose_name='Заголовок закладки', blank=True, max_length=200, default="")
Также изменил context_processor, чтобы можно было управлять отображением заголовка закладки.

Bootstrap стал использовать с первых дней практики. Сразу оговорюсь, что я разработчик, а не дизайнер. Я очень люблю простой дизайн и Bootstrap мне очень понравился своей чистотой. До 34 урока я использовал пакет bjango-bootstrap3 и предлагаемый им способ подключения библиотеки bootstrap с сайта Google, после 34 урока я установил Bootstrap к себе на сайт. Bootstrap хорош всем, в том числе и кастомизацией. Для своего сайта мне понадобилось, чтобы код Python который я размещаю на сайте отображался как в pycharm. Ну мне очень хотелось однообразия. Для раскраски кода я использовал http://highlightjs.org c палитрой highlight/styles/idea.css При использовании этой палитры рамка элемента pre отображается серым цветом, а мне очень хотелось, чтобы она отображалась белым. На странице http://getbootstrap.com/customize/ можно задать настройки элементов Bootstrap . Что я и проделал и для тэга pre раздела Code. Продолжение тут http://forum.codenet.ru/q75471

Результат выполнения домашнего задания доступен на странице http://practice.keyfire.ru/info/help/ Благодаря новым возможностям по отображению кода и комментариев на странице теперь на сайте можно достаточно просто добавлять результаты выполнения уроков. Также добавил на сайт на страницу О проекте http://practice.keyfire.ru/info/project/ круговую диаграмму, на которой отражается процент прохождения практикума. Сегодня с сыном провел отличный день. Ходили в Аквапарк. Купались, катались с горок, отдыхали в лагуне, плавали, кормили рыбок, в общем отлично провели время. В выходные нужно отдыхать.