Pull to refresh
2
0
Денис @denilenko

Пользователь

Send message

Flask для начинающих — Часть 2 пишем landing page+admin panel с редактированием контента

Level of difficultyEasy
Reading time40 min
Views22K

Здравствуйте! Меня зовут Михаил, и я пишу эту статью специально для начинающих программистов, желающих изучить основы веб-разработки с использованием Flask.
 Я сам активно занимаюсь разработкой проектов на Flask и хочу поделиться своими знаниями и опытом, чтобы помочь вам начать свой путь в мире веб-разработки.

Flask для начинающих - Часть 2 создание Веб проекта.

Мы создадим с вами мини проект - веб сайт с админ панелью и обновлением контента сайта. При помощи Python, HTML, CSS, Bootstrap, Flask, SQLite.

создать сайт на Flask
Total votes 11: ↑9 and ↓2+7
Comments10

Агрегатор личных финансов со всех счетов

Level of difficultyMedium
Reading time6 min
Views9.4K

Всем привет!

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

Читать далее
Total votes 18: ↑18 and ↓0+18
Comments21

Flask для начинающих

Level of difficultyEasy
Reading time8 min
Views70K

Как начать работать с Flask

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

Вы новичок в программировании и мечтаете о создании собственных веб-приложений? Эта статья — ваш ключ к пониманию Flask, одного из самых доступных и гибких веб-фреймворков на Python. От установки и простых примеров до работы с данными и базами данных — мы покрываем все, что вам нужно для старта.

За 15-20 минут чтения вы получите не только теоретические знания, но и практические советы от опытного разработчика. Присоединяйтесь к миру веб-разработки и откройте для себя, как просто и увлекательно может быть создание ваших первых веб-приложений с Flask!

Читать далее
Total votes 14: ↑12 and ↓2+11
Comments39

Свободные лицензии на программное обеспечение

Level of difficultyEasy
Reading time7 min
Views4K

В университете у нас был отличный курс про лицензиям на программное обеспечение. Вёл его бывший программист, который переквалифицировался в юриста. Одним из домашних заданий было спарсить с гитхаба лицензии на определённый софт и проверить их совместимость. Спарсить эти лицензии удалось не только лишь всем, мы же всё таки юристы, а не программисты. Тем не менее, предмет отложился в памяти и пригодился в работе. Сегодня я хочу рассказать о свободных лицензиях, копилефте (copyleft) и как всё это применяется к программному обеспечению.

Читать далее
Total votes 7: ↑5 and ↓2+5
Comments7

Дженерики в go

Level of difficultyMedium
Reading time8 min
Views12K

Привет, Хабр!

Дженерики (или generics) существуют во многих языках, таких как Java, C#, и Rust, но для Go это относительно новая фича, введенная в версии 1.18 в 2022 году.

До версии 1.18 Go был известен своим строгим и простым подходом к типизации. Однако, с ростом сообщества стало очевидно, что нужен более гибкий инструмент для работы с различными типами данных. Все вечно сталкивались с проблемами, когда им приходилось писать много шаблонного кода для разных типов данных или использовать интерфейсы и пустые интерфейсы.

Go представила предложение по введению дженериков, которое после долгих обсуждений и тестирований было реализовано в версии 1.18. Это был ответ на просьбу сообщества. + к карме

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

Читать далее
Total votes 18: ↑11 and ↓7+6
Comments12

Замыкания и декораторы в Python: часть 1 — замыкания

Level of difficultyEasy
Reading time6 min
Views20K

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

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments17

Никогда не забывай об этом, когда делаешь open-source проект

Level of difficultyEasy
Reading time8 min
Views28K

Если составлять топ самых крутых изобретений человечества, то второе место сразу после кофеварки наверняка займёт opensource – разработка проектов с открытым исходным кодом, которая помогла родиться поистине огромному числу полезных и гениальных продуктов. Причём опенсорс важен не только для сообщества программистов в целом, но и для каждого конкретного разработчика: участвуя в создании программ с открытым кодом, они могут неплохо развить свои скиллы, обрести новых друзей со сходными интересами и, конечно же, потешить своё самолюбие. Признайтесь, вам хотелось бы, чтобы вашей библиотекой пользовался весь мир?

Читать далее
Total votes 47: ↑39 and ↓8+38
Comments124

Курс «PostgreSQL для начинающих»: #1 — Основы SQL

Level of difficultyEasy
Reading time13 min
Views59K

Этим постом я запускаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".

В программе: рассказ об основах SQL, возможностях простых и сложных SELECT, анализ производительности запросов, разбор [не]эффективного применения индексов и особенностей работы транзакций и блокировок в этой СУБД.

Курс не претендует на лавры "войти в айти", поэтому подразумевает наличие у слушателя опыта программирования или работы с другими СУБД, и, главное, желания самостоятельно изучать тему работы с PostgreSQL глубже.

Для тех, кому комфортнее смотреть и слушать, а не читать - доступна видеозапись.

Читать далее
Total votes 30: ↑29 and ↓1+33
Comments30

Полезные материалы и инструменты для погружения в Flask: выбор сотрудников Selectel

Reading time4 min
Views8.6K

Часто Python-разработчики выбирают Flask в качестве «быстрого старта» для создания веб-приложений. Он прост в использовании и имеет много преимуществ перед другими фреймворками — например, легкий синтаксис, удобные шаблоны и инструменты для гибкой настройки сайтов.

Однако у начинающих могут быть трудности в работе с фреймворком. Чтобы свести их к минимуму и помочь с погружением в Flask, наши коллеги собрали полезные материалы. Сохраняйте подборку в закладки и делитесь своими вариантами в комментариях.
Читать дальше →
Total votes 22: ↑18 and ↓4+19
Comments6

Python лёгкий. Go простой. Простой != лёгкий

Reading time6 min
Views32K

Python и Go отличаются по свойствам, и поэтому могут дополнять друг друга.

Существует распространённое заблуждение, будто простой и лёгкий — это одно и то же. В конце концов, если некий инструмент легко использовать, то и его внутреннее устройство должно быть просто понять, разве не так? И обратное тоже верно, да? На самом деле, всё как раз наоборот. В то время, как по духу оба понятия указывают на одно и то же (итог со стороны кажется лёгким), на практике такая поверхностная лёгкость достигается огромной подкапотной сложностью.

Читать далее
Total votes 20: ↑13 and ↓7+13
Comments44

Многопоточность и параллелизм в Go: Goroutines и каналы

Reading time15 min
Views16K


Язык программирования Go, разработанный с упором на простоту и эффективность, предлагает уникальный подход к реализации параллельных вычислений через Goroutines и каналы.

Goroutines, представляющие собой легковесные потоки выполнения, обеспечивают значительные преимущества по сравнению с традиционными потоками, используемыми во многих других языках программирования. Они позволяют создавать тысячи параллельных процессов без значительной нагрузки на системные ресурсы. Каналы в Go, предоставляя мощный механизм для безопасной коммуникации между Goroutines, дополнительно упрощают управление параллельными задачами и обмен данными.
Читать дальше →
Total votes 26: ↑22 and ↓4+20
Comments12

Разработка простого DNS сервера на Go, согласно RFC

Level of difficultyMedium
Reading time7 min
Views12K

Привет, Хабр!

В этой статье я хочу рассказать о своем опыте создания DNS сервера. Разрабатывал я его "чисто повеселиться", при разработке будем придерживаться спецификации RFC.

Читать далее
Total votes 36: ↑33 and ↓3+36
Comments10

Выбор СУБД: шпаргалка, чтобы не запутаться

Reading time6 min
Views31K

