кстати в фоксе колесико - это вообще супер! Если клацнуть им на ссылку - откроет в новой вкладке Если клацнуть по заголовку вкладки - закроет вкладку Если клацнуть по пустому месту в панели вкладок - откроет повторно последнее закрытое окно оч удобно! Ну и банальщина: если нажать в окне и потом двигать мышу - будет прокручивать (но это вообще везде в винде по-моему).
теперь тег CODE принимает параметр - язык. полный список: 'python', 'ruby', 'perl', 'php', 'css', 'xml', 'html', 'django', 'javascript', 'java', 'cpp', 'sql', 'smalltalk', '1c', 'axapta', 'delphi', 'rib', 'rsl', 'vbscript' есть режим автоподсветки auto, но он не всегда корректно определяет язык по умолчанию подветка отключена
class pid { private: int16_t lastProcessValue; ///< Last process value, used to find derivative of process value. int32_t sumError; ///< Summation of errors, used for integrate calculations int16_t P_Factor; ///< The Proportional tuning constant, multiplied with SCALING_FACTOR int16_t I_Factor; ///< The Integral tuning constant, multiplied with SCALING_FACTOR int16_t D_Factor; ///< The Derivative tuning constant, multiplied with SCALING_FACTOR int16_t maxError; ///< Maximum allowed error, avoid overflow int32_t maxSumError; ///< Maximum allowed sumerror, avoid overflow
public: /** * \brief Initialisation of PID controller parameters. * Initialise the variables used by the PID algorithm. * * \param p_factor Proportional term. * \param i_factor Integral term. * \param d_factor Derivate term. */ pid(int16_t p_factor, int16_t i_factor, int16_t d_factor);
/** * \brief PID control algorithm. * Calculates output from setpoint, process value and PID status. * * \param setPoint Desired value. * \param processValue Measured value. */ int16_t controller(int16_t setPoint, int16_t processValue);
/** * \brief Resets the integrator. * Calling this function will reset the integrator in the PID regulator. */ inline void reset_integrator(void) { sumError = 0; } };
{% if object.mutant %} <p id="mutant"><img src="{{ object.get_mutant_url }}" alt=""> <div id="description"> <p>Это персональный форумный эльф пользователя. <p>Изначально эльф — это порождение OpenID, его внутренняя сущность. Конкретная инкарнация этой сущности, безусловно, зависит от места ее проявления. И на форумах Cicero этот OpenID выглядит именно так. <p>Предполагается также, что поскольку OpenID человек выбирает себе сам, то призванный ему эльф отражает в какой-то степени и его — человека — собственную сущность. И хотя природа этой связи остается по большей части неизвестной, рекомендуется относиться к своему эльфу корректно. Как бы он или она ни выглядели. </div> {% endif %} </div>
# -*- coding:utf-8 -*- ''' Вспомогательные методы для расчета и кеширования времени последнего изменения страниц форума. Используются для if_modified_since. ''' from django.core.cache import cache from django.conf import settings
from cicero.models import Forum, Article
import md5
def cached(key_func): ''' Кеширующий декоратор. ''' def decorator(func): def wrapper(*args, **kwargs): key = str(key_func(*args, **kwargs)) value = cache.get(key) if not value: value = func(*args, **kwargs) cache.set(key, value) return value return wrapper return decorator
@cached(lambda request, slug=None, topic_id=None, *args, **kwargs: 'alc-%s-%s' % (slug, topic_id)) def latest_change(request, slug=None, topic_id=None, *args, **kwargs): ''' Запрос времени последнего обновления статей. ''' def prepare(qs): if slug: qs = qs.filter(topic__forum__slug=slug) if topic_id: qs = qs.filter(topic__id=topic_id) return qs.order_by('-created')
created_qs = prepare(Article.objects.all()) deleted_qs = prepare(Article.deleted_objects.all()) created_time = len(created_qs) and created_qs[0].created deleted_time = len(deleted_qs) and deleted_qs[0].deleted return (created_time and deleted_time and max(created_time, deleted_time)) or created_time or deleted_time or None