Обновить
1
-0.1

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

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

ВАЖНО: описанное ниже совершенно ЛЕГАЛЬНО В РОССИИ

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

Как вы наверно знаете, ксенон — это благородный/инертный газ, который в силу полноты электронной оболочки своего атома не вступает ни в одну химическую реакцию. (в 60-x годах были найдены какие-то супер экстремальные условия температуры и давления при которых он таки с чем-то связывается, но это далеко за пределами нормальных повседневных условий). В связи с этим он не меняет ни одной молекулы в вашем теле, не вклинивается в метаболизм, не токсичен, никак не может навредить вашей печени, почкам или чему-либо ещё. В силу относительного большого размера и "пластичности" своей электронной оболочки — он может слегка понижать проводимость каналов NMDA-рецепторов, но не "блокирует" как молекула-антагонист, а меняет энергетический ландшафт состояний рецептора. Ксенон не образует ни ковалентных или ионных связей, ни осуществляет перенос электронов — он выходит из мозга в неизменённом виде не оставляя следов (не меняет и в самом мозгу тоже ничего).

Теперь о минусах применения: если коротко, то к сожалению с ксеноном всё сложно.

1) он очень быстро выводится обратно с дыханием. То есть это не просто вдохнул пару раз и ловишь приход, нет, им надо лежать и дышать постоянно.

2) дышать чистым ксеноном - просто уйдешь в полный отруб после двух вдохов. Нужна смесь с кислородом в определенной пропорции.

3) ксенон очень дорогой. Просто делать вдох из баллона и выдыхать в атмосферу – это блин дороже золота.

Поэтому реально единственный вариант, это найти клинику "ксенона терапии", где под присмотром врача который следит за концентрациями обоих газов в смеси, через специальный аппарат смеси и очистки от со2 и плотную маску ты лежишь и дышишь. Благо такие клиники в России легальны. В Москве их довольно много. Сорян не знаю про другие города. Стоит процедура на 40 минут в районе 20-25 тысяч рублей. Да, дорого. Но абсолютно безопасно, совершенно без побочек и нагрузки на почки/печень и что либо ещё, можно хоть каждый день по пять часов лежать – негативных последствий не будет. Ну и приход тоже соответствует – как оргазмический лёгкий пик от чистейшего роскомнадзор. Абсолютная чистота, невесомость, ясность сознания и тонкое но при этом абсолютно нестерпимое блаженство. Диссоциация происходит не холодно, насильно и жёстко как под другими веществами, против твоей воли, часто сопровождаясь паникой — а через тотальное погружение и растворение в блаженстве — ты сам не в силах более сдерживаться просто ныряешь ТУДА. Примерно как знаете, сильно влюблён в девушку на всех уровнях от простой похоти, до чистой любви и эстетического восхищения — и вот наконец тебе дают доступ "к телу" и ты просто ныряешь туда и исчезаешь. Только под ксеноном — это ещё на пару октав сильнее, тоньше и глубже. И кстати с девушкой ещё и побочек потом столько насоберёшь физических, ментальных, эмоциональных и финансовых — что ну его нафиг, лучше 20к заплатить, оно и дешевле будет ))

Если кто-то захочет попробовать, позволю себе дать некоторые рекомендации:

1) делайте на тощак

2) хоть эффект пропадает мгновенно после нескольких вдохов обычным воздухом — всё-таки не планируйте какой-то активности на после сеанса. Вам захочется просто побыть в спокойной обстановке насладиться послевкусием.

3) побрейтесь перед сеансом. На вас наденут довольно плотную маску, и она может фонить через бороду/щетину. В принципе это не страшно, просто обычно ценник пропорционален потраченному ксенону, и дышать с бородой просто сильно дороже.

4) потратье время на подбор маски (вам дадут выбрать перед сеансом) чтобы не сильно давила и не пропускала воздух.

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

Теги:
0
Комментарии17

В продолжение темы серверного HTML рендеринга на Kotlin.

Если вы не читали статью, кратко напомню о чём речь: я написал небольшой можно сказать фреймворк для генерации HTML на стороне сервера на Kotlin. И поддержку строготипизированных routes для удобного создания ендпоинтов, ссылок на них и форм. Теперь Spring Views можно создавать на Kotlin и по крайней мере в моих проектах (а один из них очень большой - сотни отдельных страниц и десятки виджетов) это дало мне огромное удобство, уверенность, безопасность, рефакторо-пригодность, простое версионирование и переиспользование кода, например, теперь я точно не сделаю опечатку в URI или имени параметра и не смогу передать неверный тип данных на endpoint.

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

