Очень поверхностная статья. На практике очень часто встречаются проблемы с зависимостями, которые нужно разрешать руками и не всегда это получается хорошо. Разработчики не всегда проверяют, что их миграции применятся на пустой БД, что может больно выстрелить, об этом мало кто задумывается, пока не хлебнет проблем.
И отдельная история когда в рукописной миграции используются модели из других приложений и, как мне кажется, нужно для каждого приложения выбрать минимальную миграцию в которой получим состояние с нужными моделями и полями. Очень хочется почитать мнение автора на эти темы, а не пересказ документации и статей с Medium
Помимо IP адреса есть ещё страна, указанная в профиле, а без авторизации можно посмотреть на предпочитаемый язык системы и другие косвенные признаки - так что данные эти точно есть. Жаль только, гугл не даёт возможности самому запрос сконструировать по нужным параметрам)
Но сегодня, двадцать лет спустя, я не знаю никого, кто бы восхищала возможность открыть Gmail.
Очень корявый перевод, практически подстрочник с сохранением английского порядка слов. Для того, чтобы переводить тексты знания иностранного недостаточно
Разные компании по-разному оценивают риски и издержки по приёму платежей от клиентов в РФ. У Google, по всей видимости, сохраняются надежды на российский рынок и/или издержки (учитывая значительные штрафы, которая она исправно платит) не настолько большие в процентном соотношении. Уйти с рынка просто, а вернуться нет, поэтому и стараются держаться
API любых GPT не бесплатны. А вот для распознания и синтеза речи есть функционал WebKit, как вариант для этого можно впендюрить headless chrome, но думаю есть более легковесные варианты
Я недавно сам закинул денег на OpenAI, чтобы иметь доступ через телегу, но сразу проверил чтобы доступ к боту был только с одного аккаунта телеграм. А какая выгода владельцам публичных ботов? Запросы к апишке то не бесплатные
И не только - любые неудобные решения объясняются "алгоритмами". Которые, видимо появляются непорочным зачатием или из воды, ибо ответственности никто не несёт
Я бы посмотрел в сторону Traefik - там можно определить динамический роутинг по эндпоинту или поддоменам, роутить можно до локальных портов, Docker контейнеров или внешних сервисов
Могу на конкретном примере пояснить - у меня есть старый опыт с мелкими заказами на PHP, ещё во времена uCoz. Но в силу ряда причин, лет 7 работал в разных не IT сферах, при этом занимаясь админством и разработкой just for fun. Когда принял решение пойти в полноценную продуктовую разработку, мне оказалось проще претендовать на позицию джун, чем обосновывать имеющийся опыт. В итоге оказался в команде с двумя джунами, один из которых просто двигал задачки и кидал МРы с нерабочим кодом, а второй старался, но тоже получалось плохо. Проект тащил, потому что у меня было понимание, что это возможность получения +500 опыта, да и интерес несмотря на проблемы.
Резюмируя, человек может называться джуном не из реальных компетенций
Вариант хороший, правда, студенты преимущественно работают в GitHub. А GitHub Actions на фоне гитлаблвского CI/CD это какой-то адъ и Израиль. И студентов сложно заставить массово использовать какой-то инструментарий выходящий за рамки учебных материалов, остаются сторонние решения, что тоже уже не выглядит очень простым
К слову, видел много репозиториев (в основном, во фронтенде такое творится, пытаося найти рабочий UI кит под свои задачи) со 100500 звёзд, readme на китайском и крайне низкокачественным кодом. Мысли про накрутки вызвало наличие всего нескольких тикетов и пулл реквестов, только не понимал для чего это делают
Тема хорошая, но как-то сыровато получилось. Я всецело за информацию о более свежих, быстрых и легких фреймворков, но... Есть Django Channels, который вообще не упомянули, хотя в коммерции в 80% проектах используется именно этот фреймворк и вебсокеты прикручивать придётся на проектах с Django.
И сильно бросился в глаза код из п.4
...
while True:
data = await websocket.receive_text()
...
db.close()
судя по коду, мы для каждого клиента на вебсокете выделяем отдельное подключение к БД - стоило бы упомянуть про наличие лимита на количество подключений, возможность использования connection pool, да и память не бесконечна (постгря на каждое соединение выделяет отдельный кусок памяти). В целом, выглядит код так, что мы проявляем абсолютное доверие рандомному клиенту, который пришёл по вебсокету, придерживаем для него соединение с базой, а потом в неё передаём данные без лишних проверок. Понимаю, что это лишь пример, но для новичков такой пример может быть фатальным
В мире обработки естественного языка существует множество инструментов и библиотек, предназначенных для упрощения этой сложной задачи
Стоит отметить, что это для английского языка. Лемматизация и стемминг русскоязычных текстов это отдельная боль - из чего-то рабочего пока видел только pyMorphy2 (который лет пять как заброшен) в связке с NLTK. Но с классификаций и определением тематики всё ещё хуже, для обучения полтора датасета находятся
Крайне странно видеть такую подачу на хабре - статья из серии "свой VPN за пять минут", которыми наводнен Интернет.
И изначально, я бы задался вопросом, почему выбран именно Django - на мой взгляд, для подобных проектов больше подходит FastAPI, а ORM выбрать по вкусу, при развитии довольно неплохо масштабируется. Новичкам тоже бы советовал начинать с Flask-подобных фреймворков подобных - хоть и чуть больше надо руками делать, зато не будет ощущения волшебного "черного ящика"
а где-то в полночь я, как Золушка, превращаюсь в тыкву и начинаю программировать, как я это называю, "спинным мозгом" - я пишу какой-то код, он даже работает, но вот голова не понимает, что вообще я написал и зачем
Сам периодически с таким сталкиваюсь, независимо от времени суток - причем, страшно, когда на следующий день смотришь на код и думаешь "как я мог такое написать". Это, скорее, возникает на долгих, монотонных задачах. И несмотря на довольно большой опыт, не всегда удаётся ловить и прерывать себя на таких состояниях, для себя пока использую работу по таймеру, но и это не панацея
Отлично - ещё один повод подоить бизнес, это помимо пожарной, трудовой, СанПиНа и прочих проверяющих. Но ничего, ведь все знают, что бизнес у нас гребёт деньги лопатой, переживет
Не соглашусь, что прям все - я начинал путь в программировании с "C++ для чайников" и, будучи, 12-и летним пацаном, читал её с огромным интересом. И по содержанию претензий особых нет - работа с памятью, типами и даже указателями и ссылками там изложена достаточно хорошо. Проблемы с изложением начались на векторах, но к тому времени читатель уже научился искать информацию самостоятельно :)
Очень поверхностная статья. На практике очень часто встречаются проблемы с зависимостями, которые нужно разрешать руками и не всегда это получается хорошо. Разработчики не всегда проверяют, что их миграции применятся на пустой БД, что может больно выстрелить, об этом мало кто задумывается, пока не хлебнет проблем.
И отдельная история когда в рукописной миграции используются модели из других приложений и, как мне кажется, нужно для каждого приложения выбрать минимальную миграцию в которой получим состояние с нужными моделями и полями. Очень хочется почитать мнение автора на эти темы, а не пересказ документации и статей с Medium
Помимо IP адреса есть ещё страна, указанная в профиле, а без авторизации можно посмотреть на предпочитаемый язык системы и другие косвенные признаки - так что данные эти точно есть. Жаль только, гугл не даёт возможности самому запрос сконструировать по нужным параметрам)
Очень корявый перевод, практически подстрочник с сохранением английского порядка слов. Для того, чтобы переводить тексты знания иностранного недостаточно
Разные компании по-разному оценивают риски и издержки по приёму платежей от клиентов в РФ. У Google, по всей видимости, сохраняются надежды на российский рынок и/или издержки (учитывая значительные штрафы, которая она исправно платит) не настолько большие в процентном соотношении. Уйти с рынка просто, а вернуться нет, поэтому и стараются держаться
API любых GPT не бесплатны. А вот для распознания и синтеза речи есть функционал WebKit, как вариант для этого можно впендюрить headless chrome, но думаю есть более легковесные варианты
Я недавно сам закинул денег на OpenAI, чтобы иметь доступ через телегу, но сразу проверил чтобы доступ к боту был только с одного аккаунта телеграм. А какая выгода владельцам публичных ботов? Запросы к апишке то не бесплатные
Хорошее замечание насчёт ковида - у меня давно уже подозрения, что он очень у многих вызвал крайне тяжёлые последствия, в том числе и на мозг
И не только - любые неудобные решения объясняются "алгоритмами". Которые, видимо появляются непорочным зачатием или из воды, ибо ответственности никто не несёт
Я бы посмотрел в сторону Traefik - там можно определить динамический роутинг по эндпоинту или поддоменам, роутить можно до локальных портов, Docker контейнеров или внешних сервисов
Могу на конкретном примере пояснить - у меня есть старый опыт с мелкими заказами на PHP, ещё во времена uCoz. Но в силу ряда причин, лет 7 работал в разных не IT сферах, при этом занимаясь админством и разработкой just for fun. Когда принял решение пойти в полноценную продуктовую разработку, мне оказалось проще претендовать на позицию джун, чем обосновывать имеющийся опыт. В итоге оказался в команде с двумя джунами, один из которых просто двигал задачки и кидал МРы с нерабочим кодом, а второй старался, но тоже получалось плохо. Проект тащил, потому что у меня было понимание, что это возможность получения +500 опыта, да и интерес несмотря на проблемы.
Резюмируя, человек может называться джуном не из реальных компетенций
Вариант хороший, правда, студенты преимущественно работают в GitHub. А GitHub Actions на фоне гитлаблвского CI/CD это какой-то адъ и Израиль. И студентов сложно заставить массово использовать какой-то инструментарий выходящий за рамки учебных материалов, остаются сторонние решения, что тоже уже не выглядит очень простым
Не стоит путать ШАД с реальным отбором и Яндекс Практикум, который юридически тоже ШАД, но уровень уже немного другой
К слову, видел много репозиториев (в основном, во фронтенде такое творится, пытаося найти рабочий UI кит под свои задачи) со 100500 звёзд, readme на китайском и крайне низкокачественным кодом. Мысли про накрутки вызвало наличие всего нескольких тикетов и пулл реквестов, только не понимал для чего это делают
Тема хорошая, но как-то сыровато получилось. Я всецело за информацию о более свежих, быстрых и легких фреймворков, но... Есть Django Channels, который вообще не упомянули, хотя в коммерции в 80% проектах используется именно этот фреймворк и вебсокеты прикручивать придётся на проектах с Django.
И сильно бросился в глаза код из п.4
судя по коду, мы для каждого клиента на вебсокете выделяем отдельное подключение к БД - стоило бы упомянуть про наличие лимита на количество подключений, возможность использования connection pool, да и память не бесконечна (постгря на каждое соединение выделяет отдельный кусок памяти). В целом, выглядит код так, что мы проявляем абсолютное доверие рандомному клиенту, который пришёл по вебсокету, придерживаем для него соединение с базой, а потом в неё передаём данные без лишних проверок. Понимаю, что это лишь пример, но для новичков такой пример может быть фатальным
Помню как родители рассказывали про глушение "вражеских голосов" и как это обходили... Почему-то надеялся, что не вернёмся к такому
Стоит отметить, что это для английского языка. Лемматизация и стемминг русскоязычных текстов это отдельная боль - из чего-то рабочего пока видел только pyMorphy2 (который лет пять как заброшен) в связке с NLTK. Но с классификаций и определением тематики всё ещё хуже, для обучения полтора датасета находятся
Крайне странно видеть такую подачу на хабре - статья из серии "свой VPN за пять минут", которыми наводнен Интернет.
И изначально, я бы задался вопросом, почему выбран именно Django - на мой взгляд, для подобных проектов больше подходит FastAPI, а ORM выбрать по вкусу, при развитии довольно неплохо масштабируется. Новичкам тоже бы советовал начинать с Flask-подобных фреймворков подобных - хоть и чуть больше надо руками делать, зато не будет ощущения волшебного "черного ящика"
Сам периодически с таким сталкиваюсь, независимо от времени суток - причем, страшно, когда на следующий день смотришь на код и думаешь "как я мог такое написать". Это, скорее, возникает на долгих, монотонных задачах. И несмотря на довольно большой опыт, не всегда удаётся ловить и прерывать себя на таких состояниях, для себя пока использую работу по таймеру, но и это не панацея
Отлично - ещё один повод подоить бизнес, это помимо пожарной, трудовой, СанПиНа и прочих проверяющих. Но ничего, ведь все знают, что бизнес у нас гребёт деньги лопатой, переживет
Не соглашусь, что прям все - я начинал путь в программировании с "C++ для чайников" и, будучи, 12-и летним пацаном, читал её с огромным интересом. И по содержанию претензий особых нет - работа с памятью, типами и даже указателями и ссылками там изложена достаточно хорошо. Проблемы с изложением начались на векторах, но к тому времени читатель уже научился искать информацию самостоятельно :)