• Просмотр sqlite на html?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Так. Хотя, на мой взгляд - это форменный разврат.
    Ответ написан
    Комментировать
  • Как правильно понимать бэнчмарки PHP & Python?

    Stalker_RED
    @Stalker_RED
    Если учесть специфику работы 99.99% веб-проектов, то всем плевать. Серьезно.

    А если вам не плевать, то проводите реальные тесты на реальной нагрузке, с реальным железом. И включайте все кеши и оптимизации какие найдете - вас же производительность интересует, а не сравнение синтетики с синтетикой.

    Если почитать блоги яндекса или гугла, то можно заметить, что они десятки разных языков и платформ используют. И не редко бывает ситуация когда "эта штука написана на perl'е в 2004 году, и когда она начала тормозить нам оказалось дешевле поставить еще три сервера, чем переписать ее на более шустрый язык". Суровая реальность.
    Ответ написан
    Комментировать
  • Как вы программируете используя слепой набор?

    @res2001
    Developer, ex-admin
    Не использую слепой набор для кода, т.к. не нужно.
    А вы всегда пишете код как диктант? А думать когда?
    У меня не уходит много времени на именно написание, гораздо больше занимает разнообразный анализ, тестирование и отладка.
    Ответ написан
    3 комментария
  • Как ускорить сравнение?

    longclaps
    @longclaps
    Самый быстрый и самый жадный до памяти способ вот:
    from collections import defaultdict
    
    d = defaultdict(list)
    for file in (чо-то там):
        d[basename(file), size(file)].append(file)
    for (nm, sz), flist in d.items():
        if len(flist) > 1:
            print("**", nm, sz, "**")
            for file in flist:
                print(file)
    Ответ написан
    7 комментариев
  • Настройка админка Django: Как отобразить поля из одной модели на превью другой?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Правильнее и проще было бы сделать UserInfoAdmin инлайном для UserAdmin. Но можно добиться и использования полей связанной модели:

    from six import with_metaclass
    from django.contrib import admin
    from django.db import models
    
    def getter_for_related_field(name, admin_order_field=None, short_description=None):
        related_names = name.split('__')
        def getter(self, obj):
            for related_name in related_names:
                obj = getattr(obj, related_name)
            return obj
        getter.admin_order_field = admin_order_field or name
        getter.short_description = short_description or related_names[-1].title().replace('_',' ')
        return getter
    
    
    class RelatedFieldAdminMetaclass(type(admin.ModelAdmin)):
        def __new__(cls, name, bases, attrs):
            new_class = super(RelatedFieldAdminMetaclass, cls).__new__(cls, name, bases, attrs)
            for field in new_class.list_display:
                if '__' in field:
                    setattr(new_class, field, getter_for_related_field(field))
            return new_class
    
    
    class RelatedFieldAdmin(with_metaclass(RelatedFieldAdminMetaclass, admin.ModelAdmin)):
        def get_queryset(self, request):
            qs = super(RelatedFieldAdmin, self).get_queryset(request)
            select_related = [field.rsplit('__',1)[0] for field in self.list_display if '__' in field]
            model = qs.model
            for field_name in self.list_display:
                try:
                    field = model._meta.get_field(field_name)
                except models.FieldDoesNotExist:
                    continue
                if isinstance(field.rel, models.ManyToOneRel):
                    select_related.append(field_name)
            return qs.select_related(*select_related)
    
    
    @admin.register(UserInfo)
    class UserInfoAdmin(RelatedFieldAdmin):
        list_display = ['user', 'user__first_name', 'user__last_name', 'user__email', 'position']
        list_display_links = list_display
        list_filter = ['user__is_staff', 'position']
        search_fields = ['user__username', 'user__first_name', 'user__last_name', 'user__email', 'position', 'phone', 'location']
    Ответ написан
    Комментировать
  • Что использовать, int, float или double в современном игровом движке?

    maaGames
    @maaGames
    Погроммирую программы
    И то и то и то. В видеокарту double лучше не передавать (особенно в карточки nvidia), поэтому float. В физическом движке лучше double, либо вещественное число с фиксированнй точкой (читай int/int64).
    У вас ошибка в суждениях. 1мм - это много или мало? Для линейного размера нормально? А для углового? А если пять раз повернуться по часовой стрелке и три раза против часовой, при этом координата сохраняется с точностью до миллиметра? Если поворачиваем корабль, длиной в 300 метров? А если карандаш, длиной 7 сантиметров? А если это моргает персонаж? Т.е. нужно использовать те типы данных, которых достаточно для представления тех данных, с которыми работаете. Причём, они вполне могут конвертироваться друг в друга, возможно, с потерей точности.
    Ответ написан
    Комментировать
  • Доступ к железу, минуя API под Windows - возможно или нет?

    GavriKos
    @GavriKos
    Да легко. Открываете отверткой крышку системника/ноута - и вуаля, доступ к железу без winAPI.
    Короче неясно сформулировали.
    Ответ написан
    Комментировать
  • Доступ к железу, минуя API под Windows - возможно или нет?

    abyrkov
    @abyrkov
    JavaScripter
    Поскольку вы ясно сформулировали, отвечу тоже ясно: Возможно.
    Ответ написан
    1 комментарий
  • Какую версию документации читать по Django?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Самую свежую.
    Ответ написан
    Комментировать
  • Сжатие данных типа lz5, кому может быть надо?

    Arris
    @Arris
    Сапиенсы учатся, играя.
    То есть вы хотите взять код под открытой лицензией, изменить в нём пару строк и потом его продать?

    Совесть? Нет, не слышали.
    Ответ написан
    4 комментария
  • Что с pip'ом в Python?

    sim3x
    @sim3x
    LMAO

    в консоли нужно вводить
    если не в консоли ОС, то в консоли пичарма
    Ответ написан
    Комментировать
  • Telegram: Как сделать отображение кнопок на IOS и Android одинаковым?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Никак, это нужно либо модифицировать клиент на IOS и Андроид, к чему у вас нет доступа, либо слать текст, который везде влезает в кнопку.
    Ответ написан
    Комментировать
  • Правильно ли объясняется в тексте почему в 1 кб 1024 байт?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Нет, неправильно.
    То, что было в перфокартах для контроля четности - это оставьте перфокартам, контроль четности и кодирование данных никак не связаны с обозначением кило и 1024. И уж тем более 1025 вообще далеко от ИТ.

    Все проще.
    Берем 1 бит, можем оперировать двумя значениями 0 и 1
    2 бита - 4 значения, 0-3
    3 бита - 8, 0-7
    4 бита - 16, 0-15
    5 бит - 32, 0-31
    6 бит - 64, 0-63
    7 бит - 128, 0-127
    8 бит - 256, 0-255
    9 бит - 512, 0-511
    10 бит - 1024, 0-1023

    Нет такого набора бит, чтобы мы могли оперировать ровно 1000 значений. 9 бит мало, а 10 бит позволяют оперировать уже 1024 значениями. Ограничиваьт себя искусственно нет смысла.
    Поэтому на железном уровне в качестве адресации используются степени двойки, чтобы максимально эффективно использовать все используемые биты и память.
    Следовательно ближайшее к 1000 "компьютерное" число это 1024, отсюда в килобайте 1024 байт.

    Для бизнеса это оказалось не очень удобно. И вообще много технических моментов обычным пользователям непонятно почему и как, например с теми же жесткими дисками, когда объем неотформатированного диска и отформатированного может отличаться на заметные процентов 10-15.
    Кроме того, в системе Си, приставки кило, мега, и так далее всегда означали 1000 чего-то. Поэтому с исторически сложившимся 1024 в ИТ отрасли сложилась некомфортная ситуация. Для исправления и появились новые названия, кибибайты, мегибайты, а килобайты и мегабайты по общепринятой системе Си теперь кратны 1000. Но это важно для стандартизации, маркетинга, а не для программирования.

    В программировании ничего не изменилось, и как бы их не называли кибибайт или килобайт, при программировании оперируют степенями двойки, а не десятки.
    Ответ написан
    Комментировать
  • Как мне отсортировать кверисет?

    sim3x
    @sim3x
    П.С. Ответы: "добавить поле date_updated" или "переведи кверисет в лист и реверсни" - не подходят.

    Решения - нет
    Ответ написан
    Комментировать
  • Что такое Корреляция?

    longclaps
    @longclaps
    В трудное время живём.
    Ни википедии, ни лекций на ютюбе - ничего нет.
    До всего приходится доходить через распросы.
    А как доходить, если не доходит?

    зы И гугла нет.
    Ответ написан
    Комментировать
  • Почему процедурное программирование безопаснее ООП в работе с БД(php)?

    DevMan
    @DevMan
    чо за ересь? бросай курить и/или читать левые материалы.
    безопасность завит от того какое ты имеешь о ней представление и как его реализовываешь, а не от парадигмы программирования.

    кстати, в пыхе уже давно стандартом де-факто для работы с субд является пдо (хотя упорыши упорно продолжают пользовать всякий хлам). которое, сюрприз-сюрприз, имеет только объектный интерфейс.
    Ответ написан
    9 комментариев
  • Почему в Python выделяется столько байт под типы данных?

    @LashaPiliev Автор вопроса
    Нашел ответ в этой статье
    Ответ написан
    Комментировать
  • IDE для PostgreSQL?

    sim3x
    @sim3x
    psql
    Ответ написан
    Комментировать
  • Как можно правильно реализовать лайк/дизлайк в новостной сайте?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    IP адрес не годится в качестве идентификатора пользователя, он может измениться, он может быть выдан другому пользователю. Запись в куках (в кэше) тоже не годится, у пользователя может быть несколько компьютеров, пользователь может предоставить доступ со своего компьютера другому пользователю, в конце концов это может быть общедоступный компьютер. Если у вас на сайте предполагается система своих лайков, не привязанная к какой либо соцсети. То нужно делать авторизацию, присваивать пользователям идентификаторы, и регистрировать лайки по ним.
    В качестве счетчика лайков, логично будет хранить не просто счетчик у новости, а писать отдельную таблицу: id новости, id пользователя, лайк, дизлайк. Когда пользователь ставит лайк - искать его id + id новости, в этой таблице, и если есть, то ставить единицу либо в поле лайк, либо дизлайк.
    Для счетчика под новостью брать сумму лайков, дизлайков по id новости.
    Ответ написан
    Комментировать