Как стать автором
Обновить
1
0

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

Отправить сообщение

Парадокс Ферми – вовсе не парадокс, а вопрос; в чём он состоит, и как его решать (часть 1)

Время на прочтение8 мин
Количество просмотров36K


Принято считать, что Энрико Ферми первым описал парадокс, носящий теперь его имя. Парадокс заключается в следующем – можно выдвинуть множество аргументов в пользу того, что в нашей Галактике должна существовать достаточно продвинутая внеземная цивилизация (и не одна), способная расселиться по множеству планет у множества звёзд, и каким-то образом обнаружить своё присутствие для других обитателей. Однако все эти аргументы разбиваются о простую практическую проверку – несмотря на все наши технологические достижения, мы до сих пор не получили ни одного неопровержимого свидетельства подобной деятельности.

Однако на самом деле всё немного сложнее.

Энрико Ферми – американский физик итальянского происхождения, один из создателей первого в мире ядерного реактора. Он внёс огромный большой вклад в развитие ядерной физики, физики элементарных частиц, квантовой и статистической механики, и считается одним из «отцов атомной бомбы».
Читать дальше →
Всего голосов 36: ↑33 и ↓3+45
Комментарии135

Различные вычисления, многопоточность, асинхронность и мультипроцессность в Python

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров9.8K

Всем привет! Меня зовут Дмитрий Первушин, я лидер Python-компетенций трайба ИСУ в Сбере. 

Эта статья рассчитана на людей, которые уже знакомы с Python, хотя бы на уровне junior+. Я объясню, какие есть отличия и особенности в многопоточности, асинхронности и мультипроцессорности в Python, где и когда они используются. Как говорится в пословице: «Всё познаётся в сравнении», именно в таком стиле я подготовил примеры. Кроме этого, буду специально делать ошибки и рассматривать неправильные подходы, чтобы можно было сразу разобраться, убедиться и запомнить, почему так делать нельзя и какой другой подход в этом случае нужно использовать.

Читать далее
Всего голосов 31: ↑28 и ↓3+38
Комментарии17

Как я создал архиватор из задачки с техсобеса: сжатие файлов с помощью RLE

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров11K

Привет, меня зовут Рома. Я работаю в KTS на позиции Python backend-разработчика. 

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

Читать далее
Всего голосов 70: ↑66 и ↓4+73
Комментарии9

Часть 1. Управление знаниями в Obsidian. Обработка информации. Рабочий процесс. Источники информации. Работа с заметками

Уровень сложностиСложный
Время на прочтение40 мин
Количество просмотров190K

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

Начнём долгий путь
Всего голосов 34: ↑31 и ↓3+37
Комментарии77

ИИ LLama3 без ограничений: локальный запуск, GROQ и интеграция в Телеграм бота с помощью Python

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров12K

Друзья, приветствую вас в очередной статье. Сегодня я расскажу, как использовать LLAMA3 ИИ в своих проектах. После небольшой подготовки мы приступим к созданию полноценного Telegram бота.

Сегодня мы:

Научимся устанавливать LLama3 на локальную машину.

Научимся бесплатно запускать LLama3 через платформу GROQ.

Разберемся с преимуществами и недостатками первого и второго способа развертывания LLama3.

Напишем полноценного Telegram бота с использованием aiogram3, который сможет работать как с локальной версией LLAMA3, так и через сервис GROQ (технически он сможет работать с любой подключенной нейросетью).

Запустим Telegram бота на VPS сервере (опционально).

Читать далее
Всего голосов 18: ↑17 и ↓1+20
Комментарии11

typewriter: бесплатная программа, которая введёт любой текст за вас

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров15K

Всем привет! Делюсь своей довольно простой программкой, полезной в таких ситуациях, когда нужно перенести некоторые количества текста в такие места, куда он простым буфером обмена не переносится, например - в remote console виртуального или физического сервера, как Proxmox или iBMC / iLO.

Исходный код и ссылки на скачивание - под катом.

Читать далее
Всего голосов 17: ↑17 и ↓0+18
Комментарии19

Полное руководство по модулю asyncio в Python. Часть 1

Время на прочтение11 мин
Количество просмотров126K

Python-модуль asyncio позволяет заниматься асинхронным программированием с применением конкурентного выполнения кода, основанного на корутинах. Хотя этот модуль имеется в Python уже много лет, он остаётся одним из самых интересных механизмов языка. Но asyncio, при этом, можно назвать ещё и одним из модулей, которые вызывают больше всего недоразумений. Дело в том, что начинающим разработчикам бывает трудно приступить к использованию asyncio.

Перед вами — подробное и всестороннее руководство по использованию модуля asyncio в Python. В частности, здесь будут рассмотрены следующие основные вопросы:

Читать далее
Всего голосов 21: ↑19 и ↓2+27
Комментарии8

Делаем быстрее POSTGRESQL COUNT (*)

Время на прочтение4 мин
Количество просмотров53K


Часто жалуются, что count (*) в PostgreSQL очень медленный.

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

Почему count (*) такой медленный?


Большинство людей без проблем понимают, что следующий запрос будет выполняться медленно:

SELECT count(*)
FROM /* сложный запрос */;

В конце концов, это сложный запрос, и PostgreSQL должен вычислить результат, прежде чем узнает, сколько строк он будет содержать.

Но многие люди потрясены, когда узнают, что следующий запрос медленный:

SELECT count(*) FROM large_table;

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

