Pull to refresh
1
0

User

Send message

P. S. Учите clickhouse ( синтаксис, и его эксклюзивные функции, будете на порядок круче всех и востребованнее.)

Да, но только после минимум нескольких лет работы с классическими sql базами.

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

Количество людей на самом понимающих как работают и что делают array* функции и как на них построить то что нужно бизнесу очень невелико. Сюда же правильное проектирование таблиц чтобы не тормозило. С учетом всех особенностей array* функций.

Хотя и полезно, спасибо, но хотелось бы ещё и рекомендации по самим библиотекам - что и как юзать. Почему pytest а не unittest, почему классы а не функциональные тесты, что лучше factory-boy или mommy/bakery. А чего б не взять tavern или postman это наше все. Если тест интеграции с Aws брать moto/boto или писать своё. И в конце - а где авто сборщик документации тестов а'ля swagger?

Позволю дать 11-й совет: после изучения джанго обязательно посмотрите в сторону Wagtail, и вы сможете с минимумом кода создавать гибкие (точно под заказчика) cms-ки — как из кубиков лего. Я например полность перешел на разработку проектов на Wagtail. Это просто какое то эстетическое удовольствие получаешь, когда например буквально несколькими строчками кода создаешь страницу администрирования карточки товара — с любыми группировками, множественными инлайн-полями, с разнесением по табам и пр… И ничего лишнего…

Конечно, есть. Просто там уже другого порядка вещи волнуют ум. Например, руководители не думают уже, как выжить в команде или в какую специализацию вообще податься, они стараются трезво смотреть на мир (рекомендуем статью из блога → https://habr.com/ru/companies/netologyru/articles/755202), а есть же ещё системные аналитики, девопсы и даже архитекторы (https://habr.com/ru/companies/netologyru/articles/763456). Но чтобы до них дорасти, надо проделать огромный путь; в частности, делая то, что описано в этой статье.

Пользуюсь, полёт нормальный (выбрал форк X-UI). От ПК на любой системе до мобилок. Сотня своих абонентов. Сервер крутится в контейнере на VPS у Hukot в Чехии. На ПК настройка слегка нетривиальная для домохозяйки на каноничном клиенте, поэтому записал видеоинструкции, для мобилок на всякий случай тоже. Вопросов не было, скорость улёт. Торренты и реклама блокирутся, поэтому шанс получить бан на VPS нулёвый. Эксплуатирую прям с момента публикации статьи - очень стабильно работает. В общем, искал костыльное подвальное дерьмо, а нашёл очень крепкий и неотличимый от HTTPS алмаз!

Ничего лучше Scalene для профайлинга я пока не встречал.

Я – фронтенд-разработчик, и за последний год встречалась с необходимостью использовать нетривиальные алгоритмы несколько раз. Наиболее сложные случаи были связаны с визуализацией графов.

У фронтендеров слегка отличаются задачи от типичного leetcode / codewars и прочих. При чем и по реальной работе и по вопросам на собеседованиях. Фронтам не особо нужны задачи на динамическое программирование или backtracking, но зато нужно больше задач на обход деревьев и задачи на асинхронность. Особенно на асинхронность. На литкод недавно даже отдельный блок с JavaScript добавили. Также рекомендую https://bigfrontend.dev/

Mvcc тоже важный вопрос который часто бывает на собесах втч для питонистов. Особенно из-за популярности постгрес.

нет, шорт - это не про повышение/понижение цен, шорт - про, хм, физическое владение ценными бумагами или товарами, валютами. Понижение вам нужно, чтобы получить прибыль)

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

А если вы взяли автомобиль в аренду, продали его за 1.1 номинала, а потом купили такой же за 0.9 номинала и вернули в нужный срок - то это и будет шорт, сделка вкороткую. Вы продали товар, который вам не принадлежал по факту и вам понадобилась не вся сумма стоимости - потому что вы, по факту, не покупали автомобиль. Грубо говоря, вам с неба упал автомобиль, вы его продали, а когда небо потребвало автомобиль обратно - вы купили такой же и успешно вернули))

Соответственно, когда какие-то акции намечаются в тенденции к снижению своего курса - например, неудачный квартал или инсайдерская информация - то есть биржи, где можно набрать таких акций в кредит, пообещав вернуть эти акции в срок + оплатить услугу предоставления такого кредита (оно же - маржа, соответственно, торговые операции такими кредитными ресурсами, взятыми у кредиторов за маржу и называются "маржинальная торговля"), затем продать акции по 0.9 номинала, дождаться, когда цена на акции упадёт до, например, 0.6 номинала, купить акций для возмещения и вернуть бирже - это и есть продажа вкороткую: вы взяли акции взаймы - вы вернули акции. А какие там операции вы с ними проворачивали - брокера волновать не будет, вы получиле 0.3 номинала выгоды, с которых заплатите маржу брокеру - все в наваре)

Вдлинную все эти механизмы тоже работают, но все вот такие сделки требуют финансового, товарного и юридического обеспечения или специальных контрактов, это всё лишняя возня и большие затраты времени, поэтому на длинных сделках играют стратегически, а на коротких - тактически. Например, физическая покупка золота у банка - длинная, через год его можно будет продать и, как правило, вырученные деньги как минимум возместят инфляцию валюты, на которую вы это золото закупили, а как максимум - и принесут какую-то прибыль. Но придётся ждать год, физически возиться с походами в банк и прибыль будет мизерная по сравнению с тем, как на биржах хедж-фонды на коротких сделках варят за день миллиарды гешефта.

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

Ну и вишенка на торте - хедж-фонд, который получает граничащие с идиотизмом суммы финансирования, на которые открывает кучу позиций и сделок на самых разных направлениях в ожидании шортов и прибылей. Часть из этих сделок - направлена на самый лютый шорт, а часть наоборот - закупает суперстабильные или считающиеся такими ресурсы, которые вроде как гарантированно со временем дорожают. Соответственно, для таких "плечей" торговли хедж-фонд имеет такие себе коэффициенты, что ли (которые в теории регулируются государством), и, имея, например, миллиард денег капитала, хедж фонд может держать сделок на 5, 10, 20 миллиардов, не имея физически ни этих товаров, ни акций, а только контракты.

воот, надеюсь, понятно и правильно объяснил, насколько сам это понял - просто меня в своё время тоже зацепили эти шорты и я немало времени потратил, пытаясь понять, а чем там так торгуют, чтобы из воздуха бабки штопать)

Привет!

Пару советов для дальнейшего успешного поиска работы:

  1. Используй сразу python poetry + Dockerfile + docker-compose. Сейчас это такие же стандарты, как знание git. Дадут тебе +15 очков на собеседовании.

  2. class Tokens(models.Model) -> class Token(models.Model)

  3. settings.CHARACTERS = string.ascii_letters + string.ascii_digits +5 очков

  4. Вместо цикла while True с filter() query надо использовать try: Model.objects.create() / except IntegrityError - так будет в 99.9% случаев только один запрос. +30 очков

  5. token.requests_count += 1 -> Models.objects.filter().update(requests_count=F("requests_count")+1) +20 очков

  6. Вынести код из save() в отдельный модуль services.create_token . +15 очков

  7. Можно вместо рандомайзера использовать hash от pk, но это так уже, когда совсем делать нечего :) Нашел в одном из своих старых проектов:
    hashlib.shake_128(user_id.encode("utf-8")).hexdigest(3).upper()

Есть ещё такая вещь, как Zobrist-хеширование

Навскидку добавлю.

pyenv — менеджер интерпретаторов и виртуальных окружений.

Hatch — относительно новая система сборки под крылом PyPA, но поддерживает все соответствующие PEP. Перешёл на неё с Poetry и не жалею.

Кстати, я заметил, что многие отказываются от систем сборки якобы из-за того, что придётся пользоваться новыми утилитами, а изучать их не хочется. Это не так. Можно перенести все зависимости в pyproject.toml (setup.py для простого перечисления зависимостей не нужен и не рекомендуется), указать систему сборки, отличную от setuptools и не пользоваться ничем кроме pip. Даже колёса можно собирать с помощью pip wheel (хотя лучше python3 -m build).

Из полезных особенностей, которых нет в setuptools — динамические версии из коробки (может сам читать версию из указанного файла), умеет создавать окружение для разработки, умеет запускать команды для матрицы версий (tox становится не нужен).

Hatch пока сам не умеет фиксировать зависимости (автор ждёт, когда такой функционал появится в pip), но можно пользоваться pip-tools. pip-compile отлично понимает зависимости в pyproject.toml.

pyright — тайпчекер. Мне он нравится больше mypy тем, что он быстры и просто работает из коробки без какой-либо настройки и телодвижений. Сам он написан не на Python (, но есть пакет, который можно поставить через pip. Он сам подтянет всё, что нужно. Из-за его скорости, его вполне можно добавить в pre-commit.

py-spy — профайлер. Киллер-фича — способность подключиться к уже запущенному процессу и показывать, какие именно функции сейчас работают. Как top/htop в линукс.

memray — профилировщик памяти.

Если ещё что-то вспомню, то напишу. :)

Пара дополнений про упомянутые в статье пакеты.

  • К сожалению, ruff пока трудно назвать заменой flake8, так как сила последнего в плагинах, но штука классная.

  • У rich классная визуализация исключений.

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

