Вкратце про Docker Swarm vs Kubernetes
Docker Swarm и Kubernetes – это два так называемых оркестратора контейнеров. Это софт, который убеждается, что на N вычислительных узлах (компьютерах) будет запущено M задач с рабочей нагрузкой (docker контейнеров).
Взглянем на оба с самой грубой точки зрения – с точки зрения пользователя, которому надо "чтоб просто работало".
Docker Swarm это просто и быстро, и можно развернуть на коленке в три команды. Kubernetes это сложно, долго, и разворачивать стоит только за чужой счёт (все облачные провайдеры развернут и будут поддерживать управляющую плоскость Kubernetes за вас бесплатно или за небольшой ежемесячный взнос).
Набор фич у Kubernetes несколько богаче, благодаря чему пользователь его и может (в некоторых случаях) предпочесть.
Вообще существует ещё третий (и последний) оркестратор, Nomad, который своеобразно совмещает черты обоих. Он характерен одновременно как сложной настройкой, так и отсутствием интересных дополнительных фич.
Итак, во всех случаях стоит предпочитать Docker Swarm, кроме тех, когда нужна какая-либо дополнительная фича, имеющаяся только в Kubernetes. Перед тем, как перейти к списку отличий, вкратце что оба из них позволяют.
Docker Swarm и Kubernetes – это два так называемых оркестратора контейнеров. Это софт, который убеждается, что на N вычислительных узлах (компьютерах) будет запущено M задач с рабочей нагрузкой (docker контейнеров).
Взглянем на оба с самой грубой точки зрения – с точки зрения пользователя, которому надо "чтоб просто работало".
Docker Swarm это просто и быстро, и можно развернуть на коленке в три команды. Kubernetes это сложно, долго, и разворачивать стоит только за чужой счёт (все облачные провайдеры развернут и будут поддерживать управляющую плоскость Kubernetes за вас бесплатно или за небольшой ежемесячный взнос).
Набор фич у Kubernetes несколько богаче, благодаря чему пользователь его и может (в некоторых случаях) предпочесть.
Вообще существует ещё третий (и последний) оркестратор, Nomad, который своеобразно совмещает черты обоих. Он характерен одновременно как сложной настройкой, так и отсутствием интересных дополнительных фич.
Итак, во всех случаях стоит предпочитать Docker Swarm, кроме тех, когда нужна какая-либо дополнительная фича, имеющаяся только в Kubernetes. Перед тем, как перейти к списку отличий, вкратце что оба из них позволяют.
В Kubernetes можно ресурсу Service прописать либо аналогичный "проброс портов", либо указать использовать автоматически создаваемый load balancer облачного провайдера (который магическим образом у облачного провайдера прикручен к куберу).
И там, и там оркестратор сам убедится, что если запрос попал на правильный порт X но на неправильную ноду (ту, на которой не запущено в данный момент ни одной реплики нужного сервиса), то он будет прозрачно проксирован на нужную ноду. И там, и там прибитый гвоздем порт открывается всегда одновременно на всех нодах, чтобы было меньше путаницы.
б) Через использование общего HTTP-сервера
В кластере, однако, может быть запущено 20 веб-приложений (например, веб-сайтов), каждому из которых нужен порт 80 или 443. При этом приколотить намертво конкретный порт 80 ноды можно, как описано выше, только к одному конкретному сервису.
Выходят из этого положения так: запускают на весь кластер один веб-сервер (nginx или traefik), а затем динамически изменяют его конфигурацию, чтобы он на основании имени домена (или других данных HTTP-запроса) отправлял запрос в нужный сервис (заодно терминируя TLS, управляя сертификатами).
В Kubrenetes за описание таких "кусков конфигураций общего HTTP-сервера для конкретного сервиса" отвечает ресурс Ingress ("точка входа"). В Swarm, формально, решения этой проблемы нет, но существует стандартный процесс установки-настройки Traefik, который позволяет делать тоже самое (конфигурация конкретного сервиса настраивается через специальные swarm-аннотации).
Это единственное место из перечисленных, где в Kubernetes сделано что-то более просто и логично, чем в Swarm.
#programming #devops
И там, и там оркестратор сам убедится, что если запрос попал на правильный порт X но на неправильную ноду (ту, на которой не запущено в данный момент ни одной реплики нужного сервиса), то он будет прозрачно проксирован на нужную ноду. И там, и там прибитый гвоздем порт открывается всегда одновременно на всех нодах, чтобы было меньше путаницы.
б) Через использование общего HTTP-сервера
В кластере, однако, может быть запущено 20 веб-приложений (например, веб-сайтов), каждому из которых нужен порт 80 или 443. При этом приколотить намертво конкретный порт 80 ноды можно, как описано выше, только к одному конкретному сервису.
Выходят из этого положения так: запускают на весь кластер один веб-сервер (nginx или traefik), а затем динамически изменяют его конфигурацию, чтобы он на основании имени домена (или других данных HTTP-запроса) отправлял запрос в нужный сервис (заодно терминируя TLS, управляя сертификатами).
В Kubrenetes за описание таких "кусков конфигураций общего HTTP-сервера для конкретного сервиса" отвечает ресурс Ingress ("точка входа"). В Swarm, формально, решения этой проблемы нет, но существует стандартный процесс установки-настройки Traefik, который позволяет делать тоже самое (конфигурация конкретного сервиса настраивается через специальные swarm-аннотации).
Это единственное место из перечисленных, где в Kubernetes сделано что-то более просто и логично, чем в Swarm.
#programming #devops
Metaprogramming
Вкратце про смерть мейнстрима и инвестиции (2/3) Про биржевые паевые фонды для всех практических целей разговор можно начать и закончить так: на российском рынке грабительский процент у всех БПИФов, который может заставить в них вкладываться человека либо…
В дополнение к январским рассуждением о ETF пришла прекрасная новость:
> В среду, 1 июня, компания FinEx ETF сообщила держателям паев фонда FinEx Tradable Russian Corporate Bonds (FXRB), что она продала все активы и при этом пайщики не получат никаких выплат. «Инвесторам не стоит ожидать каких-либо выплат по этому активу», — подчеркнул провайдер фонда.
Объясняют исчезновение денег так:
> Обычно, если провайдер принимает решение закрыть какой-либо ETF, администратор фонда распродает из него активы, а полученные деньги переводит инвесторам на брокерский счет или ИИС. Однако, инвесторы FXRB не получат ничего из-за того, что все средства, полученные от распродажи активов были направлены на покрытие по валютным свопам, использовавшихся для обеспечения рублевого хеджирования.
Речь идёт о российском ETF на облигации российских компаний. Впрочем, риски контрагентов и планомерные усилия дипломатов из предыдущего поста уже сейчас реализовали себя на полную катушку. Но, думаю, это только начало.
Раз так весело дело пошло продолжим рекомендации параноика-консерватора: стоит начать переводить крупные пакеты акций (а мелкие и нет смысла держать, думаю при любых сценариях компаний на рынке будет всё меньше) из депозитариев брокеров в реестры самих ПАО.
#investing
> В среду, 1 июня, компания FinEx ETF сообщила держателям паев фонда FinEx Tradable Russian Corporate Bonds (FXRB), что она продала все активы и при этом пайщики не получат никаких выплат. «Инвесторам не стоит ожидать каких-либо выплат по этому активу», — подчеркнул провайдер фонда.
Объясняют исчезновение денег так:
> Обычно, если провайдер принимает решение закрыть какой-либо ETF, администратор фонда распродает из него активы, а полученные деньги переводит инвесторам на брокерский счет или ИИС. Однако, инвесторы FXRB не получат ничего из-за того, что все средства, полученные от распродажи активов были направлены на покрытие по валютным свопам, использовавшихся для обеспечения рублевого хеджирования.
Речь идёт о российском ETF на облигации российских компаний. Впрочем, риски контрагентов и планомерные усилия дипломатов из предыдущего поста уже сейчас реализовали себя на полную катушку. Но, думаю, это только начало.
Раз так весело дело пошло продолжим рекомендации параноика-консерватора: стоит начать переводить крупные пакеты акций (а мелкие и нет смысла держать, думаю при любых сценариях компаний на рынке будет всё меньше) из депозитариев брокеров в реестры самих ПАО.
#investing
Вкратце о высшем образовании в IT
На хабре обсуждают очередной крах обманутых ожиданий:
> Я суетился, пытался искать пути трудоустройства, параллельно учился и изучал материал самостоятельно, и вот, на третьем курсе, я уже работаю в технической поддержке. Проработав там 10 месяцев, я узнал о том, что обучение в ВУЗе покрывает от силы 10 процентов того, что потребовалось в работе, и что самостоятельное изучение является чуть ли не основополагающим в становлении меня как специалиста. Для меня, как человека, который верил в то, что учебное заведение призвано ОБУЧАТЬ, это было, мягко говоря, шоком.
По этому поводу в очередной раз добавляю пару своих мыслей.
Во-первых, высшее образование высшему образованию рознь. Пока стараниями снобов при поддержке широкой общественности ЕГЭ не отменили у каждого юноши и девушки есть шанс получить нормальное высшее образование при нулевых организационных затратах. Придётся, впрочем, изрядно потратить усилий собственно на само обучение.
Для меня самого до сих пор, спустя 15 лет от начала IT-карьеры, знания полученные в институте покрывают, наверное, 80% от того, что потребовалось в работе. Нет, я не беру конкретные имена методов в очередном фреймворке для формошлёпства, понятно что фреймворков много, а методов ещё больше. Но изучение всего этого требует лишь навыка читать и понимать прочитанное, чему научили ещё в школе. Впрочем, навык читать-понимать тот же английский в ВУЗе значительно подтянули, так что и такая общая польза была. И нет, не думаю что многочисленные вариации матана так уж хороши для "приведения ума в порядок". Также как я не думаю, что ВУЗ даёт мифический навык "учиться учиться": в лучшем случае, организует контекст негативного отбора и стрессовую мотивацию для обретения этого навыка.
Речь о конкретных прозаических вещах, о десятков курсов "основы Х": основы ядра линукса, основы программирования на C, основы алгоритмов, О-нотации, основы того, сего и всего. Паттерны ОО-дизайна на C++ в расписании, паттерны gang of four для Java в книге сокурсника, паттерны новых обоев на стене компьютерного класса, где изучали Ruby (да, у нас был такой курс, после и вследствие которого в будущем я и стал Rails-разработчиком), паттерны нормализации реляционных баз данных, паттерны циклов do while и while do в ассемблере, паттерны решения ACM-задач на институтском сайте, паттерны общения с преподавателями на экзаменах.
Многопоточное программирование, семафоры, сигналы, разделяемая память. Дискретная математика, вычислительная математика, высшая алгебра, группы, сходимость приближенных вычислений, сходимость интегралов, сходимость студентов на первую пару. Спектры, АЧХ-ФЧХ, ПЛИСы, верилоги-виэйчдиэли, "график вверх ногами". Консультации до лабораторных работ, консультации после лабораторных, консультации вместо лабораторных у одногруппника, работающего инженером в "Эльбрусе". Высшая алгебра, теория информации, энтропия, LZ-сжатие в тетрадочке в клеточку, четвёрка в диплом за нулевую посещаемость при шести верных задачах письменного экзамена (на пятёрку нужно пять), криптография, пен-тестинг, RSA и EC, и т.д. и т.п.
Для меня, как и для многих сокурсников, работа это перманентный, никогда не заканчивающийся отдых. Когда надо глянуть краем глаза, как устроена деривация ключей эллиптических кривых в стиле современных криптовалютных кошельков, я знаю, что я всё это уже видел; иногда не просто видел, а выучил; иногда не просто выучил, а сдал выше "тройки". Даже тройки достаточно, чтобы знать всё, что нужно знать, и сверх того, даже если уже давно забыл. Это не страшно. Это "халява". Это развлечение. Сдавать сессию страшно. А программировать – это весело.
#programming
На хабре обсуждают очередной крах обманутых ожиданий:
> Я суетился, пытался искать пути трудоустройства, параллельно учился и изучал материал самостоятельно, и вот, на третьем курсе, я уже работаю в технической поддержке. Проработав там 10 месяцев, я узнал о том, что обучение в ВУЗе покрывает от силы 10 процентов того, что потребовалось в работе, и что самостоятельное изучение является чуть ли не основополагающим в становлении меня как специалиста. Для меня, как человека, который верил в то, что учебное заведение призвано ОБУЧАТЬ, это было, мягко говоря, шоком.
По этому поводу в очередной раз добавляю пару своих мыслей.
Во-первых, высшее образование высшему образованию рознь. Пока стараниями снобов при поддержке широкой общественности ЕГЭ не отменили у каждого юноши и девушки есть шанс получить нормальное высшее образование при нулевых организационных затратах. Придётся, впрочем, изрядно потратить усилий собственно на само обучение.
Для меня самого до сих пор, спустя 15 лет от начала IT-карьеры, знания полученные в институте покрывают, наверное, 80% от того, что потребовалось в работе. Нет, я не беру конкретные имена методов в очередном фреймворке для формошлёпства, понятно что фреймворков много, а методов ещё больше. Но изучение всего этого требует лишь навыка читать и понимать прочитанное, чему научили ещё в школе. Впрочем, навык читать-понимать тот же английский в ВУЗе значительно подтянули, так что и такая общая польза была. И нет, не думаю что многочисленные вариации матана так уж хороши для "приведения ума в порядок". Также как я не думаю, что ВУЗ даёт мифический навык "учиться учиться": в лучшем случае, организует контекст негативного отбора и стрессовую мотивацию для обретения этого навыка.
Речь о конкретных прозаических вещах, о десятков курсов "основы Х": основы ядра линукса, основы программирования на C, основы алгоритмов, О-нотации, основы того, сего и всего. Паттерны ОО-дизайна на C++ в расписании, паттерны gang of four для Java в книге сокурсника, паттерны новых обоев на стене компьютерного класса, где изучали Ruby (да, у нас был такой курс, после и вследствие которого в будущем я и стал Rails-разработчиком), паттерны нормализации реляционных баз данных, паттерны циклов do while и while do в ассемблере, паттерны решения ACM-задач на институтском сайте, паттерны общения с преподавателями на экзаменах.
Многопоточное программирование, семафоры, сигналы, разделяемая память. Дискретная математика, вычислительная математика, высшая алгебра, группы, сходимость приближенных вычислений, сходимость интегралов, сходимость студентов на первую пару. Спектры, АЧХ-ФЧХ, ПЛИСы, верилоги-виэйчдиэли, "график вверх ногами". Консультации до лабораторных работ, консультации после лабораторных, консультации вместо лабораторных у одногруппника, работающего инженером в "Эльбрусе". Высшая алгебра, теория информации, энтропия, LZ-сжатие в тетрадочке в клеточку, четвёрка в диплом за нулевую посещаемость при шести верных задачах письменного экзамена (на пятёрку нужно пять), криптография, пен-тестинг, RSA и EC, и т.д. и т.п.
Для меня, как и для многих сокурсников, работа это перманентный, никогда не заканчивающийся отдых. Когда надо глянуть краем глаза, как устроена деривация ключей эллиптических кривых в стиле современных криптовалютных кошельков, я знаю, что я всё это уже видел; иногда не просто видел, а выучил; иногда не просто выучил, а сдал выше "тройки". Даже тройки достаточно, чтобы знать всё, что нужно знать, и сверх того, даже если уже давно забыл. Это не страшно. Это "халява". Это развлечение. Сдавать сессию страшно. А программировать – это весело.
#programming
Выше было во-первых, перейдём к во-вторых.
Жалобы на то, что приходится много изучать, звучат как-то странно и даже чужеродно для программиста.
Мой собственный интерес к программированию изначально воплотился (спустя недолгое время после того, как я научился говорить) в желание буквально расковырять исполняемые файлы и посмотреть как они устроены. Я нажимал F4 в Нортон Коммандере на экзешниках и день за днём смотрел на эти крякозябры (машинные коды в текстовом виде выглядят как набор случайных символов). И думал, как же программисты пишут эти закорючки, если их даже на клавиатуре нет, не говоря уже про то что такое огромное их количество надо как-то запомнить. Каким-то невероятным умом надо обладать для такого. С другой стороны, а куда деваться.
Вскоре я добрался до книг и по машинным кодам, и по булевой логике, и по отдельным языкам программирования. Не сказать, что понял всё (хотя классическая "энциклопедия профессора Фортрана" вполне доступным языком излагала главное – правда картинки мне казались слишком пёстрыми и было смутное недовольство от низкой плотности упаковки текстового содержания на страницах, мне нужно было узнать конкретную вещь, а не комиксами любоваться), но из всего понемногу я понял главное: программисты не запоминают тысячи разных закорючек, они пользуются (даже в предельном случае машинных кодов) удобными для человека словами и предложениями.
То есть я понял, что программирование это просто.
Таким оно в общем и целом простым для меня и оставалось по мере дальнейшего изучения и работы – из-за изначально поставленной нереально высокой планки ожиданий сложности. Справедливости ради, каким-то объективным хардкором я в общем-то никогда и не занимался, оставаясь разработчиком прикладного ПО.
Программистам может наскучивать рутина, но им не наскучивает новое. Считается, что если программисту не платить за работу, то он всё равно будет программировать. Это верно, но есть нюанс – он будет программировать нечто иное, скорее всего чего раньше ещё не делал.
Когда будете читать в очередной раз про то, как программировать прикольно и весело, помните, что пишет человек с особенным отношением к этому делу. Для меня нажать F4 на исполняемом файле было чем-то естественным и даже тривиальным. Наверное, для всех это очевидный шаг. Но на самом деле нет, не для всех (что я понял только спустя лет двадцать пять).
#programming
Жалобы на то, что приходится много изучать, звучат как-то странно и даже чужеродно для программиста.
Мой собственный интерес к программированию изначально воплотился (спустя недолгое время после того, как я научился говорить) в желание буквально расковырять исполняемые файлы и посмотреть как они устроены. Я нажимал F4 в Нортон Коммандере на экзешниках и день за днём смотрел на эти крякозябры (машинные коды в текстовом виде выглядят как набор случайных символов). И думал, как же программисты пишут эти закорючки, если их даже на клавиатуре нет, не говоря уже про то что такое огромное их количество надо как-то запомнить. Каким-то невероятным умом надо обладать для такого. С другой стороны, а куда деваться.
Вскоре я добрался до книг и по машинным кодам, и по булевой логике, и по отдельным языкам программирования. Не сказать, что понял всё (хотя классическая "энциклопедия профессора Фортрана" вполне доступным языком излагала главное – правда картинки мне казались слишком пёстрыми и было смутное недовольство от низкой плотности упаковки текстового содержания на страницах, мне нужно было узнать конкретную вещь, а не комиксами любоваться), но из всего понемногу я понял главное: программисты не запоминают тысячи разных закорючек, они пользуются (даже в предельном случае машинных кодов) удобными для человека словами и предложениями.
То есть я понял, что программирование это просто.
Таким оно в общем и целом простым для меня и оставалось по мере дальнейшего изучения и работы – из-за изначально поставленной нереально высокой планки ожиданий сложности. Справедливости ради, каким-то объективным хардкором я в общем-то никогда и не занимался, оставаясь разработчиком прикладного ПО.
Программистам может наскучивать рутина, но им не наскучивает новое. Считается, что если программисту не платить за работу, то он всё равно будет программировать. Это верно, но есть нюанс – он будет программировать нечто иное, скорее всего чего раньше ещё не делал.
Когда будете читать в очередной раз про то, как программировать прикольно и весело, помните, что пишет человек с особенным отношением к этому делу. Для меня нажать F4 на исполняемом файле было чем-то естественным и даже тривиальным. Наверное, для всех это очевидный шаг. Но на самом деле нет, не для всех (что я понял только спустя лет двадцать пять).
#programming
Вкратце про монады
Программистов часто пугают некими монадами, которые являются одновременно чем-то загадочно-непостижимым и при этом повсюду применимым.
Как узнать, что такое монады в две строки из, фактически, первоисточника:
Ну какие ещё могут быть вопросы после такого?
Программистов часто пугают некими монадами, которые являются одновременно чем-то загадочно-непостижимым и при этом повсюду применимым.
Как узнать, что такое монады в две строки из, фактически, первоисточника:
docker run --rm -it haskell:slimГде ясно написано, что монада это аппликативный функтор с определённой операцией
:info Monad
>>=
(bind, привязки).Ну какие ещё могут быть вопросы после такого?
Вкратце о ИИ и программистах
Скинули видео об очередном ИИ для генерации кода, в этот раз от OpenAI – Codex. Напомню, аналогичную разработку ведёт GitHub под названием Copilot.
В целом "вспомогательный ИИ" для выполнения рутинных задач в текстовом редакторе – годная тема. Думаю, имеет смысл его затачивать именно в сторону облегчения повторных однородных правок, мелкого рефакторинга и т.д.
В некоторых СМИ акцент делают на хайповой теме "не закончится ли нужда в программистах". Я начал этот канал с тезиса о том, что программисты и так нужны не всякие. В целом кодогенерация, "рельсовики" вон об этом тоже представление имеют по всяким
Я бы не отказался от ИИ-помощника типа того, что в первом видео, который по словам "сделай мне сцену, где была бы солнечная система с планетами, двигающимися в соответствии с законами небесной механики" набросала заготовку проекта в Godot. К сожалению, пока что ИИ может только на основе гораздо менее содержательных (по смыслу более простых) предложений накидать заготовку веб-сервиса на Питоне.
Проще ли это, чем скопировать готовый код, который будет на первой странице результатов запроса в Гугл? Конечно, намного проще: и понимает цель запроса такой ИИ лучше, пока что, чем поисковая строка Гугла; и ответ сразу вставляется в документ, не надо копировать. Это сильно снизит порог входа для новичков (и это прекрасно), вызовет интерес у школьников и студентов.
Станет ли это серьёзным инструментом "взрослых" разработчиков, в разы сокращающим требуемое на написание кода время? Думаю, в ближайшем будущем вряд ли. Кодогенерация – термин давно известный, минусы подхода тоже понятны: нагенерированный не понятно как код надо потом самому же и поддерживать.
Вместо ряда типовых трюков и хайповых примеров разработчики ИИ могли бы представить нейросетку, которая, к примеру, обнаруживает в "сишной" программе утечки памяти и предлагает варианты их устранения. Почему-то вместо нейросетей в этой чрезвычайно интеллектуальной (и в какой-то мере творческой) области используются формальные анализаторы кода, инструменты математической валидации, или даже специальные языки программирования. ИИ оказывается неисправимо "гуманитарным" (гуманистичным?) для таких задач.
Так что диссертацию по философии или теологии в каком-нибудь продвинутом ВУЗе какая-нибудь лямбда защитить, уверен, вскоре сможет. Создать язык программирования, написать увлекательный научно-фантастический роман, победить в чемпионате по Старкрафту с ограниченным APM – нет.
Кстати, о старкрафте. Люблю вспоминать старые темы. Помните, там какой-то очередной ИИ в Го победил чемпиона, и вот-вот должен был победить команду чемпионов в "Доту"? Так и как там дела у них?
#science #programming #neuronetworks
Скинули видео об очередном ИИ для генерации кода, в этот раз от OpenAI – Codex. Напомню, аналогичную разработку ведёт GitHub под названием Copilot.
В целом "вспомогательный ИИ" для выполнения рутинных задач в текстовом редакторе – годная тема. Думаю, имеет смысл его затачивать именно в сторону облегчения повторных однородных правок, мелкого рефакторинга и т.д.
В некоторых СМИ акцент делают на хайповой теме "не закончится ли нужда в программистах". Я начал этот канал с тезиса о том, что программисты и так нужны не всякие. В целом кодогенерация, "рельсовики" вон об этом тоже представление имеют по всяким
rails g
, облегчает наполнение проекта и преодоления "страха чистого листа" для новичков, но едва ли значительно ускоряет создание реального проекта от начала до конца.Я бы не отказался от ИИ-помощника типа того, что в первом видео, который по словам "сделай мне сцену, где была бы солнечная система с планетами, двигающимися в соответствии с законами небесной механики" набросала заготовку проекта в Godot. К сожалению, пока что ИИ может только на основе гораздо менее содержательных (по смыслу более простых) предложений накидать заготовку веб-сервиса на Питоне.
Проще ли это, чем скопировать готовый код, который будет на первой странице результатов запроса в Гугл? Конечно, намного проще: и понимает цель запроса такой ИИ лучше, пока что, чем поисковая строка Гугла; и ответ сразу вставляется в документ, не надо копировать. Это сильно снизит порог входа для новичков (и это прекрасно), вызовет интерес у школьников и студентов.
Станет ли это серьёзным инструментом "взрослых" разработчиков, в разы сокращающим требуемое на написание кода время? Думаю, в ближайшем будущем вряд ли. Кодогенерация – термин давно известный, минусы подхода тоже понятны: нагенерированный не понятно как код надо потом самому же и поддерживать.
Вместо ряда типовых трюков и хайповых примеров разработчики ИИ могли бы представить нейросетку, которая, к примеру, обнаруживает в "сишной" программе утечки памяти и предлагает варианты их устранения. Почему-то вместо нейросетей в этой чрезвычайно интеллектуальной (и в какой-то мере творческой) области используются формальные анализаторы кода, инструменты математической валидации, или даже специальные языки программирования. ИИ оказывается неисправимо "гуманитарным" (гуманистичным?) для таких задач.
Так что диссертацию по философии или теологии в каком-нибудь продвинутом ВУЗе какая-нибудь лямбда защитить, уверен, вскоре сможет. Создать язык программирования, написать увлекательный научно-фантастический роман, победить в чемпионате по Старкрафту с ограниченным APM – нет.
Кстати, о старкрафте. Люблю вспоминать старые темы. Помните, там какой-то очередной ИИ в Го победил чемпиона, и вот-вот должен был победить команду чемпионов в "Доту"? Так и как там дела у них?
#science #programming #neuronetworks
Вкратце про нефть
Ранее писал, что главная функция ЦБ, evidently, это защита активов зарубежных стейкхолдеров крупнейших экспортёров.
Думаю, многие инвесторы в первую неделю так называемых "известных событий" сидели и рассуждали примерно следующим образом:
– Ну, идёт уже который день нагнетания взаимных санкций и общей неопределённости и сейчас, вот может быть прямо сегодня, вот может быть прямо в этот час, самые стойкие операторы зарубежных фондов (действие которых и задавало тренды российского рынка акций) решат, что хватит с них всего, и начнут кликать "продать, продать, продать!". Тут-то мы и национализируем всё! – занося палец над кнопкой "купить".
Спустя короткое время, однако, ЦБ выпустил указ о запрете продажи иностранцами активов. При этом не стесняясь буквально назвать чёрное белым заявил, что сделал это для защиты отечественных инвесторов.
Что его на самом деле вынудило ввести такую меру не трудно представить. В качестве анекдота я несколько месяцев пересказывал такую фантазию/гипотезу: звонит нужному зампреду специальный человек из British Petroleum и говорит:
– Ребята, нас тут правительство UK зажимает, заставляет продать долю в Роснефти, говорят неприлично так нагло продолжать вкладываться в Россию на фоне санкций и всего. А мы не хотим её продавать. Сделайте со своей стороны что-нибудь.
– Понял, – отвечают в ЦБ. И накладывают санкции на российских граждан, запрещая им выкупить по-дешёвке акции Роснефти.
Ну а сейчас сама BP рассказывает, как оно было:
> Британская ВР сохраняет участие в российских активах, в том числе 19,75% пакет акций "Роснефти" — крупнейшей в РФ нефтяной компании.
>
> В финансовом отчете британской компании, опубликованном 2 августа, говорится, что контрсанкции со стороны Москвы не позволяют ВР отказаться от доли в "Роснефти": компания не может осуществить продажу акций "Роснефти" на Московской бирже и оценить вероятность какого-либо сценария выхода из актива.
Не удивлюсь, если и звонок телефона, и содержание разговора из этой фантазии-озарения окажутся ближе к реальности, чем я сам предполагаю.
#economics #investing
Ранее писал, что главная функция ЦБ, evidently, это защита активов зарубежных стейкхолдеров крупнейших экспортёров.
Думаю, многие инвесторы в первую неделю так называемых "известных событий" сидели и рассуждали примерно следующим образом:
– Ну, идёт уже который день нагнетания взаимных санкций и общей неопределённости и сейчас, вот может быть прямо сегодня, вот может быть прямо в этот час, самые стойкие операторы зарубежных фондов (действие которых и задавало тренды российского рынка акций) решат, что хватит с них всего, и начнут кликать "продать, продать, продать!". Тут-то мы и национализируем всё! – занося палец над кнопкой "купить".
Спустя короткое время, однако, ЦБ выпустил указ о запрете продажи иностранцами активов. При этом не стесняясь буквально назвать чёрное белым заявил, что сделал это для защиты отечественных инвесторов.
Что его на самом деле вынудило ввести такую меру не трудно представить. В качестве анекдота я несколько месяцев пересказывал такую фантазию/гипотезу: звонит нужному зампреду специальный человек из British Petroleum и говорит:
– Ребята, нас тут правительство UK зажимает, заставляет продать долю в Роснефти, говорят неприлично так нагло продолжать вкладываться в Россию на фоне санкций и всего. А мы не хотим её продавать. Сделайте со своей стороны что-нибудь.
– Понял, – отвечают в ЦБ. И накладывают санкции на российских граждан, запрещая им выкупить по-дешёвке акции Роснефти.
Ну а сейчас сама BP рассказывает, как оно было:
> Британская ВР сохраняет участие в российских активах, в том числе 19,75% пакет акций "Роснефти" — крупнейшей в РФ нефтяной компании.
>
> В финансовом отчете британской компании, опубликованном 2 августа, говорится, что контрсанкции со стороны Москвы не позволяют ВР отказаться от доли в "Роснефти": компания не может осуществить продажу акций "Роснефти" на Московской бирже и оценить вероятность какого-либо сценария выхода из актива.
Не удивлюсь, если и звонок телефона, и содержание разговора из этой фантазии-озарения окажутся ближе к реальности, чем я сам предполагаю.
#economics #investing
Вкратце про игры для программистов
Тракторист после работы приходит домой и расслабляется в Farming Simulator, экскаваторщик в Excavator Simulator (увы, ещё не вышла, но очень ждём), фрезеровщик в Milling machine 3D, ну а игры для программистов мы сейчас вкратце рассмотрим. За прошедшие годы тут выбор крайне широкий, и в этот пост постараюсь уместить только непосредственно связанное с разработкой программ (т.е. условный Factorio или ещё что отдалённое не рассматриваем), лично рассмотренное и, с моей точки зрения, одновременно полезное и приятное.
1. TIS-100. Программируем многоядерную машину на ассемблере. Скучно, блекло и искусственные ограничения (всего несколько десятков строк кода на каждое "ядро") демотивируют. Но, в целом, классика, которую нельзя не упомянуть.
2. Exapunks. Красочно, ярко, интересно. Уровни разнообразные и сопровождаются симпатичными рисовками. Тоже ассемблер.
3. MHRD. Аскетичный интерфейс и минималистичная сопроводительная история, однако уникальная механика: собираем из отдельных элементарных элементов (в последующих уровнях используются собранные ранее) полноценный микропроцессор. Конечно, упрощённая, но вполне прикольная репрезентация разработки-дизайна интегральных микросхем.
4. The Signal State. Весьма красочная и с прописанным сюжетом. Разрабатываем аналоговые преобразователи сигналов, соединяя их в специальной деке в цепочку. Однако, механика довольно слабая, забирать элементы с предыдущего уровня на следующий нельзя.
#games
Тракторист после работы приходит домой и расслабляется в Farming Simulator, экскаваторщик в Excavator Simulator (увы, ещё не вышла, но очень ждём), фрезеровщик в Milling machine 3D, ну а игры для программистов мы сейчас вкратце рассмотрим. За прошедшие годы тут выбор крайне широкий, и в этот пост постараюсь уместить только непосредственно связанное с разработкой программ (т.е. условный Factorio или ещё что отдалённое не рассматриваем), лично рассмотренное и, с моей точки зрения, одновременно полезное и приятное.
1. TIS-100. Программируем многоядерную машину на ассемблере. Скучно, блекло и искусственные ограничения (всего несколько десятков строк кода на каждое "ядро") демотивируют. Но, в целом, классика, которую нельзя не упомянуть.
2. Exapunks. Красочно, ярко, интересно. Уровни разнообразные и сопровождаются симпатичными рисовками. Тоже ассемблер.
3. MHRD. Аскетичный интерфейс и минималистичная сопроводительная история, однако уникальная механика: собираем из отдельных элементарных элементов (в последующих уровнях используются собранные ранее) полноценный микропроцессор. Конечно, упрощённая, но вполне прикольная репрезентация разработки-дизайна интегральных микросхем.
4. The Signal State. Весьма красочная и с прописанным сюжетом. Разрабатываем аналоговые преобразователи сигналов, соединяя их в специальной деке в цепочку. Однако, механика довольно слабая, забирать элементы с предыдущего уровня на следующий нельзя.
#games
Вкратце про развитие IT
Обозначу вкратце маркеры, по которым, на мой взгляд, можно судить о том, что некая айти-компания в самом деле занимается развитием:
1. На позиции главного публичного лица (например, генерального директора; или министра) находится человек, который всеми силами старается мимикрировать под айтишника. Понятно, что настоящий технарь, занимающий высший управленческий пост, это статистическая погрешность, которой следует пренебречь при общем взгляде – не так мир устроен. Посему управленец, который хотя бы притворяется технарём, это уже хорошо. Если управленец (на публичной позиции) притворяется зиц-председателем (зиц-председатель претворяющийся зиц-председателем – даже звучит абсурдно) и на передний план выставляет MBA, экономическое образование, юридический ВУЗ и прочие МГИМО, то диагноз вполне однозначен – ничего не будет, а если и будет, то вопреки.
2. Настоящие технари, т.е. люди с подлинным высшим техническим образованием и достаточным опытом работы техническими специалистами в некоторой айти-области, начинаются уже на втором уровне иерархии управления. Если начинаются только на третьем – дела идут плоховатенько, прорывов можно не ждать. Если на четвёртом и далее – ничего не будет.
3. Тот же пункт, но немного с другой стороны. Понятно, что вырасти "с самых низов" и до генерального директора/мажоритарного акционера крупной айти-компании – это статистическая погрешность (а скорее всего сказка для детей). Опять же, не так мир устроен. Топовые позиции занимают люди из некоей группы X со своей определённой субкультурой, а специалистами работают люди некоей группы Y с другой определённой субкультурой. Множества слабо пересекаются, хотя за счёт мимикрии, на беглый взгляд, граница и выглядит размыто. Так вот, айти-компания/отрасль будет развиваться, если существует сформированный класс управленцев второго уровня из группы Y – т.е. на высшие руководящие позиции систематически попадают "технари", которые прочно на них закрепляются и условно свободно мигрируют с одной такой позиции на другую.
4. Специалистам "на местах" платят нормальные деньги. Думаю, не требует дополнительных уточнений.
Ну, соответственно новости в духе:
> Выпускник, скажем, университета марксизма-ленинизма (юридического факультета областного ВУЗа, Британского университета дружбы народов, ВШЭ, etc.) поднимает высокотехнологическую отрасль, скажем, космонавтики (микропроцессоров, самолётостроения, производства подшипников, etc.), получил N млрд. руб. на развитие отрасли (зарплата инженера высшей категории на соответствующем заводе: 30 тыс. руб.), разогнал старых коррупционеров и привёл свою команду (выпускников тех же институтов, ни одного с профильной специальностью, раньше, например, продавали мебель), и теперь мы заживём!
Стоит читать так – в данной отрасли продолжается запланированная стагнация. Если бы хотели её развалить совсем, то новость была бы немного другой. А если бы хотели что-то в ней сделать, то см. пункты выше.
#economics
Обозначу вкратце маркеры, по которым, на мой взгляд, можно судить о том, что некая айти-компания в самом деле занимается развитием:
1. На позиции главного публичного лица (например, генерального директора; или министра) находится человек, который всеми силами старается мимикрировать под айтишника. Понятно, что настоящий технарь, занимающий высший управленческий пост, это статистическая погрешность, которой следует пренебречь при общем взгляде – не так мир устроен. Посему управленец, который хотя бы притворяется технарём, это уже хорошо. Если управленец (на публичной позиции) притворяется зиц-председателем (зиц-председатель претворяющийся зиц-председателем – даже звучит абсурдно) и на передний план выставляет MBA, экономическое образование, юридический ВУЗ и прочие МГИМО, то диагноз вполне однозначен – ничего не будет, а если и будет, то вопреки.
2. Настоящие технари, т.е. люди с подлинным высшим техническим образованием и достаточным опытом работы техническими специалистами в некоторой айти-области, начинаются уже на втором уровне иерархии управления. Если начинаются только на третьем – дела идут плоховатенько, прорывов можно не ждать. Если на четвёртом и далее – ничего не будет.
3. Тот же пункт, но немного с другой стороны. Понятно, что вырасти "с самых низов" и до генерального директора/мажоритарного акционера крупной айти-компании – это статистическая погрешность (а скорее всего сказка для детей). Опять же, не так мир устроен. Топовые позиции занимают люди из некоей группы X со своей определённой субкультурой, а специалистами работают люди некоей группы Y с другой определённой субкультурой. Множества слабо пересекаются, хотя за счёт мимикрии, на беглый взгляд, граница и выглядит размыто. Так вот, айти-компания/отрасль будет развиваться, если существует сформированный класс управленцев второго уровня из группы Y – т.е. на высшие руководящие позиции систематически попадают "технари", которые прочно на них закрепляются и условно свободно мигрируют с одной такой позиции на другую.
4. Специалистам "на местах" платят нормальные деньги. Думаю, не требует дополнительных уточнений.
Ну, соответственно новости в духе:
> Выпускник, скажем, университета марксизма-ленинизма (юридического факультета областного ВУЗа, Британского университета дружбы народов, ВШЭ, etc.) поднимает высокотехнологическую отрасль, скажем, космонавтики (микропроцессоров, самолётостроения, производства подшипников, etc.), получил N млрд. руб. на развитие отрасли (зарплата инженера высшей категории на соответствующем заводе: 30 тыс. руб.), разогнал старых коррупционеров и привёл свою команду (выпускников тех же институтов, ни одного с профильной специальностью, раньше, например, продавали мебель), и теперь мы заживём!
Стоит читать так – в данной отрасли продолжается запланированная стагнация. Если бы хотели её развалить совсем, то новость была бы немного другой. А если бы хотели что-то в ней сделать, то см. пункты выше.
#economics
Вкратце про обучение "матану"
На фоне чуть ли не многовековых разговоров о том, как "матан" (в общем смысле, т.е. стандартные разделы/курсы высшей математики) это что-то такое мозголомное и труднопонимаемое 21-й век наконец начал расставлять всё по местам.
При правильной визуализации, оказывается, и линейная алгебра, и математический анализ, и дифференциальные уравнения и т.д. вполне себе дело житейское, и то что требует у среднего человека двух недель непрерывного прокручивания в голове до появления нужного инсайта, оказывается, должно занимать десять минут просмотра насыщенного правильно подобранными анимациями видеоролика.
3blue1brown, автор множества роликов с такими анимациями, в-одиночку сделал не просто устаревшим, а прямо-таки постыдным традиционный вузовский формат лекций и демонстраций. Более того, выложив в открытый доступ движок для создания анимаций, уже, фактически, стал родоначальником конкретного нового жанра и стиля ютюбовских учебных роликов.
Это что касается лекционной части. Обновление образовательных методов нужно, конечно, и в семинарской. Не трудно и здесь предположить дальнейшее движение прогресса. Для того, чтобы постигать как физику, так и математику, требуется появление в голове студента определённой "виртуальной машины", которая бы позволяла бы в уме крутить за разные рукоятки форально-логическую (для которой и наглядную репрезентацию-то, кстати, сформировать не столь просто) или физическую систему. Точно также, как у программиста появляется в голове представление о том, как компьютер читает и выполняет его программу.
У программистов этот процесс происходит проще и быстрее (особенно, если есть возможность пользоваться интерактивным отладчиком). Отсюда простой вывод: надо физику-математику заменить на программирование! (А что вы ожидали ещё от программиста, ребята?) Конечно, "черепашка лого", которую многие помнят со школы, это для студентов уже как-то по-детски несерьёзно. Взрослые ребята должны писать свой шейдеры на Shadertoy (написал этот пост, в целом, чтобы скинуть пару ссылок на свои светящиеся круги и стержни).
Ну а упражняться в доказательствах теорем надо, конечно же, не на листочке с бумагой, а в интерактивной консоли компьютерной системы логики высшего порядка. На соответствующих спецкурсах можно ставить учебные задачи разработки подобной системы (в упрощённом виде), также как курс по языкам программирования должен заканчиваться разработкой языка программирования.
Думаю, примерно так реальная революция в образовании (в конкретных предметах, по крайней мере) и происходит – а все эти разговоры о срочной необходимости отменить средневековую тоталитарную классно-урочную систему никакого значения в итоге не имеют.
#science #education #mathematics
На фоне чуть ли не многовековых разговоров о том, как "матан" (в общем смысле, т.е. стандартные разделы/курсы высшей математики) это что-то такое мозголомное и труднопонимаемое 21-й век наконец начал расставлять всё по местам.
При правильной визуализации, оказывается, и линейная алгебра, и математический анализ, и дифференциальные уравнения и т.д. вполне себе дело житейское, и то что требует у среднего человека двух недель непрерывного прокручивания в голове до появления нужного инсайта, оказывается, должно занимать десять минут просмотра насыщенного правильно подобранными анимациями видеоролика.
3blue1brown, автор множества роликов с такими анимациями, в-одиночку сделал не просто устаревшим, а прямо-таки постыдным традиционный вузовский формат лекций и демонстраций. Более того, выложив в открытый доступ движок для создания анимаций, уже, фактически, стал родоначальником конкретного нового жанра и стиля ютюбовских учебных роликов.
Это что касается лекционной части. Обновление образовательных методов нужно, конечно, и в семинарской. Не трудно и здесь предположить дальнейшее движение прогресса. Для того, чтобы постигать как физику, так и математику, требуется появление в голове студента определённой "виртуальной машины", которая бы позволяла бы в уме крутить за разные рукоятки форально-логическую (для которой и наглядную репрезентацию-то, кстати, сформировать не столь просто) или физическую систему. Точно также, как у программиста появляется в голове представление о том, как компьютер читает и выполняет его программу.
У программистов этот процесс происходит проще и быстрее (особенно, если есть возможность пользоваться интерактивным отладчиком). Отсюда простой вывод: надо физику-математику заменить на программирование! (А что вы ожидали ещё от программиста, ребята?) Конечно, "черепашка лого", которую многие помнят со школы, это для студентов уже как-то по-детски несерьёзно. Взрослые ребята должны писать свой шейдеры на Shadertoy (написал этот пост, в целом, чтобы скинуть пару ссылок на свои светящиеся круги и стержни).
Ну а упражняться в доказательствах теорем надо, конечно же, не на листочке с бумагой, а в интерактивной консоли компьютерной системы логики высшего порядка. На соответствующих спецкурсах можно ставить учебные задачи разработки подобной системы (в упрощённом виде), также как курс по языкам программирования должен заканчиваться разработкой языка программирования.
Думаю, примерно так реальная революция в образовании (в конкретных предметах, по крайней мере) и происходит – а все эти разговоры о срочной необходимости отменить средневековую тоталитарную классно-урочную систему никакого значения в итоге не имеют.
#science #education #mathematics
Вкратце про тест Тьюринга (1/2)
У Тьюринга, человека выдающегося интеллекта, выросшего в феодальном государстве с первобытными порядками, была тяжёлая жизнь с юношества и до самой смерти. Тьюринг типичный евразиец, родители – низовые британские аристократы, жили в Индии. Отметим на полях, что именно из такого контекста и пошло слово "евразиец", которое в связи с определёнными последними трагичными событиями мусолится в некоторых политических кругах. После переезда в Лондон молодой парень, чувствовавший себя в колонии принцем (с соответствующем, в том числе, уровнем жизни), превратился в "омегу" среди местных англичан. Гениальность всё равно пробилась, но личность поломалась от подобной "школы жизни" изрядно.
Уже на фоне блестящей карьеры и высочайших технических/интеллектуальных достижений (Тьюринг стал одним из отцов-основателей "компьютерных наук") он подвергся демонстративной государственной травле по надуманному поводу, позорному приговору, пыткам и, в итоге, насильственной смерти. Рядом с трупом нашли надкушенное яблоко (символ греха), ну мол они-гебисты тоже люди образованные, книжки читали. И в документах так и написали – яблоко, т.е. грех, буквально и убило. Все эти невероятные по меркам 20-го века репрессии и художества якобы из-за гомосексуализма – это в стране, где гомосексуалисты являются государствообразующим классом.
В качестве последнего издевательского жеста он был реабилитирован в 2017-м (!) году, при этом подчёркивается, что правовых последствий это "помилование" не имеет. Т.е. символический (значит, изначально притворный, сделанный понарошку – прошлого в любом случае не исправишь) жест символически же сделан (как бы в квадрате притворно и демонстративно-понарошку).
На фоне развития ИИ периодически упоминают так называемый тест Тьюринга. Напомню правила игры (которой этот тест и является): чат-бот должен по очереди убедить 70%+ собеседников (жюри), что является человеком, а не машиной. Тьюринг считал, что к началу 21-го века результат будет достигнут. Блестящих успехов в этой области достичь не удалось, но какие-то подвижки есть: боты, которые притворяются идиотами или сильно эмоциональными собеседниками, вполне успешно дурят головы самым наивным судьям. Примечательно, что Тьюрингу самому такой способ "взлома" его теста в голову не пришёл. Да и оригинальная статья вышла откровенно слабой, из-за того, что Тьюринг больше занимается проекцией и рефлексией некоторых собственных внутренних психических поломок, а не рассуждениями по существу.
Непреодолимым препятствием для современных чат-ботов является удержание контекста. "Алиса, какая погода в Самаре? А есть ли там пробки на дорогах?". Вот это слово "там" разыменовать (как переменную-указатель в программировании) ИИ может только в жёстко и вручную прописанных разработчиком случаях (т.е. лингвистического интеллекта не демонстрирует). А человек на самых "минималках" владения языком делает запросто и не задумываясь ни на мгновение.
#programming #psychology #politics
У Тьюринга, человека выдающегося интеллекта, выросшего в феодальном государстве с первобытными порядками, была тяжёлая жизнь с юношества и до самой смерти. Тьюринг типичный евразиец, родители – низовые британские аристократы, жили в Индии. Отметим на полях, что именно из такого контекста и пошло слово "евразиец", которое в связи с определёнными последними трагичными событиями мусолится в некоторых политических кругах. После переезда в Лондон молодой парень, чувствовавший себя в колонии принцем (с соответствующем, в том числе, уровнем жизни), превратился в "омегу" среди местных англичан. Гениальность всё равно пробилась, но личность поломалась от подобной "школы жизни" изрядно.
Уже на фоне блестящей карьеры и высочайших технических/интеллектуальных достижений (Тьюринг стал одним из отцов-основателей "компьютерных наук") он подвергся демонстративной государственной травле по надуманному поводу, позорному приговору, пыткам и, в итоге, насильственной смерти. Рядом с трупом нашли надкушенное яблоко (символ греха), ну мол они-гебисты тоже люди образованные, книжки читали. И в документах так и написали – яблоко, т.е. грех, буквально и убило. Все эти невероятные по меркам 20-го века репрессии и художества якобы из-за гомосексуализма – это в стране, где гомосексуалисты являются государствообразующим классом.
В качестве последнего издевательского жеста он был реабилитирован в 2017-м (!) году, при этом подчёркивается, что правовых последствий это "помилование" не имеет. Т.е. символический (значит, изначально притворный, сделанный понарошку – прошлого в любом случае не исправишь) жест символически же сделан (как бы в квадрате притворно и демонстративно-понарошку).
На фоне развития ИИ периодически упоминают так называемый тест Тьюринга. Напомню правила игры (которой этот тест и является): чат-бот должен по очереди убедить 70%+ собеседников (жюри), что является человеком, а не машиной. Тьюринг считал, что к началу 21-го века результат будет достигнут. Блестящих успехов в этой области достичь не удалось, но какие-то подвижки есть: боты, которые притворяются идиотами или сильно эмоциональными собеседниками, вполне успешно дурят головы самым наивным судьям. Примечательно, что Тьюрингу самому такой способ "взлома" его теста в голову не пришёл. Да и оригинальная статья вышла откровенно слабой, из-за того, что Тьюринг больше занимается проекцией и рефлексией некоторых собственных внутренних психических поломок, а не рассуждениями по существу.
Непреодолимым препятствием для современных чат-ботов является удержание контекста. "Алиса, какая погода в Самаре? А есть ли там пробки на дорогах?". Вот это слово "там" разыменовать (как переменную-указатель в программировании) ИИ может только в жёстко и вручную прописанных разработчиком случаях (т.е. лингвистического интеллекта не демонстрирует). А человек на самых "минималках" владения языком делает запросто и не задумываясь ни на мгновение.
#programming #psychology #politics
Вкратце про тест Тьюринга (2/2)
В связи с вкратце описанными элементами биографии Тьюринг первый вариант своего теста сформулировал так: жюри состоит из одного человека, который должен отличить (по сообщениям в чате) собеседника-мужчину от собеседницы-женщины, при этом мужчина должен стремиться обмануть игрока, а женщина помочь сделать верный выбор.
В современной Российской Федерации в другой (тематически) области, однако, есть аналогичная поломка: определённая группа людей из пресловутой "потомственной элиты" внезапно чувствует, что их национальная идентичность начинает как бы подвергаться тестированию, и им надо то ли друг друга обманывать, то ли некое жюри нахлобучить, то ли что.
Зрителям со стороны без таких психологических особенностей при этом совершенно не ясно, что же они вертятся, как ужи на сковородке? "Тут мы русские, тут не русские, тут русскоязычные, тут россияне, тут русский мир, тут цивилизационный проект, союз шестисот шестидесяти шести народов, шовинизм, националисты!"
Думаю, пока в нашей прогрессивной и по-настоящему толерантной стране – чай не средневековая монархия – наблюдатели спокойно и терпимо к этому цирку относятся, этим ребятам надо понять две вещи:
1. Русские есть. Рассуждения про россиян, русскоязычных, русский мир, русскую цивилизацию, русский это прилагательное не спасут от этого факта.
2. Чтобы быть русским, надо разобраться со своей национальной идентичностью.
Понятно, что дело тяжелое, потому что для "элитарной прослойки" дальше просматривается третий пункт: "если мы все, оказывается, не русские, то почему мы занимаем 90% топа в моноэтничном русском государстве?". Но эта мысль-то не бином Ньютона, дойти до неё раз плюнуть, раз до сих пор головы по мостовым не покатились, то наверное и не так всё страшно – может достаточно будет слегка вежливо подвинуться, а не свалиться совсем?
Может ли машина пройти тест Тьюринга вопрос уже тривиальный, а вот насколько хорошо национальный аналог теста Тьюринга (в качестве жюри – 80%+ населения страны) проходят новиопы – это мы непосредственно и наблюдаем. Успехов, господа, и пусть победит наиболее приспособленный!
#politics
В связи с вкратце описанными элементами биографии Тьюринг первый вариант своего теста сформулировал так: жюри состоит из одного человека, который должен отличить (по сообщениям в чате) собеседника-мужчину от собеседницы-женщины, при этом мужчина должен стремиться обмануть игрока, а женщина помочь сделать верный выбор.
В современной Российской Федерации в другой (тематически) области, однако, есть аналогичная поломка: определённая группа людей из пресловутой "потомственной элиты" внезапно чувствует, что их национальная идентичность начинает как бы подвергаться тестированию, и им надо то ли друг друга обманывать, то ли некое жюри нахлобучить, то ли что.
Зрителям со стороны без таких психологических особенностей при этом совершенно не ясно, что же они вертятся, как ужи на сковородке? "Тут мы русские, тут не русские, тут русскоязычные, тут россияне, тут русский мир, тут цивилизационный проект, союз шестисот шестидесяти шести народов, шовинизм, националисты!"
Думаю, пока в нашей прогрессивной и по-настоящему толерантной стране – чай не средневековая монархия – наблюдатели спокойно и терпимо к этому цирку относятся, этим ребятам надо понять две вещи:
1. Русские есть. Рассуждения про россиян, русскоязычных, русский мир, русскую цивилизацию, русский это прилагательное не спасут от этого факта.
2. Чтобы быть русским, надо разобраться со своей национальной идентичностью.
Понятно, что дело тяжелое, потому что для "элитарной прослойки" дальше просматривается третий пункт: "если мы все, оказывается, не русские, то почему мы занимаем 90% топа в моноэтничном русском государстве?". Но эта мысль-то не бином Ньютона, дойти до неё раз плюнуть, раз до сих пор головы по мостовым не покатились, то наверное и не так всё страшно – может достаточно будет слегка вежливо подвинуться, а не свалиться совсем?
Может ли машина пройти тест Тьюринга вопрос уже тривиальный, а вот насколько хорошо национальный аналог теста Тьюринга (в качестве жюри – 80%+ населения страны) проходят новиопы – это мы непосредственно и наблюдаем. Успехов, господа, и пусть победит наиболее приспособленный!
#politics
Языки программирования для разработки игр (1/3)
Что ж, недавно писал, что обучаться линейной алгебре надо на примере работы с компьютерной графикой.
Пойдём дальше и почти всерьёз обсудим, на чём стоит писать компьютерные игры. Решил для себя сделать краткий обзор полянок, думаю, будет интересен не только мне.
Обычно берут готовый движок, из которых три явно выделяются (перечисление от более хардкорного к более лояльному пользователю): Unreal, Unity, Godot.
На фоне этих трёх мейнстримных вариантов есть плеяда ушедших на второй план и почти забытых AAA-движков (Source, Cryengine, Serious Engine, etc.), которыми пользуются те кто давно в них вложился, и россыпь indie-вариантов. Из последних произвольно выделю Game Maker, использовал его ещё в школьные годы: одна из моих поделок даже случайно попала в какой-то болгарский компьютерный журнал. Примерно ту же нишу, насколько можно понять со стороны, занимают Construct, Cocos Creator и мн. др.
Для тех, кто хочет написать что-то более-менее с нуля или не хочет бороться с типовыми конвенциями движков, остаётся использование "графических библиотек" (ну или "игровых библиотек", т.е. графика + ввод-вывод + звуки) – кода, который поверх вызовов API операционной системы и низкоуровневых библиотек создаёт весьма тонкую абстракцию, чтобы вещи типа инициализации окна или создания камеры делались в одну строку (вместо череды API-вызовов операционной системы и перемножения трёх матриц соответственно).
Библиотек этих десятки на любой вкус и цвет, среди энтузиастов последнее время популярна Raylib. Так и пишут: создана для любителей программировать и желающих на практике разобраться, как работают видеоигры. Чуть более тонкие абстракции дают библиотеки SDL, GLFW и др.
На самом низком уровне находятся графические API. Долгое время их по сути было два: OpenGL (всеплатформенный) и DirectX (Windows + XBox). Консорциум, отвечающий за разработку OpenGL, объявил, что дальше его развивать не будет и все усилия направит на развитие Vulcan. На устройствах Apple свой Metal. В целом на будущее стоит осваивать Vulcan (а на настоящее и в качестве ностальгии – OpenGL).
Все основные вспомогательные библиотеки и сами графические API имеют C-интерфейсы. Все распространённые языки программирования так или иначе могут его использовать (называется FFI, foreign function invocation). Если использовать полновесный движок, то к нему уже прилагается и свой язык (C++ для Unreal, C# для Unity, собственный GDScript для Godot). Если спускаться на уровень ниже, то выбор пошире.
Языки программирования как художественная литература: кому-то нравится, кому-то нет, но в целом между творчеством бездарных писателей и произведениями искусства разница есть. Предыдущее предложение это такой беззастенчивый дисклеймер, что сейчас пойдут категорические суждения в отношении вещей, сложно поддающихся объективной оценке.
Заранее всё же отвечу на один из типовых контр-аргументов к подобным оценкам: говорят, мол, "настоящий программист" (что-то из серии "настоящий мужик", т.е. виртуальная концепция для манипуляций наивными людьми) должен уметь пользоваться любым инструментом, и относиться к нему стоически. Кто подобное утверждает попросту лишён чувства вкуса (в данной предметной области), поэтому слушать их и вовсе не надо. В использовании хорошего языка есть и очевидные прагматические выгоды, на перечислении которых останавливаться не будем.
#programming
Что ж, недавно писал, что обучаться линейной алгебре надо на примере работы с компьютерной графикой.
Пойдём дальше и почти всерьёз обсудим, на чём стоит писать компьютерные игры. Решил для себя сделать краткий обзор полянок, думаю, будет интересен не только мне.
Обычно берут готовый движок, из которых три явно выделяются (перечисление от более хардкорного к более лояльному пользователю): Unreal, Unity, Godot.
На фоне этих трёх мейнстримных вариантов есть плеяда ушедших на второй план и почти забытых AAA-движков (Source, Cryengine, Serious Engine, etc.), которыми пользуются те кто давно в них вложился, и россыпь indie-вариантов. Из последних произвольно выделю Game Maker, использовал его ещё в школьные годы: одна из моих поделок даже случайно попала в какой-то болгарский компьютерный журнал. Примерно ту же нишу, насколько можно понять со стороны, занимают Construct, Cocos Creator и мн. др.
Для тех, кто хочет написать что-то более-менее с нуля или не хочет бороться с типовыми конвенциями движков, остаётся использование "графических библиотек" (ну или "игровых библиотек", т.е. графика + ввод-вывод + звуки) – кода, который поверх вызовов API операционной системы и низкоуровневых библиотек создаёт весьма тонкую абстракцию, чтобы вещи типа инициализации окна или создания камеры делались в одну строку (вместо череды API-вызовов операционной системы и перемножения трёх матриц соответственно).
Библиотек этих десятки на любой вкус и цвет, среди энтузиастов последнее время популярна Raylib. Так и пишут: создана для любителей программировать и желающих на практике разобраться, как работают видеоигры. Чуть более тонкие абстракции дают библиотеки SDL, GLFW и др.
На самом низком уровне находятся графические API. Долгое время их по сути было два: OpenGL (всеплатформенный) и DirectX (Windows + XBox). Консорциум, отвечающий за разработку OpenGL, объявил, что дальше его развивать не будет и все усилия направит на развитие Vulcan. На устройствах Apple свой Metal. В целом на будущее стоит осваивать Vulcan (а на настоящее и в качестве ностальгии – OpenGL).
Все основные вспомогательные библиотеки и сами графические API имеют C-интерфейсы. Все распространённые языки программирования так или иначе могут его использовать (называется FFI, foreign function invocation). Если использовать полновесный движок, то к нему уже прилагается и свой язык (C++ для Unreal, C# для Unity, собственный GDScript для Godot). Если спускаться на уровень ниже, то выбор пошире.
Языки программирования как художественная литература: кому-то нравится, кому-то нет, но в целом между творчеством бездарных писателей и произведениями искусства разница есть. Предыдущее предложение это такой беззастенчивый дисклеймер, что сейчас пойдут категорические суждения в отношении вещей, сложно поддающихся объективной оценке.
Заранее всё же отвечу на один из типовых контр-аргументов к подобным оценкам: говорят, мол, "настоящий программист" (что-то из серии "настоящий мужик", т.е. виртуальная концепция для манипуляций наивными людьми) должен уметь пользоваться любым инструментом, и относиться к нему стоически. Кто подобное утверждает попросту лишён чувства вкуса (в данной предметной области), поэтому слушать их и вовсе не надо. В использовании хорошего языка есть и очевидные прагматические выгоды, на перечислении которых останавливаться не будем.
#programming
Языки программирования для разработки игр (2/3)
Кстати, спрашивали, зачем я посты разбиваю на несколько эпизодов. Потому что Телеграм не пропускает длинный текст, а на какой-нибудь Медиум я кросс-постить не хочу, мне кажется это будет менее удобно для читателей.
Переходим к списку языков.
1. Ruby (Python, etc.). Знакомо, просто, есть удобные библиотеки (Gosu для Ruby, pygame и множество других для Python). Есть библиотеки общего назначения на любой вкус и под любую задачу. Неудобно компилировать всё в один файл, чтобы можно было легко распространять.
2. Go. Хороший язык для 1985-го года. Использует передовую новинку – сборку мусора – в остальном использует хорошо знакомый набор конструкций школьного Pascal. Примерно так, например, можно из массива выбрать все положительные числа и умножить каждое на два, получив новый массив:
3. C. Вечная классика, которая, вероятно, никогда не умрёт. "Лингва франка", который определил, например, конвенцию вызова функций, используемую повсеместно до сих пор (и нет оснований считать, что она будет в обозримой перспективе заменена чем-то радикально новым). Говорить на универсальном языке дело хорошее, вам без проблем доступен весь набор библиотек. Сам язык архаичный: полностью ручное управление памятью, отсутствие удобных функций в стандартной библиотеке и т.д.
4. C++. Крайне широко применяется в геймдеве и позволяет совместить работу и на низком уровне (ну, к примеру перекладывать вручную биты и байты) и на высоком (классы, ООП). Путь его развития был тяжёлым и тернистым, только к концу двухтысячных комитет разработчиков вдруг очнулся и осознал, что на дворе не 1985-й год, а уже 21-й век. Современных подходов и концепций туда с тех времён напихали под завязку и горшочек продолжает варить: в некотором смысле язык-антипод Go. Для иллюстрации подходит известный анекдот с панчлайном "фонарь, фонарь мне на лоб ещё прилепите!".
5. Zig, Odin. В одну кучу, т.к. без содержательной оценки. Стильно, модно, молодёжно, ориентированно в числе прочего на геймдев. Мне кажется, создатели этих языков просто не справляются с взятыми на себя задачами и какие-то базовые вещи делают ошибочно. Впрочем, не боги горшки обжигают, может быть что-нибудь и выйдет интересное из одного из них или обоих через 3-5 лет.
6. Crystal. Ruby-подобный синтаксис и отношение к пользователю ("программирование должно приносить удовольствие"), помноженный на статическую типизацию, компилирование, высокую производительность. Язык достаточно зрелый, но нет полноценной поддержки Windows.
7. Rust. Создатели языка верно поняли проблематику ручного управления памятью (вкратце: люди ошибаются), но вместо того, чтобы подойти к задаче путём разработки особо умного алгоритма, помогающего программисту не совершать ошибки, они выстроили систему костылей, которая заставляет разработчика с помощью нескольких эзотерических приёмов постоянно доказывать по-прежнему тупому компилятору, что он нигде не ошибся.
Перейдём к шорт-листу победителей.
#programming
Кстати, спрашивали, зачем я посты разбиваю на несколько эпизодов. Потому что Телеграм не пропускает длинный текст, а на какой-нибудь Медиум я кросс-постить не хочу, мне кажется это будет менее удобно для читателей.
Переходим к списку языков.
1. Ruby (Python, etc.). Знакомо, просто, есть удобные библиотеки (Gosu для Ruby, pygame и множество других для Python). Есть библиотеки общего назначения на любой вкус и под любую задачу. Неудобно компилировать всё в один файл, чтобы можно было легко распространять.
2. Go. Хороший язык для 1985-го года. Использует передовую новинку – сборку мусора – в остальном использует хорошо знакомый набор конструкций школьного Pascal. Примерно так, например, можно из массива выбрать все положительные числа и умножить каждое на два, получив новый массив:
numbers := []int{-1, 1, 2, -3, 5}Что ж, неплохо было бы для языка сорокалетней давности. В языках двадцатилетней давности уже было что-то такое:
result := make([]int, 0, len(numbers))
for _, x := range numbers {
if x > 0 {
result = append(result, x*2)
}
}
numbers = [-1, 1, 2, -3, 5]Зачем намеренно нужно пользоваться новым языком, который в момент рождения устарел на 2 поколения, я не знаю. Разработан и поддерживается Google, которому, по мнению создателя языка, этот инструмент помогает заставить не обременённых избыточными талантами выпускников вузов писать хоть как-то работающий код.
numbers.filter { |x| x > 0 }.map { |x| x * 2 }
3. C. Вечная классика, которая, вероятно, никогда не умрёт. "Лингва франка", который определил, например, конвенцию вызова функций, используемую повсеместно до сих пор (и нет оснований считать, что она будет в обозримой перспективе заменена чем-то радикально новым). Говорить на универсальном языке дело хорошее, вам без проблем доступен весь набор библиотек. Сам язык архаичный: полностью ручное управление памятью, отсутствие удобных функций в стандартной библиотеке и т.д.
4. C++. Крайне широко применяется в геймдеве и позволяет совместить работу и на низком уровне (ну, к примеру перекладывать вручную биты и байты) и на высоком (классы, ООП). Путь его развития был тяжёлым и тернистым, только к концу двухтысячных комитет разработчиков вдруг очнулся и осознал, что на дворе не 1985-й год, а уже 21-й век. Современных подходов и концепций туда с тех времён напихали под завязку и горшочек продолжает варить: в некотором смысле язык-антипод Go. Для иллюстрации подходит известный анекдот с панчлайном "фонарь, фонарь мне на лоб ещё прилепите!".
5. Zig, Odin. В одну кучу, т.к. без содержательной оценки. Стильно, модно, молодёжно, ориентированно в числе прочего на геймдев. Мне кажется, создатели этих языков просто не справляются с взятыми на себя задачами и какие-то базовые вещи делают ошибочно. Впрочем, не боги горшки обжигают, может быть что-нибудь и выйдет интересное из одного из них или обоих через 3-5 лет.
6. Crystal. Ruby-подобный синтаксис и отношение к пользователю ("программирование должно приносить удовольствие"), помноженный на статическую типизацию, компилирование, высокую производительность. Язык достаточно зрелый, но нет полноценной поддержки Windows.
7. Rust. Создатели языка верно поняли проблематику ручного управления памятью (вкратце: люди ошибаются), но вместо того, чтобы подойти к задаче путём разработки особо умного алгоритма, помогающего программисту не совершать ошибки, они выстроили систему костылей, которая заставляет разработчика с помощью нескольких эзотерических приёмов постоянно доказывать по-прежнему тупому компилятору, что он нигде не ошибся.
Перейдём к шорт-листу победителей.
#programming
Языки программирования для разработки игр (3/3)
Итак, шорт-лист победителей
A. D. Из названия ясно, что люди хотели сделать "как C/С++, только всё чтобы было лучше". У них это получилось. Доступ к низкоуровневым операциям, более-менее беспроблемная интеграция C (и даже C++) кода, в то же время человеческий синтаксис, хорошая стандартная библиотека, автоматическое управление памятью (отключаемое).
B. Nim. На что был бы похож язык, сделанный без оглядки на внешний вид всех предыдущих, но с использованием наработанного человечеством опыта разработки компиляторов? Да вот на Nim. Есть некоторые очевидные сомнительные моменты в синтаксисе, на тему которых идут вечные холивары, но не буду их даже перечислять из-за ничтожной значимости. В целом взято лучшее из всех миров: управление памятью на гибридной модели (подсчёт ссылок + сборка мусора для циклически связанных объектов; обещают вскоре что-то ещё более интересное выкатить), богатый синтаксис (с адекватным метапрограммированием), хорошая стандартная библиотека. Программисты на современных языках быстро освоятся.
Выбор между двумя вариантами сложный и вот какими соображениями определяется.
– С одной стороны, синтаксис D ограниченно совместим с синтаксисом C (некоторые фрагменты кода можно по сути копи-пастить). Дополнительно, режим ImportC позволяет напрямую использовать сишные хедеры (ну, почти напрямую, поковырять немного придётся, но писать полноценные биндинги, как во всех других языках кроме собственно C и C++, не обязательно).
– С другой стороны, Nim в целом более передовой и перспективный. На нём код получается более лаконичный, выразительный и легко поддерживаемый (на D в целом-то тоже норм, но всё же не дотягивает). Идеология "структур с методами, принимающими структуру или указатель на неё" вместо "классов" (хорошее место в Go, кстати) здесь вполне работает, удобней в обращении чем классический ООП D.
– В установке под Windows проще D. Компилятор Nim работает без нареканий, но процесс развёртывания неприятный.
И там, и там довольно развитое сообщество: форумы, чаты, энтузиасты выкладывающие библиотеки на GitHub и всё такое. У меня сложилось (может быть ошибочное, т.к. знакомство было коротким) впечатление, что в D расклад менее перспективный: пожилого создателя языка уже в каком-то неочевидном направлении начинает тянуть, а среди молодёжи повышенная концентрация, как бы сказать, странных людей.
В Nim создателем-руководителем является молодой рациональный мужик, люди вокруг без особенностей, развито русскоязычное коммьюнити (вплоть до того, что пишут плагины для компиляции под Эльбрус).
В целом фактор сообщества малозначимый, но, пожалуй, на фоне общего паритета добавляет гирьку, склоняющую чашу весов в сторону Nim.
А вообще лучше забыть про все подобные списки и писать на том, что нравится – это первейшее и главнейшее соображение.
#programming
Итак, шорт-лист победителей
A. D. Из названия ясно, что люди хотели сделать "как C/С++, только всё чтобы было лучше". У них это получилось. Доступ к низкоуровневым операциям, более-менее беспроблемная интеграция C (и даже C++) кода, в то же время человеческий синтаксис, хорошая стандартная библиотека, автоматическое управление памятью (отключаемое).
B. Nim. На что был бы похож язык, сделанный без оглядки на внешний вид всех предыдущих, но с использованием наработанного человечеством опыта разработки компиляторов? Да вот на Nim. Есть некоторые очевидные сомнительные моменты в синтаксисе, на тему которых идут вечные холивары, но не буду их даже перечислять из-за ничтожной значимости. В целом взято лучшее из всех миров: управление памятью на гибридной модели (подсчёт ссылок + сборка мусора для циклически связанных объектов; обещают вскоре что-то ещё более интересное выкатить), богатый синтаксис (с адекватным метапрограммированием), хорошая стандартная библиотека. Программисты на современных языках быстро освоятся.
Выбор между двумя вариантами сложный и вот какими соображениями определяется.
– С одной стороны, синтаксис D ограниченно совместим с синтаксисом C (некоторые фрагменты кода можно по сути копи-пастить). Дополнительно, режим ImportC позволяет напрямую использовать сишные хедеры (ну, почти напрямую, поковырять немного придётся, но писать полноценные биндинги, как во всех других языках кроме собственно C и C++, не обязательно).
– С другой стороны, Nim в целом более передовой и перспективный. На нём код получается более лаконичный, выразительный и легко поддерживаемый (на D в целом-то тоже норм, но всё же не дотягивает). Идеология "структур с методами, принимающими структуру или указатель на неё" вместо "классов" (хорошее место в Go, кстати) здесь вполне работает, удобней в обращении чем классический ООП D.
– В установке под Windows проще D. Компилятор Nim работает без нареканий, но процесс развёртывания неприятный.
И там, и там довольно развитое сообщество: форумы, чаты, энтузиасты выкладывающие библиотеки на GitHub и всё такое. У меня сложилось (может быть ошибочное, т.к. знакомство было коротким) впечатление, что в D расклад менее перспективный: пожилого создателя языка уже в каком-то неочевидном направлении начинает тянуть, а среди молодёжи повышенная концентрация, как бы сказать, странных людей.
В Nim создателем-руководителем является молодой рациональный мужик, люди вокруг без особенностей, развито русскоязычное коммьюнити (вплоть до того, что пишут плагины для компиляции под Эльбрус).
В целом фактор сообщества малозначимый, но, пожалуй, на фоне общего паритета добавляет гирьку, склоняющую чашу весов в сторону Nim.
А вообще лучше забыть про все подобные списки и писать на том, что нравится – это первейшее и главнейшее соображение.
#programming
Вкратце про биржевые новости
Уже давненько появилась идея написать телеграм бота, который бы сам вёл канал с биржевыми новостями. Прикреплял бы скриншот графика котировки нефти (газа, биткоина, акций Сбербанка, значений vanguard total index, ...) и писал волнующие сообщения.
Вот такого сорта (приводится в прямом хронологическом порядке):
18.03.2017 Цена биткоина опустилась ниже $1000
20.11.2018 Bitcoin упал ниже 4500 долларов и не может подняться
25.06.2019 После резкого падения во вторник, 24 сентября, биткоин закрыл неделю на уровне $8620
26.02.2020 Цена биткоина упала ниже $9000, потянув за собой остальной рынок
20.07.2021 Цена биткоина упала ниже $30 тыс.
12.04.2022 Цена биткоина упала ниже $40 тыс.
Биткоин, кажется, вызывает почему-то у людей наибольшее количество эмоций среди всех стильных-модных-молодёжных активов, поэтому стоит начать с него. Если твиттер камня популярен, то почему бы и нет?
#economics
Уже давненько появилась идея написать телеграм бота, который бы сам вёл канал с биржевыми новостями. Прикреплял бы скриншот графика котировки нефти (газа, биткоина, акций Сбербанка, значений vanguard total index, ...) и писал волнующие сообщения.
Вот такого сорта (приводится в прямом хронологическом порядке):
18.03.2017 Цена биткоина опустилась ниже $1000
20.11.2018 Bitcoin упал ниже 4500 долларов и не может подняться
25.06.2019 После резкого падения во вторник, 24 сентября, биткоин закрыл неделю на уровне $8620
26.02.2020 Цена биткоина упала ниже $9000, потянув за собой остальной рынок
20.07.2021 Цена биткоина упала ниже $30 тыс.
12.04.2022 Цена биткоина упала ниже $40 тыс.
Биткоин, кажется, вызывает почему-то у людей наибольшее количество эмоций среди всех стильных-модных-молодёжных активов, поэтому стоит начать с него. Если твиттер камня популярен, то почему бы и нет?
#economics
Вкратце о...
Накидаю ссылок и несколько тезисов по непрофильным (интересных мне в значительной мере лишь вынужденно) темам.
1. Описание диспозиции власти РФ <-> общество. На мой взгляд вот этот пост у @pravak_online вышел удачно. В целом мне не импонирует стиль автора – несомненно, все материалы смотрелись бы выигрышней без площадного тона. Однако описание общей конструкции и оценочные суждения сделаны, безусловно, верные. Далее вниз от указанного поста можно выборочно почитать-посмотреть на эту же тему.
2. Сделать банковские карты Visa/Mastercard по-прежнему можно в Белоруссии. Вот случайно найденный в интернете гайд. Ситуация особо не меняется, добавлю только несколько частных полезных советов путешественникам. Во-первых, везде записывайтесь заранее. Во-вторых, отсутствие официального карантина ≠ отсутствию риска заражения.
3. Не слушайте государственную пропаганду, соблюдайте когнитивную гигиену. Принимайте к сведению официальную информацию, реальную обстановку по любому вопросу всегда можно узнать в профильных модерируемых телеграмм-каналах.
4. На фоне включенных психоизлучателей, разгоняющих колесо генотьбы по официальным каналам теперь и в РФ (вот, например, рефлексирует её действие автор пророссийского телеграмм-канала), кажущиеся себе особенно сообразительными трудящиеся начинают советовать друг другу ролики кацев-шмацев, ходорковских-навальновских. Если РФ как государство народ воспринимает как ресурс – пусть и далеко не с любовью, но всё же с некоторой долей бережливости – то вот эти вот просто с откровенной ненавистью. Вдвойне странно продолжать или, боже упаси, начинать слушать лично тебе причиняющих вред дезинформаторов, будучи эмигрантом: половину благодарности за пресловутые очереди на границе и прочую суматоху, принёсшую сотням тысяч соотечественников чудовищный материальный и моральный вред, по праву стоит испытывать к этим лицам. Думаю, своего битья палками они дождутся быстрее, чем кажется: не только соловьёвым отдуваться горящими виллами за всех, компашка общая.
5. Уже кидал выше ссылку на наиболее рациональный текущий обзор событий: серию "Информационный бюллетень" Д.Е. Галковского.
6. Не стал бы писать данный пункт, но в нашу редакцию реально поступают такие вопросы. Итак: в военкомат ходить не надо, если не расписались в повестке. Если расписались, делайте рациональный выбор, получите при необходимости консультацию юриста. Немного про то, как работает гос. машина, на примере сбора картошки ярко описано здесь.
Будьте здоровы!
#politics
Накидаю ссылок и несколько тезисов по непрофильным (интересных мне в значительной мере лишь вынужденно) темам.
1. Описание диспозиции власти РФ <-> общество. На мой взгляд вот этот пост у @pravak_online вышел удачно. В целом мне не импонирует стиль автора – несомненно, все материалы смотрелись бы выигрышней без площадного тона. Однако описание общей конструкции и оценочные суждения сделаны, безусловно, верные. Далее вниз от указанного поста можно выборочно почитать-посмотреть на эту же тему.
2. Сделать банковские карты Visa/Mastercard по-прежнему можно в Белоруссии. Вот случайно найденный в интернете гайд. Ситуация особо не меняется, добавлю только несколько частных полезных советов путешественникам. Во-первых, везде записывайтесь заранее. Во-вторых, отсутствие официального карантина ≠ отсутствию риска заражения.
3. Не слушайте государственную пропаганду, соблюдайте когнитивную гигиену. Принимайте к сведению официальную информацию, реальную обстановку по любому вопросу всегда можно узнать в профильных модерируемых телеграмм-каналах.
4. На фоне включенных психоизлучателей, разгоняющих колесо генотьбы по официальным каналам теперь и в РФ (вот, например, рефлексирует её действие автор пророссийского телеграмм-канала), кажущиеся себе особенно сообразительными трудящиеся начинают советовать друг другу ролики кацев-шмацев, ходорковских-навальновских. Если РФ как государство народ воспринимает как ресурс – пусть и далеко не с любовью, но всё же с некоторой долей бережливости – то вот эти вот просто с откровенной ненавистью. Вдвойне странно продолжать или, боже упаси, начинать слушать лично тебе причиняющих вред дезинформаторов, будучи эмигрантом: половину благодарности за пресловутые очереди на границе и прочую суматоху, принёсшую сотням тысяч соотечественников чудовищный материальный и моральный вред, по праву стоит испытывать к этим лицам. Думаю, своего битья палками они дождутся быстрее, чем кажется: не только соловьёвым отдуваться горящими виллами за всех, компашка общая.
5. Уже кидал выше ссылку на наиболее рациональный текущий обзор событий: серию "Информационный бюллетень" Д.Е. Галковского.
6. Не стал бы писать данный пункт, но в нашу редакцию реально поступают такие вопросы. Итак: в военкомат ходить не надо, если не расписались в повестке. Если расписались, делайте рациональный выбор, получите при необходимости консультацию юриста. Немного про то, как работает гос. машина, на примере сбора картошки ярко описано здесь.
Будьте здоровы!
#politics
Вкратце про платформы для блоггинга (и "разложение правды")
Можно указать целый ряд соображений самого разного плана в чём проявляется тот факт что самые мейнстримные площадки блоггинга (т.е. Facebook и Twitter) это информационные помойки, и как они целенаправленно поддерживаются в этом состоянии перманентного "разложения правды" (термин западных мыслящих цистерн).
Приведу лишь одно простое техническое наблюдение: любая площадка, которая испортила простой хронологический полнотекстовый поиск с ограничением выборки по источникам (юзерам, журналам и т.п.), неизбежно и сравнительно быстро такой сорт разложения претерпевает.
Вот, скажем, на YouTube и в Google всё ещё можно как-то получить упорядоченную по времени выборку конкретных источников, хоть и надо постараться. А ни в Facebook, ни в Twitter это сделать невозможно. Телеграм испорчен лишь на половину: в настольном клиенте поиск норм, в мобильном сломан.
Умники из цистерн не одну сотню тысяч баксов распилили, рассуждая на тему увядания правды ("decay of truth"). Посвящаю эту идею их биению головой об рельсу: правда не в особых "правдивых источниках", а в хорошо организованных базах данных.
Минимально приемлемый уровень организации, препятствующий увяданию: полнотекстовый поиск + хронологическая выборка + фильтр по авторам/источникам.
#philosophy
Можно указать целый ряд соображений самого разного плана в чём проявляется тот факт что самые мейнстримные площадки блоггинга (т.е. Facebook и Twitter) это информационные помойки, и как они целенаправленно поддерживаются в этом состоянии перманентного "разложения правды" (термин западных мыслящих цистерн).
Приведу лишь одно простое техническое наблюдение: любая площадка, которая испортила простой хронологический полнотекстовый поиск с ограничением выборки по источникам (юзерам, журналам и т.п.), неизбежно и сравнительно быстро такой сорт разложения претерпевает.
Вот, скажем, на YouTube и в Google всё ещё можно как-то получить упорядоченную по времени выборку конкретных источников, хоть и надо постараться. А ни в Facebook, ни в Twitter это сделать невозможно. Телеграм испорчен лишь на половину: в настольном клиенте поиск норм, в мобильном сломан.
Умники из цистерн не одну сотню тысяч баксов распилили, рассуждая на тему увядания правды ("decay of truth"). Посвящаю эту идею их биению головой об рельсу: правда не в особых "правдивых источниках", а в хорошо организованных базах данных.
Минимально приемлемый уровень организации, препятствующий увяданию: полнотекстовый поиск + хронологическая выборка + фильтр по авторам/источникам.
#philosophy