Возможно на этой симке "смартфонный тариф" с запретом раздавать доступ на другие устройства, но фильтрация в Москве на нём не включена или недостаточно сильно включена по сравнению с соседней областью...
Одной задачи не хватит. Нужны десятки и даже сотни. Причём бессмысленно решать синтетические задачи. Так что совет поставить себе и часто пользоваться будет наилучшим.
AlexVWill, можно вместо email хранить от него хеш, такое вполне решается. Впрочем, многие сайты специально хранят емейл, и можно авторизоваться как по логину-паролю, так и через сторонние интеграции, если емейл совпадёт. Например, такое в браузерных игрушках распространено. Уместность подобного сильно зависит от назначения сайта и того, нужна ли почта у пользователя для его функциональности.
Но если и правда есть уникальный постоянный uid, и почта сама по себе не нужна, то помнить его конечно же лучше, чем email.
alexandrsemen4ukk, в исходных данных каждая запись это словарь, в котором несколько ключей. Я добавляю в него ключ childs, в значении которого будет храниться список дочерних элементов. В следующей строчке делается append в childs, но parent_item["childs"] должен быть создан до первого вызова этого append.
winser, это надо было смотреть на хостовой системе.
Внутри каждого контейнера есть свой личный адрес 172.17.0.x на устройстве eth0.
Работает это так. При создании контейнера создаётся virtual ethernet pair из двух интерфейсов. Один интерфейс остаётся в хостовой системе с именем навроде vethXXXXXXX, а другой перемещается в namespace контейнера и получает имя eth0. Интерфейс vethXXXXXXX добавляется в bridge docker0 (см. вывод brctl show). Каждый сетевой namespace - это как отдельное сетевое устройство со своими адресами, маршрутизацией и даже своими iptables. Таким механизмом docker делает виртуальный "провод" между основной системой и контейнером и "втыкает" его в "свитч" docker0. Естественно, основная система при обращении в сетку контейнеров будет показывать IP-адрес в сети docker0.
Если использовать кастомные сетки с bridge-сетью (в том числе через docker-compose), то имя bridge-интерфейса будет вида br-XXXXXXX, и IP-адреса тоже будут назначаться другие.
Это правильный ответ, но неправильно советовать то, что первым попалось из интернета. Никто же не ест первые попавшися ягоды в лесу? И нужно давать совет, чётко понимая, что он значит.
Всё дело в том, что нужно передавать вторым аргументом cursor.execute iterable объект (list, tuple...), а запись (x) означает x а не tuple(x). Иначе бы (1+1)*2 давало не 4, а tuple(2,2). Но есть простой способ это обойти, добавив запятую: (x,) даёт tuple(x).
Запятая, кстати, тоже синтаксическая фича против некоторого неудобства. Когда есть такая какая-нибудь запись, то очень неудобно комментировать последний элемент, если всегда нужно при этом у последнего незакомментированного убирать запятую и не забыть ненароком об этом:
Чтобы развиваться в айти, надо выбрать конкретную область. Эникейщики, умеющие настраивать принтеры или чистить вирусы - это тоже айти. Админы серверов, тестировщики, техписы, PM, техподдержка - тоже айти. Но им нужны совсем разные знания неодинакового уровня сложности.
Чтобы сдать экзамен в конкретный вуз, нужно к этому экзамену готовиться: найти список требуемых тем, примеры заданий прошлых лет, почитать справочник для поступающих в этот вуз...
Первые 2 или даже 3 курса - категорически не рекомендую. Особенно если вуз не для "пересидеть", а есть желание его закончить и получить знания. Первые курсы студенты обычно достаточно сильно нагружены, и слишком много
Дальше учебная нагрузка обычно снижается в предположении, что студент больше занимается научной работой, самообразованием и курсами по выбору.
Работу на полную ставку в любом случае студент-очник найти не может, но можно попробовать найти частичную занятость со свободным графиком и/или удалёнкой.
Но с учётом переизбытка на рынке труда джунов (в том числе псевдо-джунов, лишь мнящих, что они после курсов или чтения какой-нибудь книжки уже могут работать полноценными разработчиками) студенту будет трудно что-либо найти.
> у меня уровень между джуном и мидлом
Джун и мидл - это градации профессионального опыта в разработке коммерческого уровня. Без опыта какой-либо работы вообще программист не может называть себя мидлом.
> нейронки пишут нормальный код
Нейронки пишут нормальный код только для очень простых задач, для которых по суте уже есть готовые решения в гугле. Чуть отличается задача - и уже может получиться любая лажа. При этом нейронка не несёт никакой ответственности за качество кода, если код хоть где-то налажает - с кого спрашивать?
Speakermen, то есть речь не о программировании, а о Data Science? Ну тогда изучать придётся прежде всего основы. Алгебра/линейная алгебра (матрицы, метод Гаусса, определители итд), начала анализа (множества, функции, пределы, производные и интегралы, формула Тейлора) - условно программа первого курса математического вуза.
Ладно, подскажу: у Телеграм есть лимиты на скорость отправки, 30 в секунду, с возможным кратковременным burst на 150. Как только скорость превышена - скрипт упадёт.
Что значит "преимущества"? Сравнивать докер с виртуалками это как сравнивать лыжи с автомобилем. Да, и то и другое позвляет быстрее передвигаться, но это в принципе несравнимые вещи, предназначенные для разных задач с разной целью.
Виртуалки делают для долговременного существования, это именно виртуальные сервера. В то же время docker - это инструмент и сопутствующий инструментарий для запуска приложений. Это просто разные вещи для разных целей.
В зависимости от того, что требуется, может быть уместно использование или виртуалок, или контейнеров. Причём контейнеры можно запускать на виртуалках, то есть они друг другу никак не противоречат.