После завершения главы 1 у вас должно получиться простое, но функциональное веб-приложение. Во второй части серии мега-учебника по Flask я собираюсь обсудить, как работать с шаблонами.
User
Асинхронный python без головной боли (часть 1)
Почему так сложно понять asyncio?
Асинхронное программирование традиционно относят к темам для "продвинутых". Действительно, у новичков часто возникают сложности с практическим освоением асинхронности.
Но будь я автором самого толстого в мире учебника по python, я бы рассказывал читателям про асинхронное программирование уже с первых страниц. Вот только написали "Hello, world!" и тут же приступили к созданию "Hello, asynchronous world!". А уже потом циклы, условия и все такое.
Как работает yield
Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?
Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist): if self._leftchild and distance - max_dist < self._median: yield self._leftchild if self._rightchild and distance + max_dist >= self._median: yield self._rightchild
Вызывается он так:
result, candidates = list(), [self] while candidates: node = candidates.pop() distance = node._get_dist(obj) if distance <= max_dist and distance >= min_dist: result.extend(node._values) candidates.extend(node._get_child_candidates(distance, min_dist, max_dist)) return result
Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?
** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/
Easy English с левой задней ноги
Привет, Хабр!
Меня зовут Дмитрий и я многократный чемпион по бесплодным попыткам освоить английский язык. Гениальные Д.Петров, С.Дружбинский и десятки талантливых блогеров — не приблизили меня к мечте. Замечательные Duolingo, Memrise, Anki и прочие, помогающие миллионам учащихся — на мне обломались. Два репетитора вернули деньги и рыдая, умоляли больше не приходить. На запрос «таблетка для английского — быстро, недорого и желательно во сне» Google до сих пор недоуменно пожимает плечами.
В конце концов мне пришлось признать, что «God helps those who help themselves», и, собрав в кулак свою лень и немного VSC, я за сравнительно небольшой срок закрыл этот гештальт, ну или почти закрыл.
Мне кажется, что способ, который я предложу ниже, будет полезен многим из тех, кто изучает иностранный язык самостоятельно.
Под катом много скриншотов и незримое «IMHO» перед каждым утвердительным предложением. Скриншоты взяты из моей программы «5 фраз» — предлагаю закрыть глаза на самопиар, а сосредоточиться на подходах.
Как организовать код в Python-проекте, чтобы потом не пожалеть
Каждая минута, потраченная на организацию своей деятельности, экономит вам целый час.
Бенджамин Франклин
Python отличается от таких языков программирования, как C# или Java, заставляющих программиста давать классам имена, соответствующие именам файлов, в которых находится код этих классов.
Python — это самый гибкий язык программирования из тех, с которыми мне приходилось сталкиваться. А когда имеешь дело с чем-то «слишком гибким» — возрастает вероятность принятия неправильных решений.
Структура каталогов для проекта (в частности на Flask)
Топ необходимых Linux-команд для разработчика [Шпаргалка]
Использование командной строки является важным компонентом работы в операционной системе Linux. Некоторые задачи невозможно выполнить с помощью графического интерфейса, в то время как работа через командную строку предоставляет полный контроль над системой.
Цель этой статьи - ближе познакомить пользователей с основными командами, которые разработчики используют в повседневной работе.
Статистика на примерах с Python #1
20+ open source утилит для шифрования файлов на (почти) любой случай жизни
Шифропанкам посвящается. Мы собрали тулкит из популярных программ (преимущественно с симметричным шифрованием), которые помогут защитить личные данные от несанкционированного доступа и попросили исследователя криптографии из компании «Криптонит» прокомментировать наш выбор.
Под катом безопасные решения для шифрования файлов при помощи браузера, для быстрой защиты, пересылки, загрузки в облако шифрованных данных, криптографические контейнеры с двойным дном, десяток консольных инструментов для криптографии и комбайн, объединяющий их под единым графическим интерфейсом. А еще ответы на животрепещущие вопросы, например: «Что лучше AES, Кузнечик, Serpent или Twofish»?
Flask для начинающих
Как начать работать с Flask
Меня зовут Михаил, и я пишу эту статью специально для начинающих программистов, желающих изучить основы веб-разработки с использованием Flask.
Вы новичок в программировании и мечтаете о создании собственных веб-приложений? Эта статья — ваш ключ к пониманию Flask, одного из самых доступных и гибких веб-фреймворков на Python. От установки и простых примеров до работы с данными и базами данных — мы покрываем все, что вам нужно для старта.
За 15-20 минут чтения вы получите не только теоретические знания, но и практические советы от опытного разработчика. Присоединяйтесь к миру веб-разработки и откройте для себя, как просто и увлекательно может быть создание ваших первых веб-приложений с Flask!
Стандарты и шаблоны для ТЗ на разработку ПО
Введение
Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому…
И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification):
• ГОСТ 34
• ГОСТ 19
• IEEE STD 830-1998
• ISO/IEC/ IEEE 29148-2011
• RUP
• SWEBOK, BABOK и пр.
System Design 101
О сложных системах простыми словами.
В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений. Буду признателен за помощь в уточнении/исправлении понятий, терминологии, логики/алгоритмов работы систем (в рамках того, что по этому поводу содержится в оригинале), а также в обнаружении очепяток.
Выражаю благодарность Анне Неустроевой за помощь в редактировании материала.
Возможно, немного другой формат шпаргалки покажется вам более удобным.
Замыкания и декораторы в Python: часть 1 — замыкания
Впервые столкнувшись с концепцией замыканий, я мало что понял, и мне потребовалось потратить какое-то время на поиск и изучение дополнительных материалов, чтобы разобраться. Если у вас возникли те же проблемы, я постараюсь коротко, но понятно объяснить эту тему.
SQL HowTo: итоги по строкам и столбцам «в одно действие»
Немного отвлечемся от простых SELECT и посмотрим на реальной бизнес-задаче построения различных "тепловых карт" и "шахматок", как знание возможностей SQL может облегчить жизнь и разработчику, и его базе.
Основные linux-команды для новичка
Правда, разобраться в нем немного посложнее… Потому что большинство операций выполняется в командной строке. И если вы видите в вакансии «знание linux» — от вас ожидают как раз умение выполнять простейшие операции — перейти в другую директорию, скопировать файл, создать папочку… В этой статье я расскажу про типовые операции, которые стоит уметь делать новичку. Ну и плюс пара полезняшек для тестировщиков.
Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)
BASHUI
BASHUI - это BASH + UI, а не то что вы подумали.
Начиная работать над sshto я решил не переизобретать велосипед, вернее не переизобретать велосипед целиком а только некоторые его части и в качестве "рамы с педалями" использовал dialog. Это значительно ускорило разработку, но идея написать свой UI на баше с блекджеком и всем остальным ни на секунду не покидала мой воспалённый мозг. Звёзды сошлись, и я решил воплотить этот проект в жизнь(в bash). Втречайте BASHUI!
ChatGPT для разработчиков: API, лимиты, как втягивать в него базу знаний, что нельзя сделать, что лучше делать осторожно
Мы с командой вернулись тут с Хайлоада, и там даже CTO крупных компаний задают много вопросов про разработку с LLM. Наша компания занимается прикладной разработкой всего того, что касается GPT/LLM.
Расскажу про очевидные вещи, о которых у меня там спрашивали CTO и разработчики.
Самый частый вопрос: можно ли подключать свою базу документов и можно ли по ней нормально работать?
Можно. Для этого нужно две вещи:
- OpenAI может работать с вашей базой, например, вики техподдержки, но её надо векторизовать. Получится, что модель только ищет по ней и может отвечать фрагментом исходника, но может его обрабатывать как текст (то есть сравнивать, анализировать и тому подобное).
- Дальше можно использовать подход QA Retrieval Chain для работы с векторной базой. Работает это так: задаём вопрос, LLM формируют запрос к векторной базе, мы вынимаем из неё данные, подкладываем их в вопрос как контекст и передаём в LLM, а они формируют ответ.
Но давайте начнём сначала. Основное:
- Какого размера промпты могут быть, сколько, какие лимиты, как их частично обходить.
- Как подключается база, как закидывать реально большие документы, как эмбеддится вектор, на каких языках это происходит и тому подобное.
- Разные API.
- Агентная модель GPT Engineer и АutoGPT.
- Фреймворк лангчейн (построение цепочек запросов и разбиение макрозапроса на сотни).
Поехали!
Ах, английский! Бессердечная ты…
И так, вы поняли, что вам пора изучить английский. Вы идёте на всякие там сайты или качаете себе Дуолингву, но понимаете, что всё бесполезно. В очередной раз вы пялитесь в глаза этому зелёному обдолбаному совёнку, и понимаете что всё бесполезно. A bear всё так же ест этот the cheese, а вы всё так же боитесь запостить комментарий на каком-нибудь форуме, потому что вас засмеют.
Давайте подойдём к проблеме с другого ракурса. Я думаю, для некоторых из вас, проблема заключается в том, что вы даже и не знаете, зачем вы учите этот язык. Английский кажется просто бесконечно-запутанным набором правил, которые должны бы вычисляться по формулам, но они этого не делают.
Английский, которому меня не учили
Или максимы Английского языка, которые бы я хотел знать 20 лет назад.
Чем отличается хороший геймер от плохого? Хороший геймер сидит и изучает игру. Он знает каждый закуток. Он может без запинки назвать все характеристики всех юнитов в Star Craft. А самый крутой игрок знает все пропускные способности желтых, красных и синих конвейеров. А плохой игрок использует чит-коды или assistant apps.
Можно сколько угодно сидеть и жаловаться о том, что правила сложны. А можно просто взять, изучить эти правила и уделать наисложнейшую игру.
Я не раз в своей жизни слышал, что Английский чрезвычайно сложен. Подобные заявления фактически являются чит-кодом. Вы просто сдаётесь и перестаёте пытаться. А зря. В английском языке есть очень много полезных и понятных вещей.
В этой статье я хочу вам показать основные моменты, которые помогли мне хорошо овладеть языком. И надеюсь, что понимание этих моментов поможет и вам.
Регистрация безналоговой компании в Эстонии
Хочу поделиться опытом успешной регистрации компании в Эстонии. Я приведу короткую характеристику юрисдикции, расскажу про подводные камни, которые существуют, и поделюсь полученным опытом.
Задача стояла следующая — найти юрисдикцию, в которой не нужно платить налог на прибыль, при этом клиентам из США, Канады и ЕС удобно было с ней работать. Реальный офис открывать в этой стране задачи не стояло.
Основная деятельность компании — разработка ПО (классическая аутсорс компания со штатом ~20 девелоперов).
Information
- Rating
- Does not participate
- Location
- Украина
- Date of birth
- Registered
- Activity