Архив за 16 декабря 2019 - 3

tl;dr

github.com/QratorLabs/fastenum

pip install fast-enum

Зачем нужно перечисление (enum)

(если вы все знаете — опуститесь до секции «Перечисления в стандартной библиотеке»)

Представьте, что вам нужно описать набор всех возможных состояний сущностей в собственной модели базы данных. Скорее всего, вы возьмёте пачку констант, определенных прямо в пространстве имен модуля:

# /path/to/package/static.py:
INITIAL = 0
PROCESSING = 1
PROCESSED = 2
DECLINED = 3
RETURNED = 4
...

… или как статические атрибуты класса:

class MyModelStates:
  INITIAL = 0
  PROCESSING = 1
  PROCESSED = 2
  DECLINED = 3
  RETURNED = 4

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

Однако, и константа модуля, и класс со статическими атрибутами страдают от внутренней природы объектов Python: все они изменяемы (мутабельны). Можно случайно присвоить значение своей константе во время выполнения, а отладка и откат сломанных объектов — отдельное приключение. Так что вы можете захотеть сделать пачку констант неизменяемыми в том смысле, что количество объявленных констант и их значения, на которые они отображаются, не будут изменяться во время выполнения программы.
Читать полностью »

Компания Corsair, специализирующаяся на игровых периферийных устройствах и компьютерных компонентах, сообщила о достижении соглашения о покупке производителя игровых контроллеров SCUF Gaming. Ожидается, что сделка, также охватывающая обширный портфель патентов, будет завершена в течение следующих 30 дней. Ее финансовая сторона не разглашается.

Роскосмос построит лифт для Луны

На космодроме Восточный, в понедельник 16 декабря, глава Роскосмоса сообщил, что Россия может заработать на новой лунной гонке. Корпорация планирует построить посадочный модуль, задачей которого будет курсировать между орбитальной базой и поверхностью Луны. Он будет перевозить как государственные, так и коммерческие полезные нагрузки, что, в перспективе должно привести к окупаемости отечественной лунной программы.

Читать полностью »

Приветствую!

Электронная игра Крестики-Нолики. К чему я пришел - 1

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

Читать полностью »

Компания Huawei открыла программу публичного бета-тестирования фирменной оболочки EMUI 10 на основе свежей версии операционной системы Android 10 для смартфонов Huawei Mate 10, Huawei P20, а также Honor 8X и Huawei Nova 5 Pro. 

Пользователи Huawei Mate 10, Huawei P20 и Honor 8X могут опробовать Android 10

Читать полностью »

tl;dr

github.com/QratorLabs/fastenum

pip install fast-enum

What are enums

(If you think you know that — scroll down to the “Enums in Standard Library” section).

Imagine that you need to describe a set of all possible states for the entities in your database model. You'll probably use a bunch of constants defined as module-level attributes:

# /path/to/package/static.py:
INITIAL = 0
PROCESSING = 1
PROCESSED = 2
DECLINED = 3
RETURNED = 4
...

...or as class-level attributes defined in their own class:

class MyModelStates:
  INITIAL = 0
  PROCESSING = 1
  PROCESSED = 2
  DECLINED = 3
  RETURNED = 4

That helps you refer to those states by their mnemonic names, while they persist in your storage as simple integers. By this, you get rid of magic numbers scattered through your code and make it more readable and self-descriptive.

But, both the module-level constant and the class with the static attributes suffer from the inherent nature of python objects: they are all mutable. You may accidentally assign a value to your constant at runtime, and that is a mess to debug and rollback your broken entities. So, you might want to make your set of constants immutable, which means both the number of constants declared and the values they are mapped to must not be modified at runtime.
Читать полностью »

Компания App Annie подвела итоги за десять лет и назвала самые скачиваемые приложения. Глобальным лидером стал Facebook и его мессенджер, а также WhatsApp и Instagram, которые также принадлежат Facebook.

Команда популярного бенчмарка AnTuTu опубликовала официальные результаты тестирования новой флагманской платформы Snapdragon 865 производства Qualcomm. 

В AnTuTu объявили нового рекордсмена по производительности среди смартфонов

Читать полностью »

Компания Xiaomi представила новую умную розетку со встроенным шлюзом для устройств умного дома. Полное название гаджета — Xiaomi MIJIA Smart Socket Bluetooth Gateway Edition.

Первую умную розетку компания Xiaomi выпустила еще в 2014 году. После этого было выпущено несколько новых версий, включая MIJIA Smart Socket Enhanced Edition, которая дополнительно получила два разъема USB, позволяющих также заряжать мобильные устройства.

Привет! Предлагаю Вашему вниманию перевод статьи «Make These Changes to Meet Web Design Accessibility Standards» автора Richard Pilton

Что такое доступность?

Доступность (всё чаще мы её так и называем Accessibility) — это дизайн продуктов, устройств или услуг, которые могут использовать как можно больше людей, включая людей с ограниченными возможностями, такими как нарушение зрения, двигательные трудности, трудности в обучении или глухота.

Внесите эти изменения, чтобы соответствовать стандартам доступности веб-дизайна - 1

Плюсы доступности

Главное преимущество успешного проектирования доступной платформы — сделать ваше приложение или веб-сайт доступным для всех, но есть немало других преимуществ.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js