<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Hackflow</title><link>https://blog.hackflow.ru/ru/</link><description>Recent content on Hackflow</description><generator>Hugo</generator><language>ru</language><lastBuildDate>Sun, 27 Sep 2026 10:31:39 +0700</lastBuildDate><atom:link href="https://blog.hackflow.ru/ru/index.xml" rel="self" type="application/rss+xml"/><item><title>[Не]нужные люди в эпоху ИИ</title><link>https://blog.hackflow.ru/ru/blog/2026/09/27/ai-balance-of-power/</link><pubDate>Sun, 27 Sep 2026 10:31:39 +0700</pubDate><guid>https://blog.hackflow.ru/ru/blog/2026/09/27/ai-balance-of-power/</guid><description>&lt;p&gt;В начале сентября экономисты Anthropic выложили &lt;a href="https://www.anthropic.com/institute/econ-scenarios"&gt;сценарии&lt;/a&gt; того, как ИИ изменит экономику США к 2030 году. Прогнозом их называть не велят, вероятностей не дают, но самый радикальный выглядит так: ВВП на треть выше, работы на много процентов меньше. Пока только для тех, кто сидит за компом.&lt;/p&gt;
&lt;p&gt;Сантехники и электрики там в выигрыше: их не хватает, им платят на треть больше. Но это потому, что модель «не допускает быстрого прогресса робототехники». Медленный остаётся за скобками — если ИИ хорош в умственном труде, то и роботов он сделает. Думаю, сантехники пойдут туда же лет через 5–15. И даже без роботизации — куда-то же должны деться те белые воротнички, которых выкинули на мороз в предыдущем абзаце.&lt;/p&gt;
&lt;p&gt;Впрочем, эти страхи не новы. Давайте разбираться, только ли дело в работе, и не брехня ли всё это.&lt;/p&gt;</description></item><item><title>Не ещё одна статья о функциональном программировании</title><link>https://blog.hackflow.ru/ru/blog/2013/03/28/functional-python-made-easy/</link><pubDate>Thu, 28 Mar 2013 17:28:04 +0000</pubDate><guid>https://blog.hackflow.ru/ru/blog/2013/03/28/functional-python-made-easy/</guid><description>&lt;p&gt;Вот уже несколько лет функциональное программирование набирает популярность. Это, конечно, не значит, что люди забрасывают свои старые языки и ООП и массово переходят на Haskell, Lisp или Erlang. Нет. Функциональная парадигма проникает в наш код через лазейки мультипарадигменных языков, а вышеупомянутые языки чаще служат флагами в этом наступлении, чем используются непосредственно.&lt;/p&gt;
&lt;p&gt;Я собирался продолжить в том же духе и во второй части статьи представить &lt;a href="http://github.com/Suor/funcy"&gt;свою библиотеку&lt;/a&gt;, добавляющую пару функциональных трюков в python, но потом понял, что фокус моей библиотеки не на функциональном программировании, а на практичности. На этом я и сосредоточюсь, приведу несколько жизненных примеров полезности funcy.&lt;/p&gt;</description></item><item><title>Цифровые ремесленники в эпоху изобилия</title><link>https://blog.hackflow.ru/ru/blog/2013/02/17/digital-craftsmen-in-the-age-of-abundance/</link><pubDate>Sun, 17 Feb 2013 16:46:47 +0000</pubDate><guid>https://blog.hackflow.ru/ru/blog/2013/02/17/digital-craftsmen-in-the-age-of-abundance/</guid><description>&lt;p&gt;За последнее время мне попалась на глаза пара статей о том, что новые &lt;a href="http://techcrunch.com/2013/02/16/this-time-is-different/"&gt;технологии уничтожают рабочие места&lt;/a&gt; и это касается не только уже привычной &lt;a href="http://habrahabr.ru/post/125315/"&gt;автоматизации заводов&lt;/a&gt;, но и &lt;a href="http://news.yahoo.com/ap-impact-recession-tech-kill-middle-class-jobs-051306434--finance.html"&gt;белых воротничков&lt;/a&gt;. «Ничего нового» — скажете вы — «мы такое уже видели во время промышленных революций, они потом найдут себе новую работу». Но что если на этот раз всё иначе и &lt;a href="http://techcrunch.com/2011/11/12/what-if-this-is-the-future/"&gt;технологии уничтожают вакансии быстрее, чем создают новые&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;Вообще, в перспективе, это хорошо, роботы и ПО дешевле людей, а значит, производимые товары и услуги станут дешевле, а всё человечество богаче. Некоторые горячие головы даже предположили, что мы движемся к &lt;a href="http://en.wikipedia.org/wiki/Post-scarcity_economy"&gt;экономике изобилия&lt;/a&gt;, в которой привычное для нас понятие «работа» и вовсе теряет смысл.&lt;/p&gt;
&lt;p&gt;Но неужто людям не найдётся полезного занятия?&lt;/p&gt;</description></item><item><title>Абстрагирование потока управления</title><link>https://blog.hackflow.ru/ru/blog/2012/11/03/abstracting-control-flow/</link><pubDate>Sat, 03 Nov 2012 12:39:00 +0000</pubDate><guid>https://blog.hackflow.ru/ru/blog/2012/11/03/abstracting-control-flow/</guid><description>&lt;p&gt;Любой программист, даже если не смотрит на свою работу в таком ключе, постоянно занимается построением абстракций. Чаще всего мы абстрагируем вычисления (пишем функции) или поведение (процедуры и классы), но кроме этих двух случаев в нашей работе возникает множество повторяющихся шаблонов особенно при обработке ошибок, управлении ресурсами, написании стандартных обработчиков и оптимизаций.&lt;/p&gt;
&lt;p&gt;Что значит абстрагирование потока управления или «control flow», как выражаются наши заморские друзья? В случае, когда никто не выпендривается, потоком занимаются управляющие конструкции. Иногда этих управляющих конструкций недостаточно и мы дописываем свои, абстрагирующие нужное нам поведение программы. Это просто в языках вроде lisp, ruby или perl, но и в других языках это возможно, например, с помощью функций высшего порядка.&lt;/p&gt;</description></item><item><title>Упрощая жизнь c Django</title><link>https://blog.hackflow.ru/ru/blog/2012/06/08/simplifying-life-with-django/</link><pubDate>Fri, 08 Jun 2012 15:52:18 +0000</pubDate><guid>https://blog.hackflow.ru/ru/blog/2012/06/08/simplifying-life-with-django/</guid><description>&lt;p&gt;За время использования Django я накопил множество небольших инструментов: декораторов, шорткатов, кастомных полей и просто утилит, которые кочевали со мной из проекта в проект в виде сборного пакета handy. В конце концов, я решил поделится своим опытом, потому как такой код — это и есть материализованный опыт (даже лучше — код можно исполнить), и открыть наиболее полезные куски handy для всех желающих.&lt;/p&gt;
&lt;p&gt;Пакет направлен на уменьшение необходимого boilerplate при использовании фреймворка джанго. На то, чтобы избавить от необходимости писать одно и то же раз за разом, сделать код короче и выразительней.&lt;/p&gt;</description></item><item><title>Пещерные технологии будущего</title><link>https://blog.hackflow.ru/ru/blog/2011/10/09/cave-technologies-of-the-future/</link><pubDate>Sun, 09 Oct 2011 06:06:55 +0000</pubDate><guid>https://blog.hackflow.ru/ru/blog/2011/10/09/cave-technologies-of-the-future/</guid><description>&lt;p&gt;Никогда не обращали внимание, как часто старые интерфейсы, старый код и вообще старые решения выглядят странными и уродливыми? Причём всё это может стать старым за считанные годы. Когда приходится очень быстро бежать только, чтобы оставаться на месте, возникает желание как-нибудь срезать, заглянуть немного в будущее, перепрыгнуть через пару пунктов.&lt;/p&gt;
&lt;p&gt;Давайте попробуем. Для этого нам необходимо понять по каким принципам идет развитие: внимательно рассмотреть те пещерные технологии, что мы использовали пару лет назад и то, как они превращались в “технологии будущего”, что мы используем сегодня.&lt;/p&gt;</description></item><item><title>Redis: лёгкие яблоки</title><link>https://blog.hackflow.ru/ru/blog/2011/09/26/redis-low-hanging-fruit/</link><pubDate>Mon, 26 Sep 2011 14:35:38 +0000</pubDate><guid>https://blog.hackflow.ru/ru/blog/2011/09/26/redis-low-hanging-fruit/</guid><description>&lt;p&gt;NoSQL обычно воспринимается как альтернатива реляционным БД, однако, многие из них, особенно, те, что попроще, могут не только заменять, но и отлично дополнять их. На самом деле, чтобы использовать какое-то NoSQL-решение вместо привычной БД, нужен либо новый проект, либо возможность переписать старый практически полностью. Редкие случаи, в повседневной разработке. В то же время можно легко сорвать множество низко висящих плодов.&lt;/p&gt;</description></item><item><title>Cacheops</title><link>https://blog.hackflow.ru/ru/blog/2011/09/25/cacheops/</link><pubDate>Sun, 25 Sep 2011 11:46:13 +0000</pubDate><guid>https://blog.hackflow.ru/ru/blog/2011/09/25/cacheops/</guid><description>&lt;p&gt;Некоторое время назад &lt;a href="http://habrahabr.ru/blogs/algorithm/120471/"&gt;я писал о системе кеширования&lt;/a&gt;. Помнится, я обещал продолжение, но сейчас решил, что строка кода лучше сотни комментариев, теорию оставим на потом. Поэтому сегодня у нас своего рода анонс с парой советов по использованию в одном флаконе. Встречайте, cacheops — система кеширования и автоматической инвалидации кеша для Django ORM.&lt;/p&gt;</description></item><item><title>О вреде синтаксического сахара</title><link>https://blog.hackflow.ru/ru/blog/2011/09/18/on-the-harm-of-syntactic-sugar/</link><pubDate>Sun, 18 Sep 2011 15:17:32 +0000</pubDate><guid>https://blog.hackflow.ru/ru/blog/2011/09/18/on-the-harm-of-syntactic-sugar/</guid><description>&lt;p&gt;О чём речь? Конечно, использование синтаксического сахара не приводит к синтаксическому диабету, но он может мешать вам думать. Это может звучать странно, учитывая, что синтаксический сахар призван облегчить нам жизнь: обернуть в интуитивные обёртки операции над абстракциями, сделать программы легко читаемыми, да и просто симпатичными. Однако, всякий инструмент, который направляет нашу мысль одновременно удерживает её на этом направлении.&lt;/p&gt;</description></item><item><title>К вопросу об инвалидации кеша</title><link>https://blog.hackflow.ru/ru/blog/2011/06/02/on-orm-cache-invalidation/</link><pubDate>Thu, 02 Jun 2011 14:23:14 +0000</pubDate><guid>https://blog.hackflow.ru/ru/blog/2011/06/02/on-orm-cache-invalidation/</guid><description>&lt;p&gt;Инвалидация кеша, возможно, одна из самых запутанных вещей в программировании. Тонкость вопроса состоит в компромиссе между полнотой, избыточностью и сложностью этой процедуры. Так о чём же эта статья? Хотелось бы не привязываясь к какой-либо платформе, языку или фреймворку, подумать о том как следует реализовывать систему инвалидации. Ну а чтобы не писать обо всём и ни о чём, сконцентрируемся на кешировании результатов SQL-запросов построенных с помощью ORM, которые в наше время встречаются нередко.&lt;/p&gt;</description></item><item><title>Именованные кортежи из выборок</title><link>https://blog.hackflow.ru/ru/blog/2011/03/19/named-tuples-from-querysets/</link><pubDate>Sat, 19 Mar 2011 08:19:08 +0000</pubDate><guid>https://blog.hackflow.ru/ru/blog/2011/03/19/named-tuples-from-querysets/</guid><description>Как получить именованные кортежи из QuerySet Django вместо словарей или обычных кортежей.</description></item><item><title>Генератор миниатюрок из Nginx-а</title><link>https://blog.hackflow.ru/ru/blog/2010/06/04/nginx-thumbnail-generator/</link><pubDate>Fri, 04 Jun 2010 02:09:16 +0000</pubDate><guid>https://blog.hackflow.ru/ru/blog/2010/06/04/nginx-thumbnail-generator/</guid><description>&lt;p&gt;Итак, сегодня мы соберём генератор миниатюрок на базе любимого народом веб-сервера — nginx-а. Что примечательно, сделаем мы это без единого гвоздя, т.е. без единой строчки кода, не считая конфигурации.&lt;/p&gt;</description></item><item><title>Django и часовые пояса</title><link>https://blog.hackflow.ru/ru/blog/2010/05/22/django-and-time-zones/</link><pubDate>Sat, 22 May 2010 07:54:57 +0000</pubDate><guid>https://blog.hackflow.ru/ru/blog/2010/05/22/django-and-time-zones/</guid><description>&lt;p&gt;Есть несколько обыденных вещей, которые время от времени портят кровь нашему брату: падежи, числительные и часовые пояса, с проклятым переходом на летнее/зимнее время. Невольно позавидуешь китайцам у которых на всю страну всего один часовой пояс, а падежей нет и в помине. Будет совсем неплохо раз и навсегда разобраться с часовыми поясами и преобразованиями между ними хотя бы для Django-приложений.&lt;/p&gt;</description></item></channel></rss>