• Как решить проблемы с Ubuntu 16.04?

    После месяца использования 16 вернулся на 14.04. Проблемы были похожие, не понравилась стабильность. Пока использую 14.04 и думаю еще не скоро перейду.
    P.S. такая же фигня и с серверной убунтой. 14 намного стабильнее.
    Ответ написан
    4 комментария
  • Как лучше организовать корзину в интернет магазине на Django?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Я реализовал корзину в redis. Использую для этого hash. Ключ хеша - id корзины.
    Добавлять товар можно одним запросом! Можно ставить TTL на корзину и она удалится автоматически, база данных основная не задействована! Сплошной cool!
    127.0.0.1:6379> HINCRBY cart:12345 item:4321 1
    (integer) 1
    127.0.0.1:6379> HINCRBY cart:12345 item:4321 1
    (integer) 2
    127.0.0.1:6379> HINCRBY cart:12345 item:4345 1
    (integer) 1
    127.0.0.1:6379> HINCRBY cart:12345 item:4345 1
    (integer) 2
    127.0.0.1:6379> HINCRBY cart:12345 item:3456 1
    (integer) 1
    127.0.0.1:6379> HINCRBY cart:12345 item:4321 1
    (integer) 3
    127.0.0.1:6379> HGETALL cart:12345
    1) "item:4321"
    2) "3"
    3) "item:4345"
    4) "2"
    5) "item:3456"
    6) "1"
    127.0.0.1:6379> HINCRBY cart:12345 item:4321 4
    (integer) 7
    127.0.0.1:6379> HGETALL cart:12345
    1) "item:4321"
    2) "7"
    3) "item:4345"
    4) "2"
    5) "item:3456"
    6) "1"
    127.0.0.1:6379>
    Ответ написан
    Комментировать
  • Как протестировать целостность БД?

    sim3x
    @sim3x
    Если СУБД закоммитило в БД запись частично, то в топку такую СУБД

    Ява тут не при чем. Тебе нужно лезть в код своей СУБД и смотреть как там все реализовано

    ПС лучше сейчас перейти на постгрес, чтоб не убить себя фейспалмами
    Ответ написан
    5 комментариев
  • Аналог Alphaskins для других языков существует ли?

    Avernial
    @Avernial
    Разрабатываю научное ПО на языке Python.
    Для Python есть PyQt4(5), в ней можно делать все что угодно, включая использование css для настройки элементов GUI.
    По умолчанию PyQt выглядит нативно для операционной системы.

    Определение красивый UI, очень размыто. Луший вариант это когда приложение не выделяется от приложений установленых в систему.

    Вот простой пример как использовать CSS для кнопки:

    from PyQt5 import Qt
    
    
    class Widget(Qt.QWidget):
    
        def __init__(self):
            super().__init__()
            layout = Qt.QVBoxLayout(self)
    
            button1 = Qt.QPushButton("Button 1")
            button2 = Qt.QPushButton("Button 2")
    
            layout.addWidget(button1)
            layout.addWidget(button2)
    
            button1.setStyleSheet("""
            QPushButton {
                background-color: green;
                border-style: outset;
                border-width: 2px;
                border-radius: 10px;
                border-color: beige;
                font: bold 14px;
                min-width: 10em;
                padding: 6px;
                }
            QPushButton:pressed{
                background-color: #4CAF50;
                color: white;
                border-color: black;
                border-style: inset;
                }
            """)
    
    
    if __name__ == '__main__':
        app = Qt.QApplication([])
    
        w = Widget()
        w.show()
        app.exec()
    Ответ написан
    1 комментарий
  • Как писать сайт на django? Стоит ил использовать applications для каждой подсистемы сайта?

    sim3x
    @sim3x
    Те туторы в которих все в куче - не смотри
    Вторые туторы следуют питон дзену
    Ответ написан
    Комментировать
  • Как работать с print?

    aRegius
    @aRegius
    Python Enthusiast
    print('lol')

    В 3-ем питоне скобки нужны.
    Ответ написан
    4 комментария
  • На каком из этих языков можно работать с определенной строкой файла, не загружая его в оперативную память?

    @nirvimel
    На любом из перечисленных языков.
    Ответ написан
    Комментировать
  • 2 вопроса по функциям. Python?

    @zelan
    Кратко обо мне не получится.
    Списки в питоне передаются по ссылке. Это значит, что передавая список в функцию, будет меняться переданный список, а не создаваться "копия" внутри функции.

    Если же ты хочешь создавать новый список, то в функцию надо передавать полную(глубокую) копию исходного списка, или создавать такую копию внутри функции и выполнять операции над ней.
    Ответ написан
    6 комментариев
  • Какой linux дистрибутив установить на нетбук ASUS eee PC?

    moropsk
    @moropsk
    У меня аналогичный аппарат, Atom + 1 гб памяти
    Долго перебирал и тестировал дистрибутивы.
    Основная задача была подобрать нетребовательный дистрибутив к железу
    (в основном работа в терминале и браузере)
    Собственно список лидеров по убывающей:
    Debian 8.5 Mate
    Xubuntu
    Mint XCFE
    Mint Mate
    Mint Cinamon
    Ответ написан
    1 комментарий
  • Какой linux дистрибутив установить на нетбук ASUS eee PC?

    @mazahistka16
    Ubuntu
    Ответ написан
    Комментировать
  • В чем разница между концепцией ООП в Python и в си-подобных языках?

    Как же вы так долго писали на java и не узнали о ключевом слове this?
    Ответ написан
    5 комментариев
  • Архитектура системы личных сообщений?

    @nirvimel
    Стоит ли использовать для этих целей MongoDB/MySQL?

    PostgreSQL или MySQL, но не в коем случае не NoSQL, который выглядит как панацея только поначалу.
    Правильная проектировка структуры БД - залог производительности и нормальной разработки.
    Ошибки в структуре БД - бомбы, подложенные под развитие проекта и дальнейшую разработку.

    Хранить все сообщения в одной таблице в виде текста?

    Все сообщения в одной таблице. Но в базе у вас в итоге окажется 10-20 или больше таблиц с разными метаданными, без которых тексты сообщений не имеют смыла.

    Если разбивать данные на шарды,

    Не надо этого делать.

    Что думаете про Node.js + Websockets для этих целей?

    Node.js - тех, кто начинал свою программистскую карьеру с фронтенда, надо на пушечный выстрел не подпускать к принятию архитектурных решений в крупных проектах. Архитектура для архитекторов, js для фронтендеров.
    Websockets - чат предполагает push данных с сервера на клиент, а для этой задачи websockets почти не имеет реальных альтернатив на сегодняшний день. То есть все альтернативы - это костыли из времен до websockets.

    Как правильно хранить сообщения пользователей на разных серверах?

    Для начала нужно определиться с тем зачем это нужно. Потом постараться избавиться от этой опасной идеи.

    чтобы не пришлось потом переделывать на реальных пользователях.

    Переделывать все равно придется. Такова суровая реальность жизни.
    Ответ написан
    2 комментария
  • На сколько ресурса затратно операция получения даты - микросекунд с 1970 в современных языках?

    @nirvimel
    На большинстве (всех?) современных ОС получение времени - это функция ядра. Следовательно для пользовательского процесса в userspace это требует ровно один вызов в ядро, который представляет собой syscall, то есть программное прерывание. На стороне ядра код обычно тривиальный и заключается в получении значения переменной, в которой хранится время (эта переменная инкрементируется из обработчика прерывания таймера), и возврате этого значения через sysret, то есть возврат из прерывания. Поэтому основные временные затраты сводятся к исполнению syscall/sysret и сохранению/восстановлению контекста пользовательского процесса при входе/выходе в/из ядра.
    От единиц измерения (нано/мирко/милли) скорость вызова практически не зависит. Конвертация одних единиц в другие происходит на стороне пользовательского процесса, за это отвечают библиотеки и окружение конкретного языка, но эти вычисления составляют всего несколько машинных инструкций и не вносят значительный вклад общее время вызова.

    В Linux существуют несколько таймеров в ядре: высокого/обычного разрешения и переводимые/непереводимые назад, но получение времени происходит через одну функцию clock_gettime как бы по-разному это не выглядело в разных ЯВУ.

    В Windows стандартные механизмы GetSystemTime и GetTickCount выдают время только с миллисекундной точностью. А таймер высокого разрешения QueryPerformanceCounter предназначен только для измерения временных интервалов, его абсолютное значение не имеет смысла.

    Историческая справка: В реальном режиме работы x86 до тех пор, пока BIOS владеет аппаратным прерыванием таймера и таймер настроен по умолчанию (его еще можно перенастраивать), то есть с интервалом в 55ms и частотой в 18.2 герц, на каждый тик таймера инкрементируется четырехбайтное значение по абсолютному адресу 0:046C. Так что пользовательская программа (термин процесс тут не совсем применим) может получить значение времени мгновенно простым считыванием этого значения из памяти без каких-либо вызовов.
    Стоит отметить, что данный функционал не имеет никакого отношения к DOS или какой-либо ОС вообще, а прошит в BIOS любого x86-совместимого (даже современного) компьютера и действителен каждый раз при загрузке машины вплоть до момента перевода процессора в защищенный режим в момент загрузки ядра современной ОС.
    Ответ написан
    Комментировать
  • На сколько ресурса затратно операция получения даты - микросекунд с 1970 в современных языках?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    за время отвечает микросхема, которая постоянно хранит текущее значение.
    Получить текущее время с наносекундами или с микросекундами - совершенно одинаковые затраты.
    Вопрос в том, что вы подразумеваете под "слишком часто", поскольку вы можете получать не совсем корректные показатели.

    Скажем милисекунды уже могут быть неверными - каждые 10-100 милисекунд ядро ОС переключает выполнение между парралельными процессами, и запросить время 10 раз в секунду, уже может выдавать не истинное значение.
    Ответ написан
    Комментировать
  • Python не ставится библиотека?

    @vashaaa
    Юх с горы
    Решение: пересесть на линукс и забыть об таких вот гемороях
    Ответ написан
    1 комментарий
  • Может ли макбук останавливать вентилятор при низкой температуре?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    Да, конечно, у меня в повседневном состоянии он выключен, когда что потяжелее запускаю, включается.
    Ответ написан
    Комментировать
  • Как узнать сколько ключей в словаре имеют одинаковые значения?

    @fireSparrow
    from collections import Counter
    
    dct = {
            u'DC963983-0B06-47D4-8E09-9D12C98FEEE4': 3,
            u'DC963983-0B06-47D4-8E09-9D12C98FEEE4': 3,
            u'D2AEE06F-B0BF-41E9-8646-93F7B852F357': 6
        }
    
    values = dct.values()
    counter = Counter(values)
    
    print(dict(counter))


    UPD: Кстати, в вашем словаре из примера первый ключ повторяется дважды. Так делать нельзя, в словаре все ключи должны быть уникальны - иначе питон просто перезапишет первое значение вторым, и в словаре вместо этих двух элементов останется один. Поэтому для вашего примера мой скрипт выведет не то решение, которого вы ожидаете.
    На корректном словаре с уникальными ключами мой скрипт будет работать правильно.

    Если вам нужно, чтобы можно было использовать одинаковые ключи для разных элементов, то вам стоит использовать не словарь, а другую структуру данных. Например, список кортежей.
    Ответ написан
    4 комментария
  • Что делать с тем, что я постоянно переписываю почти весь код?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    У вас просто стоит цель сделать качественный и хороший код, а не сделать быстренько бизнес-проект и получить денег.
    С точки зрения роста как специалиста - это хорошо. С точки зрения работника за деньги - перфекционизм нужен в меру. У кода всегда есть цена. У рефакторинга есть цена.

    Все что в инете пишут про красивый код - это исключительно для того, чтобы его потом было проще переписывать и поддерживать. Потому что многие часто переписывают и правят.

    С вами все так, просто приоритеты расставлены пока что таким образом, что вы переписываете.
    Ответ написан
    1 комментарий
  • Django какой db использовать на production?

    @vashaaa
    Юх с горы
    postgresql
    Ответ написан
    Комментировать