24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Можно ли как-то настроить logging на то, чтобы когда скрипт валился с непойманным эксепшоном, к концу лога бы добавлялся трейсбек? Кроме оборачивания всего скрипта в один большой try.
>>889913 Вместо "на работе", ты хотел сказать "в полутемной избушке, пропахшей лекарствами заплесневелых старперов, в древнем лесу на окраине жизни, где унылые бородатые говнокодеры в вонючих свитерах работают за еду"? На работе, там где чисто и светло, все давно уже перешли на 3.
>>889916 Да не, молодой, "на работе" это как раз где есть суровый одмин, который супортит пару сотней проектов, от таких же кбанутых разработчиков, и супорти он их давно и практически успешно, на какой-нить не очень свежей центосине или редхате. Потом к нему прибегает какой-то сопливый мальчишка и тут ему говорит: - Мы же не гавно какое-то, а ебать мэйнстрим, давай хуйнем мне 3.4 на твою рухлядь. - Ясен хуй ща.... Погоди нету в нашем корпаративном репозитарии такого пиздатого мэйнстрима... - Ничего давай из сорцев захуярим, тебе то че 10 сред заинсталишь мне моего мэйнстрима, ну там еще пол дюжины либ надо обновить, от которых куча других, более ранних товарищей со своим охуенным мэйнстримам зависят. Да ладно хуйня-война. - Слушай сервак во внутренней сети, инета нет, запилика мне еще пип со всеми актуальными либами, свой-то вы слишком хуево мэйнтените, мой мэйнстрим с ним не работает. - Ясен хуй, приходи в следующем году, а я пошел деплоить.
Ну ты такой махнул рукой и пошел в охуенную не лесную компанию, а там оказывается все можно, ставь мэйнстрим, можно даже в бете, качай либы, охуенно. Только потом получается, что и не нужен никакой правильный подход. Можно нахуярить как попало и отправить людям на суппорт, пускай, суки помучаются, тупые слоупоки.
>>889938 Ты наверно таким образом на амазон намекаешь, но весь их девопс только на бумаге пиздат. Что мы видим на деле? Если все так заавтоматизированно, то почему вся внутренняя инфраструктура доставки виртуальных инстансов досих пор на 6 центос? S3 кластеры на центос6.5, охуенно. Ладно хер с ним. Что клиентам? Пишите лямбды на питухе 2.7? как так? >> Если ты сидишь в "в полутемной избушке я рад, что ты в ней сейчас не сидишь, но рано или поздно, начнешь работать и сядешь в нее. Или в какой-нить светлый стартап с первым проектом(он естественно будет на мэйнстриме). Если стрелнет, останется твой 3.4 навсегда с тобой, и на 4-ый или пятый ты даже глядеть не будешь, проблемы уже другие будут, природу не обмануть.
>>889955 Нет, на амазон не намекаю. Просто у тебя какой-то надуманный конфликт между "поставить мейнстрим и все остальное сломается" и "мшистое говно, зато работает". Либо ты просто ленивый ретроград, которому в лом поднять пару докеровских контейнеров.
>>889980 иди подними свои контейнеры на 2.6 ядре. Между прочим, конец суппорта таких дистрибутивов 2020 год. Какой бенефит ждет контору от того что все начнут юзать 3.4 вместо 2.7, чтобы взять так и замутить внеплановую миграцию всей инфры на репозиторий с ядром, который имеет поддержкй до 2025 года? надо подходить к вещам с практичной точки зрения, а не заниматься хуйней, пейрейти девелоперу с 2.7 на 3.4 делу нескольких дней, перевести всю инфраструктуру год(для средних), полтора(для крупных).
>>889981 >иди подними свои контейнеры на 2.6 ядре "У нас перфокарты твой третий петон не примуть! А потому и не надоть. Томуж до страшого суда срок поддержки перфокарт-то!" Ясно-понятно.
>Какой бенефит ждет контору от того что все начнут юзать 3.4 вместо 2.7 Разработчики смогут использовать плюшки 3.4, очевидно же. Кому не нужен 3 питон, могут дальше жевать 2.
>внеплановую миграцию всей инфры >перевести всю инфраструктуру Но зачем? Оставь легаси в покое, дай ему умереть, Добрый Доктор.
>>889980 >>"мшистое говно, зато работает" открой глаза, мшистое говно оно только потому, что в 90% случаев продукт доставляется один раз, дальше вялая поддержка для хотфиксов, в лучшем случае. Этот код, по сути, мертв после того, как его вывели в прод. Им больше никто не занимается, все девелоперы кинулись на новое говняконье. Поэтому, в любом случае, изменение внутри кода можно не ждать, ключевые люди уже не следят за ним, остается держать рабочее состояние путем минимального измения зависимостей, это очевидно. Про контейнеры сказано выше, это все еще не мэйнстрим, к 2020 году, возможно, будет массовый переход к ним(если что-то еще не появится). Если у тебя только один проект и он ключевой в бизнессе, то все немного проще. Когда твой бизнесс не в айти, а айти отдел только сопровождает вдруг из ниоткуда появившиеся проекты, тут совсем другой расклад.
>>890000 >>Разработчики смогут использовать плюшки 3.4,очевидно же. >>Кому не нужен 3 питон, могут дальше жевать 2. для меня это не очевидно, подробнее можно? Как питон 3 сэкономит год человекочасов потраченных на внеплановую миграцию? У бизнесса все просто, он открыт для любого мэйнстрима, только в момент окончания поддержки на текущий продукт, это заложено в планировании. Если у тебя есть веские аргументы пересмотреть планирование и начать экстренно переводить системы для подержки новой версии назови причины. Все просто, за пустое пиздабольство им и останется.
send_keys(random.choice(filesAll)) File "/usr/lib/python2.7/random.py", line 273, in choice return seq[int(self.random() * len(seq))] # raises IndexError if seq is empty IndexError: list index out of range В чем ошибка?
>>890010 С тобой тяжело говорить, ты не помнишь начало разговора. Давай напомню >2.7 Это то, что ты будешь на работе юзать >На работе, там где чисто и светло, все давно уже перешли на 3 ... >Этот код, по сути, мертв... Им больше никто не занимается Получается что? Работающие разработчики когда-то давно закончили проект на 2.7, перешли на 3 на новом проекте. Работают они на 3-й версии.
>>890021 >>> a = [] >>> import random >>> random.choice(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python27\lib\random.py", line 275, in choice return seq[int(self.random() * len(seq))] # raises IndexError if seq is emp ty IndexError: list index out of range >>>
>>890023 если ты сделал проект на 2.7, и вдруг думаешь что следующий сможешь доставить на 3 в той же компании и структуре, то ты ошибаешься. После того как ты закончил проект на 2.7 были наняты в отдел суппорта дешовые макаки которые могут поддержать твой проект на 2.7. Если ты придешь с архитектурой где в новом проекте значится новая версия технологии, то отдел суппорта скажет твоему ПМ, что бля для этой хуйни нужен новый человек и вкладывай его ЗП в бюджет нового проекта, после чего ПМ почешет репу и пошлет тебя нахуй с твоим новым питоном, и оставит на 2.7 так как в отделе суппорта на эту технологию человек уже есть. Это очевидно, ты просто еще маленький и нихуя не прочувствовавший человечек.
>>890033 мало того человек, в бюджет войдет новая ось где есть питон 3, которую тоже кто-то поддерживать должен. Это тупое отношение девелопер к процессу. Они думают что после того как они все выбрали, костылей нахуярили, теперь все будет работать само собой, а если инцидент, есть кто-т,о кто в моем говне разберется и обязательно критически важную систему за 10 минут восстановит, независимо что там, хаскель кложур, может даже по пьяни луа вхуярить решил, ради прикола.
>>890031 Странно что когда было так, driver.find_element_by_name("file").send_keys(random.choice(filesAll)) он работал, добавил time.sleep(1) и перестал.
>>890033 Ты странный, если на полном серьезе думаешь, что все переходят на 3 питон потому что "модная технология, отлично идет со смуззи!" Переходят потому что в результате работать становится удобнее и быстрее, можно делать конкурентноспособные проекты.
>>890035 "Это камень. Ууык проковырял в нем дырку и надел на палку. Племя умеет бить этой штукой других по голове. Нам нравится. Ык-Ык придумал кривую палку с веревкой, сказал можно из неё стрелять. У нас есть палки с камнями и суппорт для них, остальное не нужно. Ык-ык - глупый хипстер. ПМы племени плюют на него."
>>890043 Ты простой молокосос, твои доводы, удобнее, дрочу больше и т.п. просто идут нахуй. Фактов и примеров выгоды нет никакой, поэтому могу сделать вывод , что питон 3 сейчас удел нищебродов без финансового планирования.
>>890046 Давай-давай, разрядись, своему ПМу ты это, ведь, сказать не можешь. Пашеш на него за копейки и протестуешь тут на дваче. Или можешь, но всем похуй на твое мнение.
Я вот собираюсь писать приложение на фласке где надо логинить и регистрировать юзеров. Я думаю: мне это писать самому используя встроенные сессии или же использовать готовое решение в лице Flask-User? Если я буду писать сам, наизобретаю велосипедов, если же с готовыми решениями, то в приложении будет много непонятной магии. Посоветуйте что делать.
>>890076 Это же питон, дядя. Ты можешь просто посмотреть реализацию всей этой "непонятной магии" во фласк-юзер и прояснить для себя все вопросы. Использовать (чужой) код повторно — не зазорно, а правильно, потому что экономит время для более сложных задач. А вот изобретение велосипедов — зашквар по определению.
На связи анон со своей имиджбордой. Решил избавиться от крона и опробовать celery, накатил rabbitmq и celery, вроде разобрался как это должно все работать, но не понял, как заставить мои таски работать с периодичностью? Нужно чтобы задача отрабатывалась раз в час
http://pastebin.com/4LXFeEjg Господа, не могли бы вы великодушно подсказать, как мне, в нубской моей бытности, понимать вещи вроде VIR_DOMAIN_AFFECT_CURRENT. Глупое, возможно, предположение в том, что это имя сишного макроса, выдающего нумер для переменной flag. Что здесь следует делать? Искать сишные исходники? Правильно?
Пинаю тут home assistant. Как распарсить нестандартную дату вроде 2016-12-08T20:39:40.697172325+03:00? Вот такой вариант что-то не работает [CODE]strptime(value_json.stateChanged[:19], "%Y-%m-%dT%H:%M:%S") [/CODE] https://home-assistant.io/topics/templating/
Гайс чет туплю, вот у меня есть форма наследуемая от модели. Я хочу добавить в неё свое поле, никак не связанное с моделью, в field я вроде как указать его не могу т.к. там только поля из модели, а переписывать форму хз как.
>>891005 я в мете в fields указываю какие поля нужно выводить соответственно он только их и выводит. Если я перед мета попробую определить поле как-то так comments_sage = forms.CheckboxInput() то я сосу бибу, ибо выводится ток с fields все
Аноны, прошу помощи. В питоне новичок. Мне нужно запустить другую программу через терминал, затем программе нужно написать "y". os.system(...) os.system("y") - не работает Как мне передать в другую программу текст?
>>891019 Nope. Вот кстати еще одна странная вещь >value_json["query"]["created"] Работает >value_json["query"]["results"]["rate"][0]["Rate"] А вот это нет
Пытаюсь разобраться с куками. Как в джанго положить данные не в сессию, а в куки? Пытаюсь как-то так сделать response = HttpResponse('blah') response.set_cookie('bar', 'baz') Но браузер говорит, что куки пустые
>>891287 ы пытаюсь сварить пельмени: кидаю пельмени в кастрюлю, жру их нахуй, а потом воды в кастрюлю наливаю. батя говорит что я ебанутый и пельмени у меня не проваренные.
Сейчас я буду учиться кодить на питоне пайтоне и рассказывать про свои ощущения ниже спины. Никогда не кодил. Я знаю, что вам всем интересно, не волнуйтесь, я обо всём расскажу.
Решил использовать вижуал студио 2015, так как она у меня есть я её однажды запускал. А ещё она вроде как совершенно бесплатная со всем функционалом, если только ты не крупная компания.
Пришло время второго урока. Щас как наебну про переменные и типы данных и пойду взламывать двачь и выкладывать приватные фотографии макаки.
>>891553 > Гонять питонов под виндой еще и в вижуал студии А что такого? Это же просто буквы и цифры. В ШИНДОВС буквы тоже можно вводить, даже потом переустанавливать не придется. У меня довольно мощный комплустер, скорее всего я даже не замечу разницы между студией и тем блакнотиком, который можно скачать с официального сайта языка.
>>889846 (OP) начал вкатываться в питон. и сразу же начал писать йоба прогу прихуячивая к ней кучу библиотек. panoramisk, pyqt, psycopg, suds а сейчас мне нужно будет работать с паролями и я хз то ли прихуячить либу. то ли самому шифровать пароле и держать в базе и потом хеш сравнивать. Да блеадь один хуй прийджется прихуячитвать либу с шифрованием наверн.
Каороче сразу же несколько вопросов: Они ахуели так быстро версии плодить? Я заебался искать либы. Одна под эту работает, ждруга ниху яне раболтает пизжец Че посоветуешь по ООП, синхронность и т.п
Т.к максимум, что делал это писал скрипты на баше. И да че ты там думаешь про функциональщину.
>>891902 Не понимать твоих проблем с версиями. Версии всего 2, и либо либа не работает с 3 питоном, либо она работает, всё нахуй. Если не работает - ищи аналоги, или доброго анона с гита который перепилил либу под 3 питон. passlib - либа для работы с паролями.
Аноны, есть программа с pyqt5, есть кнопка которая запускает скрипт, теперь же мне нужно вывести результат работы скрипта(таблица), как мне это сделать/в каком направлении копать/как правильно спросить это у гугла(а то он мне даёт ссылки на уроки, а там не то)?
>>892097 Не за что. Оно тебе надо? Гугли что-то про активацию программ левыми серверами(хотя я не уверен что тут это именно то, но кругозор расширишь).
Задача запилить ответы как на дваче. Т.е. у меня есть ссылка, по клику мне нужно добавить в форму некий шаблон(>>id), который бы обрабатывался бы из простого текста в ссылку. Честно говоря, не понимаю даже с какой стороны подступиться к данному вопросу.
>>892200 Парсишь текст сообщения на бэкенде во время обработки данных формы - ищешь шаблон, который начинается с ">>" и заканчивается пробелом. Это и есть id поста, на который отвечают. Дальше прикрепляешь это сообщение к посту.
Есть качалка файлов, которая качает файлы по хттп. Сейчас программа однопоточная. Собственно, скачаиванием и запись. занимается функция download_file, Можно ли с помощью asyncio запилить (псевдо)многопоточность, чтобы файлы скачивались одновременно? Если можно, то как?
Подскажите хорошую книгу-гайд по построению нейронных сетей на питоне. Чтобы с самого начала, с объяснениями, с кодом и задачами. Хочу разобраться как это работает, но нужно чтобы объяснили как оно работает в общем.
>>892447 Ну вот видимо не установил тыт pip. Гугли как ставить на виндовс это вот всё и как там в path (или как там правильно называется?) pip добавить. p.s. а если пишешь просто pip?
Пытаюсь написать мини-скрипт на питоне с vkAPI, как обойти ограничение на количество запросов в секунду? В документации пишут про метод execute, но там надо писать весь код на каком-то VKSCRIPT, нахуя мне тогда питон, спрашивается?
Как можно обойти это? Мне и трех запросов в секунду хватит, скрипт мелкий.
http://pastebin.com/XNHpgWW6 Аноны, как переписать этот кусок говнокода. vectors_list, code_book - списки в которых лежат 4х4 массивы numpy состоящие из np.uint8.
чому оно нихуя не хочет показывать и выдаёт Exception Type: TypeError Exception Value: descriptor 'date' requires a 'datetime.datetime' object but received a 'datetime.date'
>>892704 Дело в том что пока оно всё в одной функции - всё работает. А когда я в целях оптимизации выгребашки по интервалу вывел в отдельную функцию я отчего-то стал мощно сосать хуи. Ну и честно говоря тыква у меня уже не соображает за день
кун 17лвл врывается в тред знаю питон на уровне 100-200 решенных задач на кодфорс, тобишь голый питон, без модулей. теперь думаю получить пользу от этого, а не заниматься бесполезной хуетой как дрочево задач. например там, распарсить сайт, спиздить данные, с апи работа (понятное дело, что модули везде свои), там же нужна многопоточность или типа того, да? или там брутфорс написать. в общем, какие модули надо знать, чтобы воротить подобную хуйню? или даже так: какие модули пригодятся в будущем, мб для работы или для хуйни, которую я выше описал. хочу сделать что-то дельное, что работает, а не "input -> algo -> output"
>>892201 Столкнулся с первой проблем. Распарсил я текст, нашел нужный мне шаблон, но ведь это текст, как мне его превратить в ссылку? Была мысль обнести этот текст <a> </a> но ведь на этапе рендеринга страницы он просто вытаскивает текст из моей переменной т.е. страница отрендериться раньше, чем я укажу <a> </a>/
>>892841 1. Можно хранить уже готовые ссылки в бд. Парсишь текст, находишь айди сообщения, кладешь его в тег <a>, сохраняешь в бд. Потом просто выводишь этот текст на страницу, пометив как безопасный {{ text|safe }}
Доброго времени суток, Анон. Вопрос конкретно по пайтоновской магии. Я бы поискал на StackOverflow, но даже вопрос нормально сформулировать не могу. Возможно, ты сможешь мне помочь. Суть такова. Есть список с id'шками. В нём может быть и 10, и 17, и 100, и 9000 значений. Есть ли какой то хитрый синтаксис, позволяющий это список поделить на списки <= 25 id'шек? То бишь, из списка в 100 id'шек, получить 4 списка по 25 id'шек.
>>893080 Извини, анон, но очень туплю. Ты можешь написать это кодом? Вот ещё раз то, что я хочу получить: https://repl.it/EnjX/0 Буду очень признателен.
>>893089 > [data[i:i+25] for i, x in enumerate(data[::25])] Всё равно хуйня. Нахуй нужен энумерейт по данным вообще? Достаточно range(0, len(data), 25)
Анончики, такой вопрос. Есть двумерный массив, его надо вывести в консольку, чтобы получилась таблица, поля под заголовками, все ровно и красиво. Погуглил, нашел форматирование строк, но вот в чем проблема: везде примеры с двумя-тремя столбцами, а у меня их от полтинника по двум осям. Как это все отформатировать? Использовать как-то цикл в форматировании?
-------- Наглядно. Как из этого: [['Name', 1, 2, 3, 4, 5], ['qwer', +,-,+,-,-], ['qqq', +,+,+,+,+], ['aaa', -,-,-,-,-]] Сделать это:
Name 1 2 3 4 5 qwer + – + – – qqq + + + + + aaa – – – – – Причем количество строк/столбцов меняется каждый раз, нужен цикл. Но где и в каком количестве?
Есть простенькое приложение для одной конференции, особо нихуя сложного там нету Но! Надо где-то хранить введённый в поле пользователем юзернейм без регистраций и всего такого Как это проще всего сделать?
>>891539 Пилю репорт. И так, я не так уж и много времени посвятил Питону за это время, потому что играть в игры и мастурбировать интереснее, а ещё мне нужно фрилансить не кодингом на еду. Так вот. Накатил я, значит, питон на Вижуал Студио. Запустил. Русский язык не поддерживается - выдает ошибку в сосноли, когда пытаюсь исполнить код, где присутствует хоть один русский символ. Я такой - ой, всё. Накатил Пайчарм. Запустил. Пытаюсь создать просто страничку с кодом - он шлёт меня нахуй десятью способами, всё изменяется как в страшном сне - то тут была строчка, когда нажимаешь на второй сверху "run", на который надо нажимать, когда в первый раз запускаешь проект, то её нет, то код не подсвечивается и я такой - ой, всё. Вернулся в Вижуал Студио. Нажал одну кнопку, всё с русским языком заработало, минута в гугле. Нажал другую кнопку - открылась Пайтон 3.5 Интерактив, куда можно писать код в реальном времени. Найс, приятно. Продолжил смотреть мутные курсы. В мутных курсах было мутное введение а затем мутная математика и мутная Булевая логика. Сижу, слушаю охуительные мутные истории сейчас. Я уже умею использовать скриптовый язык как калькулятор (который написал за меня кто-то другой). Совсем скоро я стану гениальным программистом!
>>893751 Ну же, посоны, как проще запоминать какие-то данные юзера? Что б он по сто раз не вводил "имя - организация" а хранилось это как-то на сервере и ему само в поля заполнялось если есть
Пишу на джанго опросники для конференции. В процессе докладов и выступлений будем ими опрашивать слушателей что они думают по тому или иному поводу. Программа "минимум": что бы человек по 20 раз не вводил под каждой заполненной анкетой своё фио Программа "максимум" что бы человек этот от скуки по 10 раз не заполнял анкету (погрешность разумеется быть может и тут никаких проблем если участник зайдёт и заполнит с айпада, а потом ещё и с телефона, но не что бы он от скуки шлёпал все 8 часов одну и ту же анкетку)
всё это крайне желательно провернуть без регистрации, потому что там будут те ещё слоупоки
Так-то и я вывести смогу. Но я хотел, чтобы под каждой цифоркой был свой знак, прям ровно под цифрой. А если у меня в таблице будет имя из 30 символов, таблица пиздой накроется.
Надо как-то сделать, чтобы было фиксированное количество символов в столбике, например. Или вообще подключить библиотеку каких нибудь таблиц, есть же такая? Похуй, хелпаните хоть как нибудь, я мозг второй день ломаю
>>894024 > Лучше вон курс пройди > English, Субтитры:Italian, Spanish, Chinese (Simplified) Я не пойму добрую половину, как мне кажется. Я в разговорном то английском на слух понимаю ~80-90%, если говорят без акцента, а если будут использоваться какие-то узкоспециальные слова, то я нихую не пойму, инфа сотка. Да курсов то и задачек с объяснением решения хуева туча, найти не проблема, только делай.
>>893801 > Silent Hills, который Konami отменила? Да, вот ещё один монстр пикрелейтед.
>>894028 Если уж разговорный английский на слух хоть как-то понимаешь, то с лекциями вообще не будет проблем. Плюс ты сейчас на стадии, когда у тебя уже есть база, а значит к концу курса ты ещё и английский нехило бустанёшь. Что важно, потому что без технического английского ты хуже червя пидора. Ни погуглить нормально, ни багрепорт криво написать.
Аноны, есть два словаря, названия ключей в которых могут пересекаться. Как их соединить, но чтобы при совпадении ключей значения не перезаписывались а добавлялись?
>>889846 (OP) красноглазые антошки нужна ваша помощь. В пт нужно сдать какой-то проект на экзамен по питону.Учили всего 1 семестр прошли регулярные выражения, библиотеки re,pygame,matplotlib и всякого по мелочи.Так вот, что можно сделать адекватного? Препод говорит, что достаточно и хорошего скрипта или чего-то такого.Количество кода не учитывается, главное качественно и KPACUBO. Пока что у меня чуть меньше чем 0 идей.
Аноны, у меня есть сайт на дажнге и дефолтная база на SQLite. Как можно воспользоваться джанговской ORM из стороннего скрипта? Т.е. запускаю скрипт - результат он добавляет данные в базу
посоны, а подскажите плиз как в джанге сделать в админке удобную для трёх моделей одновременно:
есть модель Опросник: она простая как банка пива:- время начала, время конца, и ForeingField на объект "расписания" есть
есть модель Вопрос: ForeingField к Опроснику Заголовок
есть модель Выбор: ForeingField к Вопрос:
в админке было бы здорово слепить их все вместе, я пробовал Inline'ами - создавать администратора только для Опросника, в котром подгружать inline TabularAdmin с Вопросом, в котором в свою очередь подгружать TabularAdmin с Выбором - джанга была категорически против
Как хоть вопрос этот сформулировать что бы загуглить?
>>894344 спасибо за оба варианта, команду было бы удобнее я к той же базе хочу еще пару скриптов на scrapy привязать, хз насколько это адекватное решение
Гайс накатил django-el-pagination. Вроде все работает, но правда не совсем так как мне нужно. Мне нужно, чтобы при прокрути прогружался только контент, у меня же получается, что при скроллинге с доп. контент у меня прогружается снова вся страница с инклюдом. Как решается данная проблема?
Здравия желаю, анон. Есть ли под питон IDE, чтобы кнопки нарисовал, onclick навесил с кодом и заработало? Просто с разметкой гуи больно не хочу мозги грузить. И под андроид. P.S. Kivy чекнул - все код пишут.
Посоны, мне говорили такую программу нужно делать на питоне, это так? Я точно не знаю, как объяснить, но попытаюсь В общем: есть такие сайты с одеждой(как пример) Каждую неделю в определенное время(для примера пусть это будет 13:00) туда выкладывают новые вещи Эти вещи разбирают за секунды и поэтому меня интересует программа/расширение или скрипт, который может: Например с 12:59 постоянно обновлять сайт, пока не появятся вещи По ключевому слову(например "santa tee") программа выбрала ее Потом автоматически добавила в корзину Потом перешло на checkout После будет страница с данными, и чтобы все было заполнено и нажата галочка где terms and conditions(например как autofill работает), но тут обязательна пауза в 2-2,5 секунды И все
А что можно почитать про мастер-мастер репликацию 2 сайтов на джанго? Или как лучше сделать что бы два сайта полностью синхронизировали между собой все содержимое бд в реальном времени
Анон, как сделать так чтобы локально у меня локальная бд работала, а на хероку своя подрубалась? Знаю что через переменные окружения сделать выбор, но не понимаю как это реализовать.
>>894681 Бампану. https://dpaste.de/QKeJ - main https://dpaste.de/PD9k - pagination При скролле вниз у меня заного отрисуется main но уже с другим контентом из pagination(т.е. у меня на странице при скролле будет постоянно повторяться код из main до {% include %}. Как решать это?
Кто-нибудь тут лутца программирование проходил? Какие-нибудь задачи решали по ходу дела? А то вот я читаю про все эти потоки тыры-пыры, а этот гад ни одной задачи для закрепления в конце глав не выдает, я же до завтра всё забуду.
Анон, как вообще в базе данных сохраняют статьи с картинками и форматированием (хоть просто сохранение структуры)? Я уже пробовал сохранять все это как текст с markdown, но чувствую, что это неправильный путь - потом непойми как атрибуты у тегов менять.
>>895507 а если я еще хочу тамбнейлы к изображениям прикрутить? Т.е. сразу все сгенерировать с шаблонаим типа > {% load thumbnail %} > {% thumbnail image.image "300" as im %} > <a href="{{ image.image.url }}"> > <img src="{{ im.url }}" class="image-detail"> > </a> > {% endthumbnail %}
>>895520 numpy - быстрые операции над массивами. pypy - бысрая имплементация питона, жид-конпеляция. ctypes - сишные либы использовать.
Это что я знаю. А вообще, ты бы задачу свою написал сперва, что ли. А то абстрактно это глупо звучит: "пасаны, я сделяль что-то супернагруженное на медленном скриптовом языке, как теперь ускорить, чтобы как в С++ стало?"
>>895514 >пережует? Хмм, я затрудняюсь ответить. Попробуй какой-нибудь из встроенных шаблонных тегов вставить в эту разметку и проверить рендерится ли он. Наверное, должно работать. Может, его надо будет предварительно отрендерить во вьюхе и потом передать в шаблон.
Еще ты можешь попытаться не использовать sorl-thumbnail, а генерировать тамбнейлы как-то по-другому (во вьюхе?) и в разметку сохранять только ссылки на оригинальное избражение и тамбнейл.
Еще, возможно, вот такой вариант есть. Наверное, ты мог бы сделать у модели поле FileField и хранить в нем этот свой шаблон с разметкой, всякими тегами и т.п. То есть, получается, что твои шаблоны будут храниться не в бд, а в какой-то папке. А потом делать {% include post.content.url %} в том шаблоне, в который хочешь включить этот контент.
В своих шаблончиках ты можешь иметь переменные (w - для ширины изображения, например): > {% load thumbnail %} > {% thumbnail image.image w as im %} > <a href="{{ image.image.url }}"> > <img src="{{ im.url }}" class="image-detail"> > </a> > {% endthumbnail %} И потом, при включении этого шаблона в основной, передавать какое-то значение этой переменной {% include post.content.url with w="300" %} Тогда получится, что разметку и какие-то параментры тегов в твоих шаблонах менять не придется. Возможно, это также сработает, если вся разметка хранится в базе. Тег include может принимать переменные. Если в переменную поместить отрендеренный шаблон, то может сработать. В общем, проверяй. https://docs.djangoproject.com/es/1.10/ref/templates/builtins/#include
А вообще, для чего тебе понадобилось хранить всю разметку в бд? Это ты генерируешь каким-то редактором или что?
Нужна хелпа с кодом.Аноним16/12/16 Птн 22:12:05#296№895593
Требуется написать алгоритм, но НЕЛЬЗЯ использовать различные библиотеки:
Умножение перестановок n из элементов, нахождение обратной перестановки, нахождение степени перестановки, разложение в произведение непересекающихся циклов.
>>895554 > А вообще, для чего тебе понадобилось хранить всю разметку в бд? Я вопрос выше задавал: есть много статей вида "текст - иллюстрация - текст". Нужно это все как-то запихнуть в базу данных, но хочу сохранить возможность дальнейшего редактирования. Уже второй день обыскиваю интернеты на предмет "how store an article with images in db" и подобного. Туториалов по создать бложик полно, с картинками - ни одного. Но ведь джанго парнями из прессы сделан - должны быть сотни примеров статей с иллюстрациями и тд. У меня есть вариант с markdown, там и изображения и текст легко войдут, но опять получится, что я кусок цельного кода в базе храню - чувствую, что говнокод пишу. Выше предложили вариант хранить уже сразу html, но это кажется таким же костылем.
Сейчас придумал еще один: с модели сделать поля source (json со стркутурой статьи), marked(готовый html) и updated(булин). Во вьюшке проверять updated, False - статья рендерится первый раз или хочется что-то поменять в тегах, атрибутах, содержании: собираем html из исходников, записываем в marked и в след рендеренге используем его. True - сразу берем marked и запихиваем в шаблон. Какие подводные камни?
>>895615 возьми ЛЮБУЮ cms и посмотри как там сделано, заебал. в джанго тупо сохраняется то, что пришло с браузера - т.е основная работа происходит на js (tinymce, ckeditor, тысячи их). картинки аплодятся аяксом в ответ приходит урл, js этот урл вставляет куда надо. по нажатию кнопки "сохранить всю эту ебанину" в джанго отсылается html с вставленными ссылками на апложеные картинки. все.
>>895615 Подумай о том, что у тебя есть и что ты хочешь в результате получить. А есть у тебя размеченный текст. Если конечно исходник не вида "воттакиеунаснасайтестатьиоченьздоровоихчитатьахаханетнихуянездорово", то хотя бы знаки препинания, пробелы и переносы строк есть. Если нужны дополнительные свистоперделки (жирный, курсив, картинки и т.п.) то выбираешь какой-либо из других вариантов разметки (и да, HTML это тоже Markup Language). Теперь подумай, что ты хочешь получить в результате. Если только HTML - то храни в HTML и не выебывайся. Если тебе надо рендерить в дюжину других форматов - поищи разметку, которая конвертируется легче и занимает меньше места.
>>895822 ну он тебе и говорит что не может найти NewType в модуле, объяви ему NewType: NewType = type("NewType", (object,), {"x": 'hello'}) d = pickle.dumps(NewType, 2)
>>895860 >>не может найти Где идет поиск, в каком месте(структуре) он ищет? NewType = type("NewType", (object,), {"x": 'hello'}) Понимаешь я рассчитывал что type("NewType", (object,), {"x": 'hello'}) позволит динамически вводить новые классы, а то что ты предложил равносильно:
class NewType: x='hello' Питон похож на СИ-говно присыпанное синтаксическим зерном в таком случае.
>>895871 >Где идет поиск, в каком месте(структуре) он ищет? attribute lookup NewType on __main__ failed >рассчитывал что type("NewType", (object,), {"x": 'hello'}) позволит динамически вводить новые классы можешь название класса в переменную запихнуть: classname = 'NewType' globals()[classname] = type(classname, (object,), {"x": 'hello'})
>>895877 пиклится всякое при мультипроцессинге например... и прочее. но я в такие дали не залазил, да и не надо было. проще в джсон сериализовать что надо. >>895881 globals - содежит переменные корневого модуля, так как ты запускаешь свой скрипт из просто тупо файла, твой крневой модуль __main__
>>895883 globals()[classname] = type(classname, (object,), {"x": 'hello'} Как бы здесь никаких __main__ не видно и обращаться в тоге надо совсем к не очевидному имени. Что как бы не по шариату. И вот думается, много ли ещё таких не очевидных вещей в языке с провозглашенным символом "Очевидное лучше неочевидного".
>>895940 быстрее да, но джсон универсален, если конечно нужна универсальность. хотя я не припомню когда бы я пиклил что нибудь не для передачи во внешнюю прогу.
>>895996 >есть одна здоровая кастрюля борща, гигантская сука полная борща, посоны как его? чо с ним делать? я его попробовал сразу весь выпить кароч и охуел, 22 дня откачивали.
Двачаны, а подскажите пожалуйста как в шаблоне проссумировать одну колонку объектов? Как это сделать во вьюхе я понимаю, а в шаблоне как? Там только .count() на queryset'е работает, но мне это не нужно
>>889846 (OP) Занимаюсь на codecademy, процесс идет медленно это точно годнота или я трачу свое время. Все что там написано, например, понимаю, но меня что-то гложат сомнения мб начать читать книгу?
>>896642 да + SQL + верстку на уровне HTML + CSS + родной JS + Jquery + администрирование linux на уровне уверенного пользователя + asyncio/twisted/tornado.
Запутался я в регэкспах. Есть две строки: >img="/dir/image.png" >img="/dir/image.png?resize=10x10" Имея обычный r'abc="(.?)"' можно выцепить в группе ссылку. Но как сделать так, чтобы он матчил строку, в которой это ?resize присутствует? (?!...) как-то очень непонятно вместе с . работает. Буду благодарен помощи.
>>896942 Нуу, а если предположить, что мне там и картинки с названием текстом ti_plohoy.png хватать не нужно? В два шага (ведь после твоей проверки, собственно, саму ссылку всё равно доставать нужно) можно и банальным if x in link сделать, к чему этот чрезмерный парсинг.
Изучил базовые вещи на codeacademy. Установил последний питон. Теперь не понимаю что с ним делать и с какой стороны подступиться.
Спрашиваю тут (так как гугл больше запутал) - какие софтины еще ставить? Вы что используете? Для чего они нужны? Очень прошу ответить в формате: софт 1 нужен для Х, софт 2 нужен для Y.
>>897012 А что ты хочешь сделать? Если так на секундочку отвлечься, то питон это очень мощный, современный ЯП с кучей либ из самых разных отраслей знания. Ты же ведь взялся за него с какой-то целью?
Пацаны, хочу своё говно на амазоне запускать. Зарегался, но на меня вылилася ушат дерьма в виде миллионов различных вариантов использования, настроек, видов и прочего. Как вообще всё это происходит на амазоне? Вот у меня есть главный сервис, он будет запускать на отдельных инстансах ec2 воркеров и управлять ими. Где и как мне готовить "образы" (?) с установленными либами для пифончика и куда мне вставлять сам код?
>>897055 >А что ты хочешь сделать? Для начала хочу изучить получше язык, решить пару сотен задачек, а уж потом понять куда двигаться более углублёно. Для этого мне нужно понять какой софт установить и для чего. Другими словами - мне сейчас нужно обработать массив данных, я знаю какой код для этого нужно мне написать, но совершенно не понимаю куда его ставить и как запускать.
>>897022 >Текстовый редактор нужен для написания кода. >Консоль нужна для запуска кода. Всё. Ты серьёзно так работаешь?
Пишу миииикросервис на Фласке. Нужно сделать что-то типо страницы для админа, соответсвенно сайт не мультипользовательский. Как провернуть такую хуйню чтобы не прикручивать БД?
>>897088 > Ты серьёзно так работаешь? Ты серьезно думаешь, что тебе этого не хватит на первое время? Ну можешь накатить еще сотню либ, иде самую навороченую, а толк?
Может тупо поле в которое вводишь "пароль". Или поставить пароль на папку, когда по этому урлу заходишь там в браузере окошко всплывает. Забыл как эта фигня называется.
Всем здаров. Первый раз у вас, так что сорри если что то не так скажу. Мне нужно выкачать инфу с reformagkh. Я вышел в интернет с таким вопросом, там сказали, что нужно парсить штлм. Короче на гитхаье я нашел какой то скрипт. Но проблема в том , что я вообще не шарю в этом. Я понял что мне нужен 2.7, я его скачал. Затем там сказано, что нужно установить модули progressbar, requesocks и stem. А модули эти нужно устанавливать в свою очередь через pip. Естественно у меня нихуя не получилось. Скажите, может ли кто то помочь с этой херней и насколько это сложно вообще, ибо я, как и сказал, оладушек, из програмирования могу только виндовс переустановить.
>>897443 Попробуй Sublime Text. Написал код, нажал F7.
https://www.continuum.io/downloads Есть ещё Жупайтер Ноутбук. Это такой продвинутый редактор, где код можно запускать скрипт по кусочкам. Удобно что-то пробовать и прототипировать, хотя умеет оно намного больше.
>>897494 Встроен. Ты в пайтон шелле пишешь, это интерпретатор пайтона, ты туда питоний код должен писать. А pip надо писать в обычной консоли, это отдельная стэндалонная прога, которая ставится вместе с питоном.
>>897088 Ну, собственно как этот >>897022 расписал. В качества редактора использую вим вот с этим https://github.com/amix/vimrc конфигом. Из "программ" которыми постоянно пользуюсь разве что virtualenv(wrapper), ipython и ipdb (очень часто). Ну и pip конечно. Работаю джангистом уже пару лет если что.
>>897497 Да нет, я в строке и писал. shell до того как ты сказал даже и не видел >>897539 Мне просто нужны данные. Вот инструкция: https://github.com/nextgis/reformagkh Обьясни мне, это сложная хуйня, сколько я буду с этим ебаться? потому что я решил, что это относительно выполнимо.
>>897606 Ну серьезно, анон, я ж видео на ютюбе смотрел. Там тип просто в консоле пишет и норм у него, повторяю и не получается. Может по team viewery? Это же не долго, да?
>>897621 ну если асинхронность уже курил, то не должно быть такой реакции, следовательно не курил. пойми асинхронность в питоне, для начала, обучающего материала много.
>>897572 Это тема для отдельного треда прям. Заебало, но не работа, а скорее то как она строится. Хочу чтобы на работе было налажено тестирование, деплой. Чтобы был хотя бы один опытный разработчик который, условно, "все знает". Заебали неадекватные коллеги. На текущий работе - это пиздец. Чел, при установленном джанговском клиенте для редиса, взял саму либу для работы с редисом и написал свой "бекенд" к нему. Заебал менеджмент - все эти задачи которые надо было сделать "вчера" и тд.
>>897630 >Хочу чтобы на работе было налажено тестирование, деплой. сделай >Чтобы был хотя бы один опытный разработчик который, условно, "все знает". стань им >Заебали неадекватные коллеги... Заебал менеджмент стандартно. тащемта Хули ты ноешь?
> сделай Ну, деплой через ансибл я написал, но с тех пор я многое узнал и хочу переписать все роли, но на это потребуется некоторое время, а рабочее не дают. А в свободное я стараюсь поддерживать свой попен сорц. По тестам - это потребует времени. И на внедрение и в дальнейшем при разработке. Плюс, получится так что тестами буду заниматься только я. Остальные типа "выше этого".
> стань им Становлюсь, но с течением времени я начинаю все больше охуеваться сколько я не знаю и сколько еще надо узнать и сделать. Это не быстрый процесс.
>>897622 А, вот. Я типо внес адрес питона куда то и все вроде заработало. Только если пишу pip install stem, то пишет что типо: No module named pip. Типо я его скачать должен, да? я скачал папку.tar.qz, правильно?
Анон, насколько затратный вызов функции в питоне? Например: мне гораздо легче и понятнее распределять куски кода по маленьким(4-5 строк) функциям и уже им передавать аргументы, но 4-5 уровней вложенности уже как-то странновато смотрятся.
>>897838 Если тебе удобнее делать маленькие функции/методы - делай. С вероятностью, близкой к 1, на фоне операций I/O добавление вложенности будет вносить незаметный вклад в общее время выполнения.
>>897489 У меня Agnular 1.5 на работе, полёт нормальный. Как раз никакой ноды с петушиными свистоперделками не надо, из-за того и не стали брать Angular 2 или React.
Анон, вот есть у меня в джанге Post и Image(с ForeignKey на пост). Есть словарь, из которого создается новый пост и изображения(если есть). Посты создаются, изображения - нет. Никаких ошибок не выкидывает. Где я наговнокодил?
Аноны, еще вопрос по джанге уже пару часов пробую решения с stackoverflow: Есть моделька Image с полями image(ImageField) и image_url. Пытаюсь заставить image генерироваться из ссылки в image_url следующей функцией http://pastebin.com/GEzn4bxQ Пробую те же команды из консоли - все работает. Запускаю скрипт - выкидывает ... File "/home/django/Virtualenvs/site/lib/python3.5/site-packages/django/core/files/utils.py", line 19, in <lambda> read = property(lambda self: self.file.read) AttributeError: 'File' object has no attribute 'read'
С нативным JSONfield работал кто в django? Достается он через обычный dict, а значит - в рандомном порядке. Пересаживать на ordered кто пробовал? Видел на гите готовые решения, но выложенные еще появления JSON в postgres+django
Анон, подскажи по M2M в джанге есть код: http://pastebin.com/H0UneREY Пробую зайти через админку - Unknown field(s) (image_related) specified for Post. Check fields/fieldsets/exclude attributes of class PostAdmin. Проверяю через консоль - это поле есть, получается страница видит только поля, которые только в модели прописаны и ей плевать на related_name?
>>899501 > которые только в модели прописаны и ей плевать на related_name Нет, те которые были в форме. В твоем случае форма создалась автоматически из модели (ModelForm).
>>899534 Т.е. у меня в модели Post должно тоже быть поле > image_related = models.ManyToManyField(Image, related_name='post') ? пробовал, выдает > File "/mnt/hgfs/Django_projects/nexus/bakery/models.py", line 29, in Post > image_related = models.ManyToManyField(Image, related_name='post') > NameError: name 'Image' is not defined
>>899542 If you need to create a relationship on a model that has not yet been defined, you can use the name of the model, rather than the model object itself:
>>899546 теперь > Reverse accessor for 'Image.post' clashes with field name 'Post.image_related'. Мне уже кажется, что я больше проблем делаю, хотя все на самом деле просто. Может так понятнее: 1) Есть модели Image и Post, к каждому может быть привязано несколько других Post/Image 2) Хочется в админке Post видеть image_related, а в админке Image - post со списком постов, в которых они используются 3) Вот, например, максимально простой models.py http://pastebin.com/5Kf0ukdS
>>899610 Чтобы "от зубов отскакивало" как в пасте? Я хочу в джангу, и мне кажется, что не обязательно знать кучу вещей про словари, чтение и запись и т.д.
>>899618 one2many я уже пробовал - все работает работало, пока я не решил попробовать это в m2m переделать Хотя, в one2many у меня ForeignKey у Image стоял - опять же непонятно как из админки получить к ним доступ >>899622 там уже про отображение инлайнов в админке, я пока еще с models разобраться не могу
>>899617 Ага, вызубрить pep8, чтобы от зубов отскакивало. Так что ознакомься тоже. Чтобы начать писать на джанге, глубокие знания питона не нужны, хотя и будут полезны. Узнай про основные типы данных и как с ними работать, функции, классы (как объявлять, наследовать, переопределять методы и т.п.). Полезно знать про то, что есть в стандартной библиотеке, чтобы не городить велосипедов. Потом пробуй джангу. узнай про паттерн MVC, разберись как она вообще работает в общих чертах, наклепай какой-нибудь пример или сразу свое начни писать и походу дела разбирайся. Еще тебе понадобятся какие-то начальные знания html, css, а потом и javascript.
>>899631 Спасибо, ананасик. Типы данных, функции уже прошел. Просто в "Думать Питон" задачи слишком сложные какие-то В "Укусе..." лучше Про фронт уже знаю, и планирую его изучить после ООП в Питоне
>>899628 Большое спасибо, таки покопался в инлайнах - related_to таки не бесполезный оказался Все решили две строки > class ImageInline(admin.TabularInline): > model = Post.image_related.through
>>899713 Русское слово будет говном, не отражающим сути. Кроме того, с большой вероятностью так останется "птичьим языком". Но если желаешь, вот тебе прямая аналогия - генераторное включение, списочное включение, и т.п.
>>899716 Компоновка - создание единого цельного объекта из составных частей. В голове сразу есть образ-представление процесса: кубики в коробку складываешь ровными рядами, одежду в чемодан укладываешь и тд. Генераторное включение, списочное включение - у меня вообще никакого визуального образа, "генераторный" и "включение" звучат непонятно, как неудачный перевод. Сравни: Подходит к тебе BATYA и спрашивает - А что это ты тут делаешь? - Да вон, словарик для сайта скомпоновать пытаюсь Батя понял, что ты что-то там в словарь объединить пытаешься Вариант 2: - Да вон, генераторное включение никак написать не могу/ посоны списочное включение написать попросили Не говоря уже о ответах просто "генераторное включение" - тут уже не понятно, глагол это или существительное. Шта, что за генераторы, а кто их выключать будет, а что такое включение и т.д.
Бтв, я первый раз этот вариант перевода вижу, но он проще и лучше звучит, чем эти квазинаучные варианты.
>>899729 >создание единого цельного объекта из составных частей Нет никакого цельного объекта, нет никаких составных частей. Есть процесс ТРАНСФОРМАЦИИ
>первый раз этот вариант перевода вижу Значит будет так: >Я тут компоновку словаря решил применить.. >WUT? >Ну, дикт кемпришэншен.. >А, так бы сразу и сказал ЕБАНУТЫЙ ШТОЛЕ? а не твои фантазии с батей
>>899735 arr = [i2 for i in range(1, 25, 2)] каждый раз берется кубик(i) и добавляется в список, как кубики в коробку, да Если это не составные части(i) и целое(arr) - то я в замешательстве. >Я тут компоновку словаря решил применить.. >WUT? >Ну, дикт кемпришэншен.. я сравнивал адекватность русского варианта с русским, не русский с англ
>>899760 >части(i) и целое(arr) Натягивай кондом на глобус. На самом деле ты включил в код декларацию коллекции, никого не ебут детали, как ты из i чего-то там составляешь .
>не русский с англ И я не сравнивал. Я смоделировал, что будет, если ты начнешь применять свою х-ню ИРЛ в общении с коллегами.
Короче, скомпоновал тебе за щеку, можешь деструктуризировать.
>>899771 > Натягивай кондом на глобус. На самом деле ты включил в код декларацию коллекции, никого не ебут детали, как ты из i чего-то там составляешь. вербальня агрессия со второго поста > И я не сравнивал. не понимает что делает
Все пишут, что питон охуенный язык, пригодится везде и всегда, универсальный, вот это вот все.
Но читая тред, я вижу 80% анонов, которые идут в сторону джанги. 1. Нахуя вы туда лезете при такой конкуренции? 2. Чем еще полезен питон, кроме дальнейшего изучения джанги? Не вижу чет универсальности
>>899840 >Нахуя вы туда лезете при такой конкуренции Да нет там какой-то особенной конкуренции, работа без проблем находится, что в офисе, что удаленная.
>>899840 >Чем еще полезен питон, кроме дальнейшего изучения джанги Торнадо, асинхронные имиджборды с вебсокетами и телочки из копипаситы, рили. Околонаука.
Какой самый простой веб-фреймворк для новичка, для создания собственного сайта уровня визитки? Питухон знаю, веб не знаю, базы данных и жаваскрипт не нужны. Питон 3, пеп8, хорошая документация и наличие готовых примеров.
Пока пробую фласк, выглядит как швейцарский нож, а мне-то только колбаски порезать.
>>900134 > для создания собственного сайта уровня визитки >базы данных и жаваскрипт не нужны. Зачем тебе вообще нужен для этого питон и какой-либо фреймворк? На html напиши все.
>>900162 Уже. Концептуально вроде то же самое по сложности. Не сказать, что сложно, но как-то чрезмерно функционально, что ли, с заделом на мегапроекты. Хотя, вряд ли индустрия испытывает сильную нужду в простых, но нефункциональных фреймворках для дебилов.
>>895326 лутц это справочник почему бы не попробовать тогда проходить хуй знает, википедию, большую советскую энциклопедию, справочник внутренних болезней, список кодов ошибок двигателя внутреннего сгорания шевроле авео 2008 года
>>900335 Вкусовщина Я фласк не люблю потому что морочить голову с алхимией лень, в свое время SQL запросов я на пол жизни вперед написал, а из коробки орм нет
>>889846 (OP) Cлышал что порог приема на работу Python'истом очень низкий, но не знаю кем работают программисты python. Делитесь своими историями, своим местом работы. Фриланс? Полный рабочий день? Зарплата
Внимание, вопрос. Если я список использую в функции напрямую как глобальную переменную, нужно ли как-то явно передавать его в функцию, или и так сойдет?
Прошлый: