Pull to refresh
4
0
Send message

Разворачиваем систему уравнений в граф

Reading time6 min
Views7.3K

Как-то во время учебы на инженера-теплоэнергетика я наткнулся на одну книгу [Попырин Л.С. Математическое моделирование и оптимизация теплоэнергетических установок. М. Энергия 1978г.], в которой был описан алгоритм построения расчётных схем энергетических установок, разработанный в Сибирском энергетическом институте (ныне - ИСЭМ СО РАН). Этот алгоритм заложен в основу СМПП (система машинного построения программ) - кодогенератора, который используется в исследованиях в ИСЭМ и по сей день. Собственно алгоритм предназначен для решения систем нелинейных уравнений, и, условно говоря, обобщает метод подстановки, знакомый многим из школьной алгебры.

Зачем это нужно?

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

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

Сравнение производительности dict() и {} в Python

Level of difficultyMedium
Reading time11 min
Views15K

Какое-то время назад, во время разбора кода, мы обсудили выбор dict() вместо {} в новом коде на Python. Коллега утверждал, что dict() более читаем и чётче выражает цель, поэтому следует предпочесть его. Меня это не убедило, но в тот момент контраргуентов не нашлось, поэтому я воздержался.

Это заставило меня задуматься: в чём разница между типом dict и литеральным выражением {}?

Давайте изучим этот вопрос.

Читать далее
Total votes 19: ↑16 and ↓3+20
Comments19

Как мы решили вопрос с размещением Телеграм-бота

Level of difficultyEasy
Reading time6 min
Views7.9K

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

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

Читать далее
Total votes 25: ↑17 and ↓8+10
Comments15

Учимся создавать простых ботов или туториал по библиотеке TeleBot

Level of difficultyEasy
Reading time9 min
Views41K

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

Бегу изучать ботов
Total votes 6: ↑5 and ↓1+5
Comments10

Коротко про алгоритмы и структуры данных

Level of difficultyEasy
Reading time3 min
Views25K

Привет, Хабр! Меня зовут Ричард, я работаю в команде kPHP в VK, занимаюсь разработкой kPHP, плагинов для IDE, а также другого инструментария, делая жизнь разработчиков проще. В своей работе мне приходится иметь дело с PSI деревьями, AST, самописными структурами данных и их модификациями, и даже QuickSelect (и более сложные алгоритмы) мне доводилось реализовывать. Хочу немного поговорить про один из краеугольных, пожалуй, камней в IT, а именно про «алгоритмы и структуры данных» — тема не теряет актуальности со времен появления Хабра. Заранее оговорюсь, мой пост на 90% состоит из личного опыта во время обучения, работы и преподавания.

Читать далее
Total votes 45: ↑26 and ↓19+22
Comments14

Личный прокси для чайников: универсальный обход цензуры с помощью VPS, 3X-UI, Reality/CDN и Warp

Level of difficultyMedium
Reading time27 min
Views130K

> С 10 апреля 2024, 3 месяца спустя,
> данная статья заблокирована РКН на территории РФ,
> но доступна с IP других стран, а также через веб-архив.

На фоне прошлогоднего обострения цензуры в РФ, статьи автора MiraclePTR стали глотком свободы для многих русскоязычных айтишников. Я же хочу приоткрыть дверь к свободной информации чуть шире и пригласить «не‑технарей» («чайников»), желающих поднять личный прокси‑сервер для обхода цензуры, но дезориентированных обилием информации или остановленных непонятной технической ошибкой.

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

Статья рассчитана на «чайников», не знакомых с предметной областью. Однако и люди «в теме» могут найти нечто полезное (например, чуть более простую настройку проксирования через CloudFlare без необходимости поднимать nginx на VPS).

Если у вас ещё нет личного прокси для обхода цензуры — это знак.

Читать далее
Total votes 102: ↑100 and ↓2+109
Comments291

Кто будет после нас

Level of difficultyEasy
Reading time3 min
Views7.7K

Да, наши дети взрослеют, становятся старше и встает вопрос - кем они будут и какие знания мы им можем передать.

решили мы с сыном написть Telegram бот...
Total votes 23: ↑12 and ↓11+4
Comments16

Сказ о том, как я за год решил более 600 leetcode задач

Level of difficultyEasy
Reading time7 min
Views89K

Всем салют!

Хочу рассказать вам историю о том, как я начинал с уровня — «не могу решить даже 1 easy задачу из 10» до уровня — «могу решить каждую вторую medium задачу» и прошел несколько coding сессий в таких компаниях как Meta, Booking, Careem, Avito...

Читать далее
Total votes 121: ↑112 and ↓9+129
Comments407

Как стать программистом в свои 14 лет и выполнить свой первый заказ на фриланс?

Level of difficultyEasy
Reading time4 min
Views16K

Как зарабатывать на программировании в 14 лет?

Этот вопрос мучает многих школьников. Но если у меня нет никаких навыков, как я могу показать себя? Ответы на эти и многие вопросы описаны в этой статье.

Читать далее
Total votes 22: ↑14 and ↓8+11
Comments30

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

Level of difficultyEasy
Reading time40 min
Views20K

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

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

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

создать сайт на Flask
Total votes 12: ↑10 and ↓2+8
Comments10

Изменяемые и неизменяемые объекты в Python

Reading time4 min
Views74K

Все в Python – это объект. Каждый новичок должен сразу усвоить, что все объекты в Python могут быть либо изменяемыми (мутабельным), либо неизменяемыми (иммутабельным). 

Читать далее
Total votes 8: ↑6 and ↓2+5
Comments3

К вопросу о числах

Level of difficultyEasy
Reading time15 min
Views6.5K

Как всегда, тема данного поста возникла во время беседы с ММК (моим молодым коллегой) об одной несложной задачке. Речь шла о том, чтобы определить нахождение текущего значения счетчика тактов внутри интервала относительно некоего заданного значения. Затруднения вызывал момент перехода счетчика через максимальное значение в нулевое («реролл» или переполнение). Немного переформулировав задачу, приходим к классической задаче о задании интервала времени при помощи аппаратного счетчика, решение которой давно известно (смотри исходники Linux). Однако внезапно выяснилось, что данное решение не представляется ММК очевидным и потребовались определенные разъяснения. Чтобы обратить внимание других (не моих) МК на данный аспект работы с числами и был создан настоящий пост. А посвящен он описанию различных способов представления множества целых чисел на конкретной битовой основе, их преимуществам и недостаткам.

Если Вам интересна эта тема, то можете нажать

кнопочку ниже.
Total votes 13: ↑6 and ↓7+2
Comments27

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

Level of difficultyEasy
Reading time8 min
Views63K

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

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

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

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

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

Как работать с числами с плавающей точкой в Python

Reading time9 min
Views58K

К старту курса по Fullstack-разработке на Python делимся решениями классической проблемы неточности чисел с плавающей точкой для новичков. В материале вы найдёте примеры работы с функциями и классами, предназначенными специально для решения проблем чисел с плавающей точкой.

Читать далее
Total votes 22: ↑20 and ↓2+22
Comments3

Мои советы после 20 лет в программировании

Level of difficultyEasy
Reading time44 min
Views127K

Сегодня ровно 20 лет, как я начал программировать профессионально. За эти годы я:

Получил одобрение на петицию по грин‑карте за выдающиеся способности в науке.
Стал Google Developer Expert.
Стал IEEE Senior Member.
Был операционным директором в компании со 100 сотрудниками.
Написал код, который скачали 135 миллионов раз.
Выступал перед аудиторией в 2000 человек, дважды.
Стал самым честным человеком в России по версии НТВ.

Но упустил я гораздо больше и делал всё это слишком долго. Думаю, этот путь можно было бы пройти «на скорость» лет за 5 с теми подходами, принципами и приоритетами, которым я научился. Если вы только начинаете свой путь, этот текст может сэкономить вам 15 лет жизни.

Читать далее
Total votes 253: ↑143 and ↓110+70
Comments277

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

Level of difficultyEasy
Reading time6 min
Views18K

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

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

Упущенные из виду факты о переменных и объектах в Python: все дело в указателях

Reading time9 min
Views15K

В Python переменные и структуры данных не содержат объектов. Этот факт часто упускается из виду, и его трудно уяснить.

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

Читать далее
Total votes 12: ↑9 and ↓3+6
Comments4

Как стать Delphi-программистом за час «для самых маленьких»

Level of difficultyEasy
Reading time41 min
Views17K

Принято считать, что программирование это сложно, но это миф (все проще чем кажется), и все что нужно чтобы стать программистом это немного упорства и изобретательности.

В этой статье мы получим все базовые навыки, которые нужны Delphi программисту (включая базовые знания RunTime, работу с Com-объектами и Canvas, вводом\выводом, файлами, парсингом, ооп, и тд), по окончании статьи.

Окунутся в чудесный мир бесконечного скрол
Total votes 39: ↑19 and ↓20+4
Comments186

Алгоритмы быстрого возведения в степень

Reading time8 min
Views26K

В настоящее время мы уже так привыкли пользоваться готовыми решениями, что при написании высокоуровневого кода, даже не задумываемся над тем, а как вообще реализованы те или иные инструменты. И уж конечно, при возведении чисел в степень, мы никогда не задумываемся о том, а как вообще все это реализовано. И какие существуют алгоритмы для этого?

Возведение числа в степень является одной из основных операций в математике. Что вообще такое возведение в степень? Как нам известно еще со школы — это многократное умножение числа на себя. Но проблема кроется в том, что при возведении больших чисел в очень большие степени вычисления могут занять много времени.

Читать далее
Total votes 29: ↑26 and ↓3+29
Comments11

Что нужно знать про арифметику с плавающей запятой

Reading time14 min
Views951K


В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
Читать дальше →
Total votes 245: ↑242 and ↓3+239
Comments75

Information

Rating
Does not participate
Registered
Activity