суббота, 6 октября 2012 г.

Настройка django проекта


Ниже приведен файл настроек для проекта django c использование south, admin-tools + добавлен staticFinder   + Далее static finder

Читать далее

среда, 26 сентября 2012 г.

Windows 8 :: Hotkeys

Win - открывает и скрывает интерфейс Метро, так же в интерфейсе Метро вы сможете начать вводить название нужной программы для её поиска
Win - D - покажет старый добрый рабочий стол
Win - C - отобразит новое меню в котором вы сможете быстро и удобно расшарить файлы, выполнить поиск и изменить различные настройки
Win - I - открывает панель настроек для текущего приложения, изменить громкость, настроить беспроводные сети, настроить яркость и завершить работу
Win - Z - открывает панель приложений для запущенной Метро программы
Win - H - открывает панель Метро расшаривания файлов
Win - Q - открывает поиск Метро приложений
Win - W - открывает поиск Метро по настройкам
Win - F - открывает поиск Метро по файлам
Win - K - открывает панель устройств
Win - . (точка) - прикрепляет приложение Метро к одному из краёв экрана
Win - Shift - . (точка) - прикрепляет приложение Метро к другому краю экрана
Win - J - переключает между приложениями Метро, которые были прилеплены к одному из краёв экрана
Win - Tab - переключает между запущенными приложениями в Метро стиле

ссылка на оригинал: http://www.agarkov.org/2012/03/windows-8.html
Читать далее

Быстрая установка Django Debug Toolbar

  1. Скачать и установить sudo pip install django-debug-toolbar
  2. Добавить следующее middleware в файл настроек: 
    • debug_toolbar.middleware.DebugToolbarMiddleware',
  3. Добавить в настройки прослушивающий ip INTERNAL_IPS = ('127.0.0.1',)
  4. Добавить debug_toolbar в INSTALLED_APPS
Читать далее

пятница, 14 сентября 2012 г.

Проверка рейтинга голосования на сайте ibuildapp.com

Недавно решил поучаствовать в конкурсе по созданию мобильных приложений. Давно была хорошая идея («Удобный поиск экомобиля») и решил её реализовать. Однако конкурс проводил Сбербанк и в качестве платформы для создания приложения был выбран сайт russia.ibuildapp.com, на котором все приложение приходится делать с помощью их «чудо» инструментов, в общем прекрасный инструмент для домохозяек при помощи, которого можно делать много ****  =). Коль уже было принято решения участвовать, то решил просто отписать версию для браузера, чтобы можно было через мобильник с ней работать. С результатом и с идей можно вот здесь ознакомиться: http://photopuma.ru/eco/
В ходе голосование за приложение появились забавные тролли, которым не понравилось, что приложение находится в первых местах и в один прекрасный момент у меня появилось около ста голосов с «1». Приложение с 3го места весело укатилось на 27ое. К счастью о приложении опубликовали в одном журнале np-mag.ru/articles/otdaj-svoj-golos-za-ekomobil и в паре пабликов в ВК, за что им спасибо. И приложение начало обратный путь на верх. Однако, вот такие нападки бывают часто. Написать голосовалку для накручивания не проблема, но коль решил действовать честно буду идти до конца =)

Написал небольшой скрипт на python для проверки рейтинга чтобы можно было легко смотреть динамику голосованию и отслеживать такие моменты.  Для написания использовал библиотеку PyQuery, она позволяет искать элементы DOM'a при помощи синтаксиса схожего с селекторами jQuery.

#!/usr/bin/python
from pyquery import PyQuery as pq
import urllib
import csv
from datetime import datetime

def Rating(number):
# f = csv.reader(open('stats.csv', 'rb'), delimiter=' ', quotechar='|')
 now = datetime.now()
 f = csv.writer(open('stats.csv', 'a'), delimiter=' ', quotechar='"', quoting=csv.QUOTE_MINIMAL)
 //Open page 
 d = pq(url='http://russia.ibuildapp.com/projects.php?action=info&projectid=%s' % number)
 //Search by id 
 avg_rating = d('#avg_rating')
 num_votes = d('#num_votes')   
 //Search bold element in paragraph with text_large and grey_text classes
 views = d('p.text_large.grey_text b')
 print "now = %s \navg = %s \nvotes= %s \nviews = %s" % (now, avg_rating.html(), num_votes.html(), views.html())
 #f.write("%s %s %s" % (avg_rating.html(), num_votes.html(), views.html()))
 f.writerow([now, avg_rating.html(), num_votes.html(), views.html()])

if __name__ == '__main__':
 Rating('320387')

  Кстати, за приложение можно проголосовать здесь: http://goo.gl/4B87b

«Экомобиль» — передвижной пункт приема опасных отходов. Сегодня каждый экологически ответственный петербуржец может абсолютно бесплатно сдать в мобильный пункт приема «Экомобиль» следующие виды опасных отходов:
  • люминесцентные и энергосберегающие лампы,
  • ртутные термометры,
  • батарейки,
  • оргтехнику,
  • автопокрышки (не более 4-х штук)
  • бытовую химию,
  • лаки и краски,
  • лекарства с истекшим сроком годности.
Более подробную информацию можно найти на официальном сайте.
Читать далее

Написание большого плагина на jQuery

Как писать плагины для определенной функциональности для jQuery - понятно, а если нет то можно ознакомиться здесь http://docs.jquery.com/Plugins/Authoring. Возникает вопрос что делать когда таких функций становится много? Принял для себя решения ввести подобие пространства имен. Например вводим пространства в соответствии с функциональными блоками pagination и facet_filter.
(function ($) {
  options: {
    //…
  }
  methods: {
    init: function(){
        //Обращение к методам внутри блоков
        methods.pagination.init();
        methods.filter.init();
    },
    get: function (option) {
      if (options[option])
        return options[option];
      else
        methods.error('Option ' + option + ' does not exist in SATIN');
      },
    pagination: {
      init: function () {
        //…
      },
      render: function(){
        //…
      },
      destroy: function(){
        //…
      }
    },
    filter: {
      init: function () {
        //…
      },
      render: function(){
        //…
      },
      destroy: function(){
        //…
      }
    },
  }
  $.fn.OurBigPlugin = function (method_name) {
    //…
  }
})(jQuery);
Теперь необходимо придумать как к таким блокам обращаться:
$.fn.OurBigPlugin = function (method_name) {
        var namespace = '',
            method = '';
 
        if (typeof method_name === 'string') {
            if (method_name.split('.').length > 1) {
                namespace = method_name.split('.')[0];
                method = method_name.split('.')[1];
            } else {
                method = method_name;
            }
        }
 
        if (typeof method_name === 'object' || !method_name) {
            return methods.init.apply(this, arguments);
        } else if (namespace) {
            return methods[namespace][method].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if (method) {
            return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
        } else {
            $.error('Method ' + method + ' in ' + namespace + ' namespace does not exist on OurBigPlugin');
        }
    };
Теперь вызывать функции можно следующим образом:
$().OurBigPlugin("pagination.loadpage", 5)
Читать далее

среда, 20 июня 2012 г.

Django :: debug toolbar quickstart

  1. pip install django-debug-toolbar
  2. Добавить в MIDDLEWARE_CLASSES
    'debug_toolbar.middleware.DebugToolbarMiddleware',
  3. Указать свой ip в качестве прослушивающего
    INTERNAL_IPS = ('127.0.0.1',)  
  4. Добавить debug_toolbar  в INSTALLED_APPS
  5. Указываем необходимые поля
DEBUG_TOOLBAR_PANELS = (
    'debug_toolbar.panels.version.VersionDebugPanel',
    'debug_toolbar.panels.timer.TimerDebugPanel',
    'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
    'debug_toolbar.panels.headers.HeaderDebugPanel',
    'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
    'debug_toolbar.panels.template.TemplateDebugPanel',
    'debug_toolbar.panels.sql.SQLDebugPanel',
    'debug_toolbar.panels.signals.SignalDebugPanel',
    'debug_toolbar.panels.logger.LoggingPanel',
)
Подробнее ознакомиться с настройкой django debug toolbar можно здесь (https://github.com/django-debug-toolbar/django-debug-toolbar)
Читать далее

вторник, 19 июня 2012 г.

Python :: PIL под Windows 8 x64

Проблема: не получается установить PIL при помощи pip и easy_install выдает ошибку - "Unable to find vcvarsall.bat"

Решение: В поисках решения нашел сайт, на которым выложены скомпилированы модули. Скачиваем пробуем установить и получаем новую задачу: "Python version 2.7 required, which was not found in registry". 
Данный баг уже зарегистрирован и ждет своего решения (http://bugs.python.org/issue6792), cуть заключается в том что установщик ищет положение Python'a через реестр по адресу: 
HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.7\InstallPath. 
Это значение можно скопировать из  
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\InstallPath. 


Запускаем снова установщик и убеждаемся что все работает. 



Читать далее

воскресенье, 17 июня 2012 г.

Windows 8 :: Многопользовательский режим

Задача сделать параллельный доступ к программам на Windows 8 для себя (сижу за компьютером) и девушки (заходит по RDP со слабенького ноутбука). Ситуация оказалась аналогичной как и в седьмой версии, а именно все так же не работает реально одновременная работу двух пользователей на одном компьютере. Не из-за каких-либо технических причин, а из-за искусственных ограничений (в общем политика такая).
Существует патч от человека по имени Peter Kleissner. Патч можно скачать перейдя вот по этой ссылке. При установке ОС должна перезагрузиться два раза.
Теперь можно подключаться с удаленной машины и работать.
Читать далее

понедельник, 2 апреля 2012 г.

HTML5 :: Анимация easing

Подсказка по анимации . Есть возможность использовать как в CSS, правде не все функции  так и при помощи jQuery 
Ссылка на сайт шпаргалки с анимацией: http://easings.net/index.ru.html
Читать далее

Blur JS

jQuery плагин для создания эффекта blur для любых элементов страницы.
Ссылка на демо 
Ссылка на сайт проекта: http://www.blurjs.com/

Читать далее

Python :: Обучение от Google

Страница на Google Code University - Google Python class. Курс лекций посвященный обучению языку программирования Python. Целевая аудитория новички, хорошо владеющие другими языками.


Читать далее

Python репетитор для алгоритмов

Приложение показывает изменение стека и кучи на каждом шаге выполнения кода. Этакий дебагер для изучения алгоритмов. 
Разработан для курса по программированию в MIT. Есть несколько примеров и заданий. 
Ссылка на страницу: http://people.csail.mit.edu/pgbovine/python/tutor.html#
Читать далее

jQuery для адаптивной верстки (резиновой)

Прелести адаптивной верстки давно многим известны. Далее приведены jQuery плагины которые могут помочь достичь стоящего результата в этом нелегком деле.

Первые два отлично подходят при совместном использование css фреймворков типа 960 Grid System.

Isotope

Сайт проекта: http://isotope.metafizzy.co

Можно отметить приятную анимацию при изменении размера. 
Функционал: 
  • Фильтрация
  • Сортировка
  • Infinity scroll как аналог пагинации 
  • Добавление новых элементов 
  • Выбор layout mode ( http://isotope.metafizzy.co/demos/layout-modes.html )
  • и многое другое


jQuery Mansory

Сайт проекта: http://masonry.desandro.com


Функционал примерно тот же что и у Isotop'a

jFontSize

Изменение размера шрифта по нажатию.
Сайт проекта: http://www.jfontsize.com/

Fit Text

Динамическое изменение размера текста.
Сайт проекта: http://fittextjs.com/

Elastislide

Страница плагина: http://tympanus.net/Development/Elastislide/
отзывчивая карусель для изображений. Есть несколько режимов: 
  1. при изменении ширины меняется размер изображений;
  2. при изменение ширины меняется количество изображений;
  3. комбинированный, при достижении определенной ширины одно меняется вторым


В дополнение интересный вариант интерфейса от команды tympanus.net.
Ссылка на страницу: http://tympanus.net/Tutorials/CSS3ContentNavigator/index5.html


Читать далее

Heroes III Might and Magic на Android


Недавно ощутил себя в детстве =) Получилось установить третьих героев на планшет, такое ощущение что цвета и звуки в мире изменились. Жаль что в компании вылетает, но можно поиграть в быстрые сценарии.


Процесс установки:
  • Скачать VCMI c маркета http://goo.gl/fqIYD.
  • Запускаем его, даем создать файлы.
  • Скачать игру. Можно взять архив с установленный игрой с файлообменника narod.ru.
  • Копируем все файлы в папку  app-data/eu.vcmi
  • Запускаем и радуемся возвращением в прошлое. 
Так же на маркете нашел Heroes II

qrcode
qr code for vcmi
qrcode
ссылка на Heroes III
qrcode
Heroes II
Читать далее

вторник, 27 марта 2012 г.

Типографика :: Выбор шрифта

Отличная схема для выбора шрифта для книг, логотипов, газет и приглашений.

Выбор шрифта
Читать далее

воскресенье, 25 марта 2012 г.

CMS на Django

Для django уже существует весьма большое количество адекватных cms. На сайте djangopackages.com есть статья со сводной информацией  по существующим на текущий момент системам управления контента для django

Читать далее

суббота, 24 марта 2012 г.

Релиз Django 1.4


Список изменений на djangoproject
https://docs.djangoproject.com/en/dev/releases/1.4/
Шпаргалка по django 1.4
http://media.revsys.com/images/django-1.4-cheatsheet.pdf
Читать далее