Если кому либо будет интересно, то существует отличная книга 'Reverse Engineering for Beginners' Дениса Юричева посвященная обратной разработке и конечно ассемблеру.
UFO landed and left these words here
Несколько лет назад была статья — к сожалению, тогда было не до того, и я не запомнил деталей. Смысл был в том, что довольно сильно критиковалась Копенгагенская интерпретация квантовой теории («заткнись и считай»), как порождающая слишком большое количество вычислительных артефактов, которые возникают как бы нитокуда, и связаны друг с другом только тем, что вычисленные вероятности совпадают с фактическими экспериментами. Это очень похоже на теорию эпициклов в движении планет — которая, фактически, предлагает разложить движение небесного тела в базисе sin и cos, которые (по счастливому совпадению!) являются ортогональными, и поэтому могут неограниченно близко представить любую мыслимую траекторию движения. Однако, ньютоновская гравитация заменяет эти сложные построения простыми и логичными фрмулами — отчего становится всем гораздо легче. Во-первых, исчезают предсказания явлений, которые заведомо не происходят (и с которыми приходится бороться вводя произвольные ограничивающие правила и/или константы), а во-вторых, расчет «правильных» явлений происходит сильно более экономным способом.

Вот есть мнение, что в случае с квантовой теорией, мы успешно двигаемся не туда, куда надо — потому что слишком много проблем и артефактов возникает. Поскольку теория скрытых переменных фактически исключена — в той статье предлагалось рассматривать, как я понял, квантовые эффекты — как принцип экономии при расчете следующего состояния системы. То есть, природа не занимается постоянным обсчетом частиц, которые прямо сейчас не собираются ни с чем взаимодействовать. Вместо этого, по принципу «ленивых вычислений» — записывается некоторая информация (х.з. как — в форме распределения вероятности, я так понимаю), которая позволит рассчитать параметры взаимодействия когда (если!) это будет нужно. Там еще делался глубокомысленный вывод, что в таком случае вселенной достаточно обращать внимание только на события, происходящие на поверхности конуса причинности, а не на весь его объем — но это уже сильно выходит за границы моего понимания.

Общий принцип, в моем бытовом понимании сводится примерно к поведению NPE персонажей в комнате без окон, из которой вышел игрок. Вместо того, чтобы обсчитывать их поведение (и держать кучу переменных для каждого) — достаточно запомнить сколько их какого вида было, и где каждый стоял в момент выхода игрока. Если через время «t» игрок заглянет в комнату — можно сгенерировать персонажей заново в случайных местах, до которых они смогли бы дойти с исходных мест за время «t». И у игрока не будет доказательств, чтобы опровергнуть предложенную ему картину мира. Вот примерно так и электроны в опыте с двумя щелями: «Мы не собираемся вычислять, через первую щель он прошел, или через вторую — мы записали последнее взаимоействие, и сделаем расчет тогда, когда оно долетит до фотопленки. А то вы его может быть послали в направлении альфы-центавра: вам прикольно, а нам его на протяжении нескольких лет на планковском масштабе пространства-времени непрерывно пересчитывать!». Очень помогает в этом плане и то, что элементарные частицы базово неотличимы друг от друга. В случае с NPC в игре — нужно про каждого что-то помнить. А в случае с электронами — можно их сгенерировать вам в момент наблюдения, и опять-же подите-опровергните, что они (пока никто не смотрел) вот так не смогли организоваться…
На днях составил список советов для друзей, если кто-то чем-то может дополнить, прошу написать под комментом:

1) съеъхать в жилье где никто не прописан и желательно нет соседей/они нормальные, тихие люди
2) старая симка вставляется в отдельный телефон, телефон остается подключенным в доме с пропиской к зарядке + интернету. В нем настраивается к примеру бот Remote Bot (см на 4pda), который умеет отсылать информацию о пропущенных звонках и тексты смс, чтобы пользоваться личными кабинетами где без этого никак, переадресация через провайдера хреновый вариант, чуть что они вас сдадут. Лучше всего отказаться от всех своих старых учетных записей, но это уже на ваш страх и риск
3) через developer settings в телефоне (если android), настраивается фейковое местоположение (к примеру через приложение Fake GPS) на дом с пропиской. Если у вас IOS, то вам нужно сделать jailbreak и найти соответствующую утилиту (если они еще существуют, давно не пользовался), хотя я бы не рекомендовал, Apple это сплошная проприетарщина
4) никаких курьеров, такси и прочее не вызываем на новый адрес, все поставки продовольствия только через знакомых и родственников, заранее договоритесь о времени и днях поставок продуктов, оплате коммуналки и тп (вы не должны это делать). Если совсем припрет, можно вызвать курьера к соседнему подъезду или на другой эта в другую квартиру и рядом встретить
5) перемещение до новой квартиры: верхняя одежда должна быть такой, которую вы почти никогда, или лучше никогда не надевали (наиболее продвинутые нейросети помимо лица учитывают точки на одежде, манеру ходьбы), неплохо зашло бы еще сделать серьезный макияж, барышни могут с этим помочь; сверху кепка, натянутая по глаза, лицо закрываем шарфом или бафом по глаза, носа видно быть не должно, на глаза очки, в идеале солнечные, но в демисезон и зимой это палевно, сойдут и просто любые +-. Наиболее важно нейросети увидеть ваши глаза и часть носа. На камеры не смотрим, с людьми не разговариваем по возможности. Переезжать лучше ближе к ночи, когда полицаев уже поменьше, лучше пешком все же
6) на квартире работа с интернетом только через VPN за пределами снг (желательно найти хостера который поддерживает оплату через криптовалюты)!!! Лучше всего прямо на роутере настроить, если он поддерживает. Если можете програмно изменить mac адрес, меняйте на случайный, есть утилиты и скрипты которые это умеют делать, легко гуглятся
7) после переезда НИКАКИХ поездок, слишком велик шанс слить ваш адрес,
8) КРАЙНЕ желательно прекратить пользоваться российскими сервисами (особенно компаний яндекса, вк и тп гигантами), они все стучат, особенно такси
9) никакой оплаты покупок по своим картам, попросите родственников или друзей завести карточку, накиньте туда сколько то денег на крайний случай, но лучше ей не пользуйтесь, а для оплаты онлайн сервисов освойте работу с предоплаченными (Gift) картами VISA и Mastercard, которые можно купить на разных онлайн барахолках с комиссией
10) иметь с собой все документы, ничего не должно вас выдать у вас дома (вы исчезли!)
11) иметь с собой запас вещей на случай осознавания, что вас ищут и ваше убежище нашли, если нужно будет валить на улицу с непоняткой того, через сколько вы сможете найти новое жилье (тут нам пригодится новый телефонный номер)
12) вести себя на новом доме тихо, караоке, савбуферы и крики отменяются. У соседей не должно возникать желания вызвать к вам ментов
13) не открывать дверь никому кроме знакомых, для всех вокруг вас не должно существовать
14) желательно уволиться с белой работы и перейти чисто на удаленку в черную, зп получать или на левую карту, или лучше в крипте, если это возможно

Возможно многие посчитают это перебором, и что не особо имеет смысл выполнять все, если вас не объявили в федеральный розыск, но как минимум это позволит серьезно выиграть время (весьма вероятно до финальной развязки), ведь сначала будут грести тех, кто вообще никакими мерами не озаботился, а на ваш поиск понадобятся ресурсы, которых в наши времена скорее всего не будет ко времени, когда «свежего мяса» поубавится кратно. Нужно всего лишь «бежать быстрее других», кто не предпринял элементарных мер защиты.
Не стоит расчитывать на отсрочку по аккредитации предприятий, даже если появится закон, который это регулирует. За последние годы и особенно 9 месяцев нам обещали столько несбыточных вещей, которые сбылись, что просто поражает наивность людей. Не стоит играть в игру с шуллером, который неоднократно палился.

Мирного неба над головой всем!

WSL по-прежнему назначает себе случайную подсеть, ломая корпоративные VPN, Docker и прочее. Возможности назначить фиксированную подсеть по-прежнему нет. Можно побороть страшным костылями.

В GUI режиме для WSL приложений Ctrl+Alt+Arrow по-прежнему не передаются приложению, и тут уже даже костылями не поправишь. По-прежнему надо крутить отдельный X-Server под это дело.

Зато менюшек новых понарисовали - мама дорогая...

rmsbeetle, согласно документации «модуль» — файл с инструкциями Python, а «пакет» — способ организации пространства имен модулей (синтаксически — с помощью точек). Однако в ней же слово «модуль» иногда трактуется более широко: например, технически asyncio — пакет (неймспейс с несколькими модулями), но иногда называется модулем.
Под пакетом я имел в виду единицу дистрибуции, а под модулем разные вещи, в зависимости от контекста. Я исправлю терминологию, чтобы не вводить никого в заблужение. Спасибо за замечание.

На второй вопрос я, пожалуй, не смогу ответить за весь Яндекс, так как в компании очень много команд, и у всех немного по-разному.
В Едадиле — это прозвучит очень банально — мы стараемся как можно больше делиться опытом друг с другом и общаться с коллегами, смотреть PR друг друга (посмотреть PR другой команды — скорее правило, а не исключение).
Если кто-то видит, что он уже решал похожую проблему — скорее всего появится хорошо решающая эту проблему библиотека, покрытая тестами. Например, в свое время так появился aiomisc, aiomisc-dependency, snakepacker, wsrpc и другие.
1
23 ...

Information

Rating
Does not participate
Registered
Activity