Вопрос выбора СУБД для российской компании или госоргана – вопрос не праздный, тем более сейчас – когда с момента ухода с рынка западных вендоров прошло уже полтора года и пора что-то решать. Но как не запутаться в номенклатуре СУБД и выбрать ту, которая лучше всего подходит? Без ложной скромности скажу: мы в «Кругах Громова» уже немного поднаторели в систематизации, поэтому надеемся, что наша шпаргалка для тех, кто хочет выбрать СУБД, окажется полезной.

Начнем с классики. СУБД делятся на несколько типов. Не будем описывать их подробно, остановимся только на их основном предназначении.

Читать далее
Total votes 22: ↑13 and ↓9+5
Comments10

OpenConnect: недетектируемый VPN, который вам понравится

Level of difficultyMedium
Reading time15 min
Views276K

Я уже написал здесь много статей на тему прокси-протоколов и прокси-клиентов, которые очень сложно детектировать и заблокировать, и которые используют пользователи в Китае, Иране, Ираке, Туркменистане, и теперь вот в России (мы здесь в отличной компании, правда?). Но довольно часто мне в комментариях писали, мол, это все отлично, но мне нужен именно VPN для целей именно VPN - доступа в частные локальные сети, либо для соединения клиентов между собой, и желательно так, чтобы его не заблокировали обезьяны с гранатой. Поэтому сегодня мы поговорим именно о VPN.

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее
Total votes 273: ↑272 and ↓1+323
Comments351

Корутины для Go

Level of difficultyMedium
Reading time21 min
Views9.1K

Эта заметка о том, зачем нам нужен пакет coroutine для Go и как он будет выглядеть. Но прежде всего, что такое корутины?

Сегодня каждый программист знаком с вызовами функций (подпрограмм): F вызывает G, которая останавливает F и запускает G. G выполняет свою работу, потенциально вызывая и ожидая другие функции, и в конце концов возвращается. Когда G возвращается, G уже нет, а F продолжает работать. В этой схеме одновременно выполняется только одна функция, а ее вызывающие ожидают, поднимаясь вверх по стеку вызовов.

В отличие от подпрограмм, корутины выполняются конкурентно на разных стеках, но все равно верно, что одновременно выполняется только одна функция, а ее вызывающая сторона ждет. F запускает G, но G не выполняется немедленно. Вместо этого F должен явно возобновить (resume) выполнение G, который затем начинает выполняться. В любой момент G может развернуться и вернуться (yield) назад к F. Это приостановит G и продолжит F операцию возобновления. В конце концов F снова вызывает resume, который приостанавливает F и продолжает G после выхода. И так далее, туда-сюда, пока G не вернется, что приведет к очистке G и продолжению F с последней операции возобновления, с некоторым сигналом для F, что G закончена и F больше не должна пытаться возобновить G. В этом паттерне одновременно выполняется только одна корутина, а ее вызывающая сторона ждет на другом стеке. Они выполняются по очереди в четко определенном, скоординированном порядке.

Это несколько абстрактно. Давайте посмотрим на реальные программы.

Читать далее
Total votes 13: ↑11 and ↓2+9
Comments5

Чем заменить Raspberry PI в промышленности?

Level of difficultyMedium
Reading time3 min
Views13K

Если коротко, то речь пойдет о промышленном ПК на основе Raspberry CM4 – это абсолютный аналог Raspberry Pi4 в промышленном исполнении с надёжной eMMC от Samsung и полной программно-аппаратной совместимостью.

Одну статью мы закончили фразой: «Надеемся, что мы вдохновим читателей на переработку Ваших личных проектов в более масштабное производство с коммерческими перспективами.»

В этой статье мы расскажем о продолжении этой истории и что мы имеем на сегодняшний день.

Читать далее
Total votes 11: ↑9 and ↓2+9
Comments43

Проблемы при переходе с MS SQL на PostgreSQL.Активное использование временных таблиц

Level of difficultyEasy
Reading time4 min
Views17K

Сначала я думал просто перечислить наиболее распространенные проблемы, возникающие при переходе с MS SQL на PostgreSQL. Но решил, что просто перечисление будет мало информативным. Поэтому, пока ограничился наиболее частой проблемой, приводящей к деградации производительности при переходе с MS SQL на PostgreSQL. Если статья окажется нужной, то продолжу рассматривать остальные проблемы.

Читать далее
Total votes 9: ↑8 and ↓1+8
Comments29

Разработка task manager при помощи библиотек Flask и psycopg2

Level of difficultyMedium
Reading time18 min
Views6.5K

Привет, Хабр!

На связи участник профессионального сообщества NTA Владислав Рулев.

Это первый пост в серии, где я буду рассказывать, как создавал свой собственный task manager. В настоящее время используются различные инструменты для управления задачами, от электронной почты и Excel‑таблиц до специальных программ. Первый подход — письма и таблички, затрудняет отслеживание статуса задач, распределение ресурсов и общую координацию работ. Второй — готовое решение, имеет как плюсы, так и минусы.

Я же решил взять всё в свои руки и разработать task‑manager самостоятельно. Что у меня получилось — под катом.

Что же у меня получилось
Total votes 5: ↑3 and ↓2+2
Comments11

Переизобретаем файловую систему: (Open)ZFS

Level of difficultyEasy
Reading time17 min
Views19K


Хранение данных — это всегда боль, у которой может быть больше 50 оттенков: железо, кэш, гарантии, производительность, скорость восстановления при проблемах, удобство и прочее. Как решить большинство из них, при этом получив что-то легко обслуживаемое, да ещё бесплатно? Сегодня поговорим про файловые системы на примере не совсем дефолтной OpenZFS.
Читать дальше →
Total votes 50: ↑49 and ↓1+60
Comments80

FreeIPA vs Samba AD

Level of difficultyEasy
Reading time12 min
Views19K

Используя продукты ведущих вендоров, мы не всегда задумываемся о том, что в них реализованы лучшие практики, позволяющие экономить на администрировании, повышать безопасность инфраструктуры и обеспечивать удобство для работы пользователей. Но эти детали, как шило в... мешке, не дают покоя при попытке заменить проверенное ПО свободным. Оказывается, ни одно из альтернативных решений неспособно без существенных доработок обеспечить сопоставимые показатели по безопасности, удобству и эффективности.

Сегодня нужно заменить большое количество программных продуктов, а времени совсем мало, поэтому приходится расставлять приоритеты и начинать с самого важного. Так, одним из стратегических направлений «Группы Астра» стала разработка службы каталога, которая должна заменить Microsoft Active Directory и стать сердцем обновленной ИТ-инфраструктуры российских предприятий. В нашем продукте мы объединили службу каталога FreeIPA с системой конфигурирования SaltStack и дополнили решение набором наиболее востребованных сервисов, таких как репозиторий программного обеспечения Reprepro, файловый сервер Samba, общий доступ к принтерам CUPS, динамическая настройка хостов ISC DHCP, установка ОС по сети TFTP HPA, мониторинг Zabbix и Grafana, журналирование syslog-ng.

Продукт ALD Pro (Astra Linux Directory Pro) быстро развивается, и с даты первого релиза было опубликовано уже несколько сотен улучшений, что позволило стать лидером на рынке доменных решений. У нас уже сотни инсталляций по всей стране, и с каждым днем их становится все больше. Но некоторых пользователей очень интересует вопрос, почему в качестве основы для службы каталога мы выбрали все-таки FreeIPA, а не Samba AD, и в этой статье поделимся нашими соображениями. Уверены, что информация окажется полезной не только нашим заказчикам, но и пользователям ванильных FreeIPA и Samba AD.

Читать далее
Total votes 16: ↑12 and ↓4+12
Comments32

Information

Rating
Does not participate
Location
Смоленск, Смоленская обл., Россия
Registered
Activity