Поэтому count (*) обычно выполняет последовательное сканирование таблицы, что может быть довольно дорого.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+19
Комментарии36

Курс молодого бойца PostgreSQL

Время на прочтение13 мин
Количество просмотров535K


Хочу поделиться полезными приемами работы с PostgreSQL (другие СУБД имеют схожий функционал, но могут иметь иной синтаксис).

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

Данный материал будет полезен тем, кто полностью освоил базовые навыки SQL и желает учиться дальше. Советую выполнять и экспериментировать с примерами в pgAdmin'e, я сделал все SQL-запросы выполнимыми без разворачивания каких-либо дампов.

Поехали!
Читать дальше →
Всего голосов 79: ↑77 и ↓2+75
Комментарии59

Ускорение Python в 2 раза с помощью multiprocessing, async и MapReduce

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров9.8K

Python действительно может считаться относительно медленным языком программирования по сравнению с некоторыми другими языками, такими как C++ или Java. Однако, существуют различные библиотеки и инструменты, которые позволяют ускорить выполнение счетных задач в Python. Рассмотрим как можно ускорить анализ данных в 2 раза!

Читать далее
Всего голосов 17: ↑17 и ↓0+23
Комментарии8

Книжная полка разработчика в эпоху интернета и искусственного интеллекта

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров12K

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

Однако, на мой взгляд, книги всё ещё остаются важным и незаменимым инструментом для изучения программирования, особенно для новичков. В этой статье я, Бартенев Евгений, автор и техлид курсов «Python-разработчик» в Яндекс Практикуме, расскажу, почему я так считаю. А также поделюсь своей подборкой книг как для начинающих разработчиков, так и для тех, кто уже пишет код не первый день.

Читать далее
Всего голосов 14: ↑13 и ↓1+14
Комментарии18

Работа с Outline через Python

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.2K

Всем привет! Вчера я опубликовал статью о том, как настроить свой собственный VPN с помощью Outline и VPS. В конце статьи было голосование за тему программного взаимодействия с VPN через Python. Многие из вас выразили интерес, и вот продолжение специально для вас.

Для начала необходимо настроить VPN и получить ответ от вашего VPS сервера в следующем формате (данные вымышлены):

Читать далее
Всего голосов 5: ↑3 и ↓2+2
Комментарии4

Сложная красота в простой формуле

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров18K

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

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

Читать далее
Всего голосов 96: ↑95 и ↓1+117
Комментарии85

Создание telegram-ботов с интерактивным меню

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров45K

Однажды меня попросили провести ревью и рефакторинг одного telegram-бота. Увидев файл размером 2000 строк, рассчитанный только на обработку разных меню я понял, что это требует унификации и общих подходов. Так родилась библиотека aiogram-dialog

В этой статье я бы хотел обратить внимание на некоторые проблемы, которые мы встречаем при создании таких меню, предложить варианты их решения. А во второй половине статьи показать как это решается с помощью aiogram-dialog.

Мы не будем рассматривать архитектуру всего приложения, об этом вы можете прочитать у Фаулера или Мартина. Мы поговорим только про определенную часть UI ботов. Так же это не будет введением в разработку telegram-ботов с нуля. Я предполагаю, что читатель знаком с питоном, ООП и слышал о такой вещи как DRY.

Примеры выбраны так, чтобы проще было показать определенные проблемы, но это не единственные сценарии приводящие к ним.

Читать далее
Всего голосов 22: ↑21 и ↓1+23
Комментарии4

Мои проекты за 7 лет увлечения DIY

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров41K

Привет, Хабр! Решил представить здесь самые интересные проекты/самоделки/концепции, которые делал сам на протяжении последних семи лет. Если КДПВ сделала своё дело, добро пожаловать под кат! Осторожно, много фото.

Вдохновиться разными идеями
Всего голосов 110: ↑108 и ↓2+125
Комментарии36

Почему типичные дизайн-подходы оказались неприменимы к интерфейсу для производств

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров24K

После того как я впервые съездила на завод, стало понятно, почему в дизайнеров кидаются тапками.

Мы работали на ярких прикольных аймаках, проектируя интерфейсы MES-систем в соответствии с трендами. А потом своими глазами увидели, в какой ад для сотрудников производства это превратилось.

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

Читать далее
Всего голосов 75: ↑74 и ↓1+84
Комментарии133

Изучаем Python за 6 месяцев. Подробный план обучения

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров224K

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

Когда я начал изучать питон, у меня возникло несколько вопросов.

Читать далее
Всего голосов 47: ↑26 и ↓21+8
Комментарии87

Личный сервер shadowsocks за 10 минут без затрат (часть 3)

Время на прочтение3 мин
Количество просмотров142K

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

В этот раз всё будет намного проще: регистрация, импорт, запуск. Три шага.

Читать далее
Всего голосов 23: ↑20 и ↓3+19
Комментарии55

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

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров5.4K

Неважно, новичок ли вы, отлаживающий вашу первую программу «Hello World», или опытный инженер, — у каждого из нас всегда есть возможность улучшить свои навыки. Александр Шелютин, Data Architect в KarmaHQ, расскажет о разнице между тем, как просто заставить что-то работать, и написанием действительно хорошего кода.

Читать далее
Всего голосов 7: ↑4 и ↓3+3
Комментарии0

Реализация глобальных индексов в распределённой системе

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров4.8K

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

Читать далее
Всего голосов 23: ↑23 и ↓0+27
Комментарии3

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность