• Кто-нибудь использует очки для компьютера?

    @VOS71
    Доброго дня.
    Поделюсь своим опытом в использовании очков для КП. Я дизайнер, перепробовал немало очков из выше перечисленных брендов тоже. Желтые линзы меняют цвета, в моей профессии это не допустимо. На конец то по совету собрата по профессии наткнулся на линзы Blue cut цвета не меняют, картинку не искажают, глаза перестали жечь, продлил свой рабочий день как минимум на два-три часа.
    Ответ написан
    Комментировать
  • Как обуздать Django messages?

    winordie
    @winordie
    Лучшая документация -- исходники
    Давайте посмотрим как работает framework messages.

    https://github.com/django/django/blob/master/djang...
    def messages(request):
        return {
            'messages': get_messages(request),
            'DEFAULT_MESSAGE_LEVELS': DEFAULT_LEVELS,
        }
    ...
    def get_messages(request):
        if hasattr(request, '_messages'):
            return request._messages
        else:
            return []

    Так messages попадают на страницу. Т.е. они берутся из request._messages. Как же они туда попадают?

    https://github.com/django/django/blob/master/djang...
    class MessageMiddleware(MiddlewareMixin):
        def process_request(self, request):
            request._messages = default_storage(request)
    ...
    def default_storage(request):
        return import_string(settings.MESSAGE_STORAGE)(request)
    ...
    MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'

    Значит в request._messages у нас лежит FallbackStorage(request)

    Перейдем к нашему коду
    messages.error(request, 'Ваш диапазон дат занят для данного объекта.')

    Что тут происходит? Посмотрим:
    https://github.com/django/django/blob/master/djang...
    def error(request, message, extra_tags='', fail_silently=False):
        add_message(request, constants.ERROR, message, extra_tags=extra_tags,
                    fail_silently=fail_silently)
    ...
    def add_message(request, level, message, extra_tags='', fail_silently=False):
        if not isinstance(request, HttpRequest):
            raise TypeError("add_message() argument must be an HttpRequest object, "
                            "not '%s'." % request.__class__.__name__)
        if hasattr(request, '_messages'):
            return request._messages.add(level, message, extra_tags)  # *** THIS ***
        if not fail_silently:
            raise MessageFailure('You cannot add messages without installing '
                        'django.contrib.messages.middleware.MessageMiddleware')

    Ага, вызывается метод add знакомого нам объекта FallbackStorage.
    Ему передается в качестве параметров:
    - level = constants.ERROR = 40
    - message = 'Ваш диапазон дат занят для данного объекта.'
    - extra_tags = ''

    Посмотрим на этот метод
    https://github.com/django/django/blob/master/djang...
    def add(self, level, message, extra_tags=''):
            if not message:
                return
            level = int(level)
            if level < self.level:
                return
            # Add the message.
            self.added_new = True
            message = Message(level, message, extra_tags=extra_tags)
            self._queued_messages.append(message)
    ...
    def _get_level(self):
            if not hasattr(self, '_level'):
                self._level = getattr(settings, 'MESSAGE_LEVEL', constants.INFO)
            return self._level

    Из этого кода можно сделать вывод что сообщение попадает в очередь сообщений если его уровень более или равен тому который задан в settings.MESSAGE_LEVEL (по умолчанию = contants.INFO = 20)

    Таким образом чтобы добавлялись только наши сообщения необходимо:
    1) в settings.py установить
    # settings.py
    ...
    MY_SUPER_ERROR = 80
    MESSAGE_LEVEL = MY_SUPER_ERROR
    ...

    2) Во вью писать
    if not available_cars:
            carstoshow = None
            messages.add_message(request, settings.MY_SUPER_ERROR, 'Ваш диапазон дат занят для данного объекта.')
            return redirect('car_detail', pk=car_used_id)
    Ответ написан
    1 комментарий
  • Точность рекуррентной формулы?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вы вывели формулу получения k+1 элемента из k-го, а в программе используете её для получения k-го элемента из k-1. Это разные формулы.
    Ответ написан
    Комментировать
  • Какие книги посоветуете по python 3?

    zooks
    @zooks
    Frontend
    Лутц
    Ответ написан
    Комментировать
  • Django Admin как вывести ссылки?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Любое из полей ModelAdmin может быть функцией, формирующей всё, что заблагорассудится. Кусок из моего кода:
    @admin.register(Order)
    class OrderAdmin(admin.ModelAdmin):
        list_display = ('__str__', 'customer_link')
    
        def customer_link(self, obj):
            if obj.customer:
                return u'<a href="{0}">{1}</a>'.format(reverse('admin:auth_user_change', args=(obj.customer.pk,)), obj.customer)
            else:
                return obj.customer_fio
        customer_link.allow_tags = True
        customer_link.admin_order_field = 'customer'
        customer_link.short_description = Order._meta.get_field('customer').verbose_name.title()

    И для пущей наглядности кусок модели Order:
    @python_2_unicode_compatible
    class Order(models.Model):
        customer = models.ForeignKey(User, verbose_name=u'Заказчик', null=True, blank=True, related_name='orders')
        customer_fio = models.CharField(u'ФИО заказчика', max_length=150)
    Ответ написан
    Комментировать
  • Как удалить все файлы привязанные к модели?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Масса вариантов. Например:

    Вариант №1 - Правильное удаление файла при удалении экземпляра модели:
    from django.db.models.signals import pre_delete
    from django.dispatch.dispatcher import receiver
    @receiver(pre_delete, sender=AdvertPhoto)
    def advert_photo_delete(sender, instance, **kwargs):
        instance.file.delete(False)


    Вариант №2 - Тупое удаление всех файлов:
    import os
    for instance in AdvertPhoto.objects.all():
        os.remove(instance.photo.path)


    А чего именно нужно добиться?
    Ответ написан
  • Как разделить модель на несколько блоков в админке?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    В старые времена для поля sex нам хватало кортежа из двух значений!
    3a4723c5b1d626ad4e51aa020f658393.jpg

    Возможно, вам поможет django-modeladmin-reorder.
    Ответ написан
    1 комментарий
  • Кто-нибудь использует очки для компьютера?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Значит так комрады:
    Сижу за компом с 1989 года... по 8-16 часов в день. 2 месяца назад первый раз за 20 лет проверял зрение, проходил коммисию для водительских прав. Окулист был в шоке, зрение практически 100%.

    Не курю - очень важный фактор (муравьиная кислота разедает роговицу, сужение сосудов причина ндостаточного питания глазных мязов и т.д...). Так, что если курите будет только хуже, обмен свежего воздуха между глазом и очками снижается, и значит увеличивается концентрация муравьиной кислоты на роговице. В очках снижается общая подвижность глаза, а значит еще более снижается очистка и питание глазных мязов. Все болезни глаз в первую очередь от нарушения лимфатического и кровеносного обмена - это первопричина.

    Все другие факторы: освещеннось, тип монитора, длительность работы за компом - влияют на утомляемость, но никак на здоровье глаз. С возрастом просто критическая усталость у человека начинается раньше. Глаз это не слух, где идет механическая выработка. Это как механика и электроника - механика изнашивается, а электроника подвержена только радиационному воздействию. Сетчатку можно только сжечь ультрафиолетом или лазерным излучением например электро сваркой. А вот мышцы можно просто забить их же продуктами жизнедеятельности например молочной кислотой. И если лимфатическая система не чистит мышцы, будет спазм, а с очками он может стать хроническим и развиться косоглазие, дальнозоркость, близорукость или астигматизм. А если с кристалика будет плохой отток продуктов жизнедеятельности, то он потускнеет и будет катаракта.

    Для того что бы описанных выше являений не было, решение есть:
    • бросьте курить;
    • делайте зарядку для глаз, хотябы раз в день и при усталости (но лучше отдохнуть);
    • поставьте два монитора, тогда двигать глазами будете больше и будет лучше кровообращение и отвод лимфы (в очках ви будете двигать головой, а не глазами);
    • два раза в день по 1-му часу выходите на свежий воздух, например к турнику;
    Ответ написан
    2 комментария
  • Кто-нибудь использует очки для компьютера?

    xztau
    @xztau
    Я
    Заделяюсь опытом.
    Иногда пользую на работе заказанные в оптике компьютерные очки с линзами zeiss sola чтототам. Прозрачные антибликовые (слегка зеленоватые на отблеск).
    По опыту, в очках немного комфортнее сидеть, если долго. Но всё равно не то.
    Вообще, задача очков сейчас, срезать синий цвет убрать ультрафиолет и блики уменьшить. + Убрать мерцание от ламп дневного света (самое противное).
    Слышал совет от окулиста насчёт жёлтой линзы - защищает макулу, срезая тот самый синий цвет с ультрафиолетом, вредные для неё.
    В путешествии купил Jins PC Фильтр коричневатый, если совсем ярко - немного помогает. В остальном не удобно.
    Попались 3M 2822. Прикольно. По началу всё жёлтое - не привычно. Потом легче - увеличивают контраст, если пялить в темную тему редактора текста. Минус - небольшие загрязнения на линзе значительно ухудшают видимость + бликуют зверски. Но это так - эксперимент.
    Хочу себе gunnar попробовать с жёлтым светофильтром, но они, похоже, немного приближают (да и дорогие, заразы). Жду гиковых отзывов:) О гуннарах, вроде бы на гиктаймс что то писали.

    А вообще, присоединюсь к Avarskiy - регулируйте освещённость делайте перерывы каждый час и выполняйте зарядку для глаз (палминг (потереть ладони, чтобы тёплыми были, и накрыть ими глаза. Глаза открыть и расслабить, пытаясь глядеть далеко в темноту или представляя кошечек), зарядка). Обязательно отходите от монитора и смотрите вдаль, расслабляя мышцы. И чтобы монитор не мерцал - это важно!

    Извиняюсь за сумбурный ответ.
    Я очками заинтересовался, когда у меня появились точечки перед глазами. Сказали, что это сосудики и с этим придётся всю жизнь. Стало поздно очковать, ищу панацею:)
    Ответ написан
    5 комментариев
  • Кто-нибудь использует очки для компьютера?

    Считая , что очки не нужны. Главное вовремя отдыхать, делать зарядку для глаз. И вообще, если соблюдать определенные нормы пользования компьютером, то ничего с здоровьем не случиться. Надо хотя бы каждый час делать зарядку для глаз. Вставать, походить чуть чуть, а то из за того, что сидишь постоянно ниже пояса кровообращение замедляется, плохо работает, что может привести к многим заболеваниям внутренних органов, в особенности к заболеваниям половой системы. Через пару десятков лет не будет пенис вставать.
    Ответ написан
    4 комментария
  • Кто-нибудь использует очки для компьютера?

    maaGames
    @maaGames
    Погроммирую программы
    Во времена кинескопов хотелось купить, но тогда для меня они были слишком дорогие. В ЖК эру даже не уверен, что от "жёлтых" очков будет хоть какая-то польза. Дома у меня пассивное 3D и экран итак поляризованный, на работе дебильные лампы дневного света, от которых (моим) глазам гораздо хуже, чем от монитора.
    Если у вас глаза не устают, то не нужны никакие очки. Ну и сперва убедитесь, что сидите за компом при хорошем освещении. Если сидеть в полной темноте с "хакерской" выжигающей чёрно-зелёной палитрой, то никакие очки не помогут.
    Ответ написан
    Комментировать
  • Обводка неоднородная. Как исправить?

    HamSter007
    @HamSter007
    HTML/CSS верстальщик
    одной строкой input { ... border: 3px solid #ffd506; ... }
    Ответ написан
    3 комментария
  • Добавление в динамический массив объектов. Кто поможет?

    AtomKrieg
    @AtomKrieg
    Давай я поищу в Google за тебя
    if(places != nullptr){
    ...
    places[count_places - 1] = p; //здесь копируем
    } else{
      places = &p; //а здесь мы разыменовываем, а нужно делать new[]
     //а на следующем вызове UB из-за delete[], потому что places не выделялось через new[]
    }

    Надо так
    if(places != nullptr){
    ...
    } else{
      count_places = 1;
      places = new Patient[1];
      places[0] = p;
    }
    Ответ написан
    2 комментария
  • Добавление в динамический массив объектов. Кто поможет?

    Совет номер 1: используйте std::vector вместо массива. Это правда проще!
    Совет номер 2: используйте именно вектор от Patient, то есть по возможности не используйте указатели для хранения объектов.

    > Таким образом, как я передаю объект в метод, я смогу изменять его? Это то же, что и передача через указатель?
    Да, ссылки -- это, по сути, удобные указатели.
    > а что бы изменилось если бы я передавал через указатель?
    Пришлось бы писать лишние разыменования.
    Ответ написан
    24 комментария
  • Добавление в динамический массив объектов. Кто поможет?

    Да, сможете: вы по ссылке передаете объект, а не по значению
    Ответ написан
    6 комментариев
  • Для чего нужен файл apps.py в django?

    @arctblake
    Самое очевидное использование - сделать свой подкласс AppConfig'а и в методе ready делать импорт какого-то файла, например, signals.py, в котором указаны обработчики сигналов. Потому что если просто тупо создать файл signals.py, то Джанго понятия не будет иметь, что такой файл существует и что там есть обработчики
    Ответ написан
    1 комментарий
  • Есть ли видеохостинг с открытым API?

    @blinow99
    Работаю фотографом и дизайнером, занимаюсь сайтами
    dailymotion, rutube, ok.ru
    Ответ написан
    1 комментарий