Кое-кто испортил интернет! (x)

Все мы знаем что email@example.com — это имейл. Но что значит имейл? А значит оно что на сервере который находится по адресу example.com есть аккаунт с именем email. Ещё мы знаем что это имейл поэтому мы знаем на какой порт обращаться и какой протокол использовать (уточним детали в dns).

Точно так же каждый *nix аккаунт можно записать как user1@computer1 что значит что на computer1 есть аккаунт user1.

Символ @ буквально называется at:

  • user1-at-computer1
  • email-at-example.com

Удобно. Униформатично.

И тут приходит глупый твиттер и решает что теперь все будут @user2 и сломал интернет. ТВИТТЕР ДОЛЖЕН БЫЛ ИСПОЛЬЗОВАТЬ user2@!!!111

Всё потеряно. Дальше только хуже.

#deep #blasphemy

english version

2025.11.28 17:53

Google OS Aluminum

Google развивает ОС Aluminium для ноутбуков и планшетов

А будет форк OS Aluminum?

#deep

english version

2025.11.25 13:00

meme.jpg & ai

вы конечно не ожидайте что я буду часто писать и дальше, конечно же не буду.

Теперь вместо meme.jpg надо ai_picture.jpg

#deep

2025.11.12 22:59

Трифолд

Появился складной телефон с тройным коэффициентом экрана — трифолд.

Значит ли это что остальные телефоны стали бифолдами и монофолдами?

Или новый трифолд на самом деле бифолд, а фолды — монофолды?

#deep #why

2025.10.29 14:50

Мёд или кленовый сироп

А что вам больше нравится: мёд или кленовый сироп?

Напишите в комментариях, интересно посмотреть какая у меня аудитория!

#deep #why #poll

2025.10.21 19:36

Дважды полураспад

Дважды полураспад это четверть-распад или три-четверти-распад?

#deep #why

2025.10.14 15:57

cli params и Racket lang

Очень нужно сильно захотелось написать простой маленький консольный бинарничичек. Конечно же не на пхп ведь мы же не монстры, правда?

Немедленно открываем документацию к racket чтобы узнать как это делать:

(command-line optional-name-expr optional-argv-expr
              flag-clause ...
              finish-clause)

optional-name-expr =
                   | #:program name-expr

optional-argv-expr =
                   | #:argv argv-expr

       flag-clause = #:multi flag-spec ...
                   | #:once-each flag-spec ...
                   | #:once-any flag-spec ...
                   | #:final flag-spec ...
                   | #:usage-help string ...
                   | #:help-labels string ...
                   | #:ps string ...

         flag-spec = (flags id ... help-spec body ...+)
                   | (flags => handler-expr help-expr)

             flags = flag-string
                   | (flag-string ...+)

         help-spec = string
                   | (string-expr ...+)

     finish-clause =
                   | #:args arg-formals body ...+
                   | #:handlers handlers-exprs

       arg-formals = rest-id
                   | (arg ...)
                   | (arg ...+ . rest-id)

               arg = id
                   | [id default-expr]

    handlers-exprs = finish-expr arg-strings-expr
                   | finish-expr arg-strings-expr help-expr
                   | finish-expr arg-strings-expr help-expr
                     unknown-expr

Пожалукйста, потратьте минутку и насладитесь этим шедевром форматирования.

Спасибо, больше не надо этого делать. Если вы не поняли как это работает, то вот вам настоящий пример от человека который понял:

(define parser
  (command-line
   #:usage-help
   "Here you can write a general description of your program"
   "You can have multiple strings to make multiple lines"

   #:once-each
   [("-m" "--my-parameter") MY-PARAMETER-NAME
    "write a short description of what setting MY-PARAMETER-NAME does"
    (my-parameter (string->number MY-PARAMETER-NAME))]
   [("-a" "--another-parameter") ANOTHER-PARAM
    "a little description of ANOTHER-PARAM"
    (another-parameter (string=? "true" ANOTHER-PARAM))]
   [("-s" "--string") A-STRING
    "what is A-STRING?"
    (a-string A-STRING)]

   #:args () (void)))

Очень мне нравится как в они в этом racket’е любят использовать магические строки типа #:once-each которые непонятно что делают и никак не автодополняются официальной IDE.

Очень, очень захватывающе. Пожалуй, на этом с racket я закончу.

#racket #why #wtf #theway #deep

english version

2025.01.26 14:54