DIV("css-class-name") {...}
// или
DIV {
  style("color: red;")
  +"Hello World"
}

В принципе жить можно, но хотелось чего-нибудь:

  • что-то на подобии Styled-Components из ReactJS, но так же на Kotlin

  • по возможности поддержку JVM hot-reload в режиме отладки

  • как следствие кода на Kotlin - иметь возможность всегда отслеживать зависимости и удалять более неиспользующиеся CSS-правила.

Долго думал как это получше сделать, и пока что первая версия получила вот такой синтаксис:

@Component // Spring @Component
object MyCssClass : CssClass({
  style = "color: black;"
  hover = """
    color: red;
    text-decoration: underline;
  """
})

...

A(MyCssClass) {
  href(SomeUsefulRoute(param = 1))
  +"Click me"
}

То есть объявляем object который будет нести информацию о CSS свойствах элемента. И далее просто используем его в тех же местах где раньше можно было указать css-class-name. CssClass поддерживает массу "псевдоклассов" типа hover, active, firstOfType, before, after и так далее, так же можно добавлять media брейкпоинты и всякие другие штуки. Вот более насыщенный пример:

@Component
object Container : CssClass({
    style = "padding: 25px;"
    hover = "background: #eee;"

    add(">a", "color: green;")
    add(">a:hover", "text-decoration: underline;")

    media("max-width: 991px") {
        style = "padding: 10px;"
    }
})

Вы наверняка заметили двойные скобочки ({...}) - в конструктор я передаю функцию-инициализатор стилей. Это нужно для того, чтобы в дебаг режиме JVM можно было на лету менять свойства CSS класса без перезапуска приложения: код который генерирует сам css-файл может быть запущен в режиме dev-mode, когда на каждый запрос файла будут выполнены все функции-инициализаторы ещё раз и файл будет собран заново.

Если по какой-то причине вам не нравится object - можно просто объявить class и использовать его:

@Component
class Container : CssClass({...})
...
DIV(Container::class) { ... }

Теперь в проекте порядок с CSS стилями - нет давно умерших, всегда можно найти точки использования, стили лежат рядом с виджетами и т.п.

Смотрите исходники тут. Фидбэк приветствуется, всем хорошего дня.

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии4

Довелось мне в последнее время поглядеть на "современные" проекты на Kotlin, и я признаюсь был поражен повсеместным использованием корутин в коде. Используют их просто везде: для обработки входящих соединений, для запросов в базы данных, для вызова внешних API, для операций с файлами на сетевых файловых системах. Знаете, в языке есть слова-паразиты — так вот кажется мне что в Kotlin корутины — это паттерн-паразит. Кажется корутины — это как магические заклинания, которые волшебным образом запустят код "где-то там, в локальном облаке".

Каждый раз когда я сталкиваюсь с туториалами про корутины — самым первым примером идёт конечно sleep на 10 тысяч "потоков". Притом как вы понимаете, вызывать нужно специально подготовленный для этого sleep, а не настоящий Thread.sleep — потому что с ним никакой магии не получится. Это создаёт обманчивое впечатление будто бы любая блокирующая операция автоматически волшебным образом превращается в асинхронную, за бесплатно увеличивая пропускную способность приложения. Хотелось бы напомнить любителям корутин что это не так.

Никто за вас не перепишет обычное чтение из сокета/файлового дескриптора на асинхронные ввод-вывод с проверкой наличия байт для чтения во входящем потоке через Selector::select — чудес не бывает. И как бы вы не увеличивали kotlinx.coroutines.io.parallelism рано или поздно при безудержном использовании корутин пул потоков забьётся чем-нибудь медленным и ваше приложение просто встанет раком.

Для примера попросите чатжпт написать вам простейший echo socket server на корутинах. Ну и клиента, который попробует работать с этим сервером в 100 обычных потоков (не так уж и много для нормального продакшн бэкенда). Надеюсь для вас не будет сюрпризом то, что сервер будет обрабатывать только 64 первых счастливых клиентов, а к остальным доберётся только когда эти первые клиенты закроют соединения.

Теги:
Рейтинг0
Комментарии2

Информация

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