Обновить
89
0
Сергей Шашков @ShashkovS

Менеджер продукта, методист, разработчик

Отправить сообщение
Есть такая лингвистическая игра «Почему не говорят».
Так вот, почему же они не хранят данные по адресу storeRutheniumInformation.data/scheme?

У меня машина трёхлетней давности мимо, зато есть телефон, мейл и ФИО из СДЭК'а… А у супруги — из яндекс.еды, СДЭК'а и wildberries.
Из моего дома на 256 квартир 137 «записей» у них в базе.
Плотно, очень плотно.

Кажется, пора сразу выкладывать все эти данные в открытую на госуслуги, чтобы было всё «официально». Раньше же были телефонные справочники, в которых были все номера города. Очень удобно было.«/sarcasm»
Если серьёзно, то иметь возможность всегда найти знакомого в городе, позвонить соседу сверху или владельцу вот-этой-перегородившей-машины было бы удобно. Но простор для недобросовестного использования данных тоже широчайший.
Курсы вообще в последнюю неделю «интересные»:
image
В плюсе среди top50 только USDC (понятно, чем обеспеченные), DAI (обеспеченный чужими вложениями эфира) и BUSD (binance'у типо верят).

В эти 5.9ГР входят НДФЛ, пенсионные и прочие социальные взносы (масштаб которых для Яндекса не очень понятен).

Если их добавить, то получится около 200к±50к

В Турции вроде можно работать на условный яндекс по туристической «визе» и туристическому ВНЖ. И доходы не от турецких компаний налогом не облагаются.
Интересное начнётся через полгода, когда работники потеряют налоговое резидентсво в РФ…
Что, впрочем, поменяет только НДФЛ с 13% до 30%, но можно так и продолжать.
Среди моих знакомых больше бежавших не-IT-шников, чем IT-шников (в штуках). Учителя, психологи, математики, биоинформатики, лингвисты. Ну и IT-шники само собой.
Утром в газете, вечером в куплете.
www.rbc.ru/technology_and_media/28/03/2022/6241eb729a79471262d1f647
Минцифры разослало мобильным операторам рекомендацию отказаться от безлимитных тарифов и сократить включенный интернет-трафик в пакетных предложениях. Это вызвано неопределенностью с поставками телекоммуникационного оборудования
А вы случаем ссылочкой в ЛС не поделитесь? За просто не ищется, всё забито «новостями». Спасибо!
Я вчера зарегался и перевёл 55USDT. Потом посмотрел комменты, оценил ситуацию и с деньгами попрощался. Однако днём сегодня они «пришли», и с карты мне даже удалось оплатить 54$ на zoom-лицензии.
Так что теоретически работает, но о-о-о-очень стрёмно.
Ещё у них перевод на общий USDT-кошелёк, поэтому разумно делать сумму заведомо уникальной (типа 10.7528). Не знаю, осмелюсь ли ещё раз так рискнуть полтинником для оплаты zoom'а через месяц.
Так вся зубная чувствительность в этом плане на границе зуб-десна. Поэтому и разницы никакой: у коронковой части зуба при «обычных» условиях тоже никакой чувствительности.
Имплант будет жёстко вкручен в кость, микроподвижности и живых клеток, которые эту подвижность учувствуют, уже не будет.
Визуально разделить группы можно. Вот пример из fractions.py:
_RATIONAL_FORMAT = re.compile(r"""
    \A\s*                      # optional whitespace at the start, then
    (?P<sign>[-+]?)            # an optional sign, then
    (?=\d|\.\d)                # lookahead for digit or .digit
    (?P<num>\d*)               # numerator (possibly empty)
    (?:                        # followed by
       (?:/(?P<denom>\d+))?    # an optional denominator
    |                          # or
       (?:\.(?P<decimal>\d*))? # an optional fractional part
       (?:E(?P<exp>[-+]?\d+))? # and optional exponent
    )
    \s*\Z                      # and optional whitespace to finish
""", re.VERBOSE | re.IGNORECASE)

m = _RATIONAL_FORMAT.match(numerator)
numerator = int(m.group('num') or '0')
denom = m.group('denom')
decimal = m.group('decimal')
exp = m.group('exp')
Ну, сейчас в условном Подмосковье стоят вышки мегафона, билайна, МТС и теле-2. Если все вышки принадлежали мы другом юрлицу, который бы «расшарил» вышки на всех, то вероятно хватило бы на треть меньше вышек для такого же покрытия. С другой стороны если все вышки у одного юрлица-монополиста, то почему бы ему не задрать цены?..
В описании класса ExtendedInteger почти у всех методов пропущены двойные подчёркивания. Это же «магические» методы


Код
class Mat2x2:
    __slots__ = ['a', 'b', 'c', 'd']

    def __init__(self, a, b, c, d):
        self.a = a
        self.b = b
        self.c = c
        self.d = d

    def __matmul__(x, y):
        ans = x.copy()
        ans @= y
        return ans

    def __imatmul__(x, y):
        x.a, x.b, x.c, x.d = x.a * y.a + x.b * y.c, x.a * y.b + x.b * y.d, x.c * y.a + x.d * y.c, x.c * y.b + x.d * y.d
        return x

    def __pow__(self, exp):
        cur = Mat2x2(1, 0, 0, 1)
        base = self.copy()
        while exp:
            if exp & 1:
                exp -= 1
                cur @= base
            else:
                exp >>= 1
                base @= base
        return cur

    def copy(self):
        return Mat2x2(self.a, self.b, self.c, self.d)

    def __repr__(self):
        return f'{self.__class__.__name__}({self.a}, {self.b}, {self.c}, {self.d})'


class R5:
    def __init__(self, a=0, b=0):
        self.a = a
        self.b = b

    def __repr__(self):
        return f'R5({self.a}, {self.b})'

    def __str__(self):
        if self.a and self.b:
            return f'({self.a}{self.b:+}√5)'
        elif self.b:
            return f'{self.b}√5'
        else:
            return f'{self.a}'

    def __add__(x, y):
        return R5(x.a + y.a, x.b + y.b)

    def __sub__(x, y):
        return R5(x.a - y.a, x.b - y.b)

    def __mul__(x, y):
        return R5(x.a * y.a + x.b * y.b * 5, x.a * y.b + x.b * y.a)

    def __pow__(x, power):
        if power == 0:
            return R5(1, 0)
        elif power % 2 == 1:
            return x * (x ** (power - 1))
        else:
            sq = x ** (power // 2)
            return sq * sq

    def __floordiv__(x, n):
        return R5(x.a // n, x.b // n)


def fib_ite(n):
    c, p = 0, 1
    for _ in range(n):
        c, p = c + p, c
    return c


def fib_bine(n):
    return (R5(1, 1) ** n - R5(1, -1) ** n).b // 2 ** n


def fib_mat(n, *, fib_mat=Mat2x2(0, 1, 1, 1)):
    if n == 0:
        return 0
    fib_pow = fib_mat ** (n - 1)
    return fib_pow.d


# Проверка корректности
for i in range(0, 100):
    # print(fib_bine(i), fib_ite(i), fib_mat(i))
    assert fib_bine(i) == fib_ite(i) == fib_mat(i)


# Оценка времени работы
def time_fib(funcs, from_i=0, till_i=300000, step=20011, repeats=10):
    from timeit import timeit
    setup = 'from __main__ import ' + ', '.join(funcs)
    times = []
    for i in range(from_i, till_i, step):
        tts = [timeit(stmt=f'{func}({i})', setup=setup, number=repeats) / repeats for func in funcs]
        times.append([i] + tts)
        print(*times[-1])
    return times


# Отрисовка
def plot_fib(funcs, times):
    from matplotlib import pyplot as plt
    ax = plt.gca()
    base = [t[0] for t in times]
    for i, func in enumerate(funcs, start=1):
        cur = [t[i] for t in times]
        ax.plot(base, cur, label=func)
        for x, v in zip(base, cur):
            ax.annotate(f'{v:0.3}', xy=(x, v))
    ax.set_title('Время на возведение в степень')
    ax.set_xlabel('Номер числа Фибоначчи')
    ax.set_ylabel('Время на вычисление в секундах')
    ax.legend()
    plt.show()


funcs = ['fib_ite', 'fib_bine', 'fib_mat']
times = time_fib(funcs, from_i=0, till_i=300000, step=20011, repeats=10)
plot_fib(funcs, times)

Можно было классик с арифметикой замутить, чтобы дальше красиво было:

class R5:
    def __init__(self, a=0, b=0):
        self.a = a
        self.b = b

    def __repr__(self):
        return f'R5({self.a}, {self.b})'

    def __str__(self):
        if self.a and self.b:
            return f'({self.a}{self.b:+}√5)'
        elif self.b:
            return f'{self.b}√5'
        else:
            return f'{self.a}'

    def __add__(x, y):
        return R5(x.a + y.a, x.b + y.b)

    def __sub__(x, y):
        return R5(x.a - y.a, x.b - y.b)

    def __mul__(x, y):
        return R5(x.a * y.a + x.b * y.b * 5, x.a * y.b + x.b * y.a)

    def __pow__(x, power):
        if power == 0:
            return R5(1, 0)
        elif power % 2 == 1:
            return x * (x ** (power - 1))
        else:
            sq = x ** (power // 2)
            return sq * sq

    def __floordiv__(x, n):
        return R5(x.a // n, x.b // n)


def fib_bine(n):
    return (R5(1, 1) ** n - R5(1, -1) ** n).b // 2 ** n


def fib_ite(n):
    c, p = 0, 1
    for _ in range(n):
        c, p = c + p, c
    return c


for i in range(1, 100):
    assert fib_bine(i) == fib_ite(i)
А как выглядит «карьерная лестница» молодого стоматолога? Вот есть молодой врач с большим фантомным опытом. Кем он может устроиться на работу в нормальной ситуации? И какие операции ему доверят выполнять на старте?
Главное удобство наступает, когда у тебя в машине маленькие дети.
Тащить их с собой внутрь? Это выстегнуть, отвести, вернуть, пристегнуть.
Бросать в машине? Ну тоже такое: фиг знает, на сколько ты там в очереди застрянешь.
А не хотите использовать sd-флешкарты с wifi? Чтобы избежать необходимости перевтыкать флешкарты из микроскопов/фотоаппаратов в компьютеры и обратно?
Не, под виндой уже всё давно отлично с miktex'ом и автоустановкой недостающих пакетов.
MikTeX уже даже на мак и в линкус завезли. А вот texlive дружелюбной автоустановкой пакетов и GUI'ём для их поиска так и не обзавёлся.

Меня даже на 146% устроит «программистский» вариант этой настройки: положить условный json-чик или xml-чик в нужное место в папке программы.

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Менеджер продукта
Ведущий
Python
Управление проектами
Алгоритмы и структуры данных
Asyncio