Qua

Reader

A list of all postings of all blogs on Qua where the author has configured the blog to publish on this page.

from veer66

I was impressed by pkgsrc because it is a powerful package management system that defines packages using a common tool like a Makefile. I later discovered that the PKGBUILD file is even more impressive, as its purpose is immediately clear. I initially attributed this to my greater familiarity with Bash scripting compared to Makefiles, but I now believe the true reason is PKGBUILD's level of abstraction.

It retains explicit calls to configure and make, preserving the transparency of a manual installation. This demonstrates that while increased abstraction can make code shorter, it can also hinder understanding.

Another potential advantage of greater abstraction is the ability to change the configure command for every package by modifying just one location. However, since GNU Autotools has continued to use the configure command for decades, it may not be worth sacrificing clarity for this particular benefit.

 
Read more...

from veer66

(Posted at dev.to on 2025-09-02)

Expanding Emacs functionality is as simple as defining a new function instead of creating an entire extension package, as is often done in many other extensible editors. This function can then be re-evaluated, tested, and modified entirely within Emacs using just a few clicks or keyboard shortcuts, with no need to restart or reload Emacs.

 
Read more...

from veer66

(Posted at dev.to on 2025-08-17)

An actively-maintained-implementation, long-term-stable-specification programming language

There are many programming languages that don't change much, including Common Lisp, but Common Lisp implementations continue to be developed. For example, SBCL (Steel Bank Common Lisp) released its latest version just last month.

Common Lisp can be extended through libraries. For example, cl-interpol enables Perl-style strings to Common Lisp without requiring a new version of Common Lisp. cl-arrows allows Common Lisp to create pipelines using Clojure-style syntax without needing to update the Common Lisp specification. This exceptional extensibility stems from macro and particularly reader macro support in Common Lisp.

Feature-packed

Common Lisp includes many features found in modern programming languages, such as:

  • Garbage collection
  • Built-in data structures (e.g., vectors, hash tables)
  • Type hints
  • Class definitions
  • A syntactic structure similar to list comprehensions

Multi-paradigm

While Lisp is commonly associated with functional programming, Common Lisp doesn't enforce this paradigm. It fully supports imperative programming (like Pascal), and its object-oriented programming system even includes advanced features. Best of all, you can freely mix all these styles. Common Lisp even embraces goto-like code via TAGBODY-GO.

Performance

Common Lisp has many implementations, and some of them, such as SBCL, are compilers that can generate efficient code.

With some (of course, not all) implementations, many programs written in dynamic programming languages run slower than those in static ones, such as C and Modula-2.

First, an example of the generated assembly will be shown, along with more explanation about why it might be slowed down by some dynamic implementations

The code listing below is a part of a program written in Modula-2, which must be easy to read by programmers of languages in the extended ALGOL family.

    TYPE
      Book = RECORD
        title: ARRAY[1..64] OF CHAR;
        price: REAL;
      END;

    PROCEDURE SumPrice(a, b: Book): REAL;
    BEGIN
      RETURN a.price + b.price;
    END SumPrice;

The code is mainly for summing the price of books, and only the part 'a.price + b.price' will be focused on.

'a.price + b.price' is translated into X86-64 assembly code list below using the GNU Modula-2 compiler.

    movsd   80(%rbp), %xmm1
    movsd   152(%rbp), %xmm0
    addsd   %xmm1, %xmm0

“movsd 80(%rbp), %xmm1' and 'movsd 152(%rbp), %xmm0' are for loading 'prices' to registers '%xmm1' and '%xmm0', respectively. Finally, 'addsd %xmm1, %xmm0' is for adding prices together. As can be seen, the prices are loaded from exact locations relative to the value of the '%rbp' register, which is one of the most efficient ways to load data from memory. The instruction 'addsd' is used because prices in this program are REAL (floating point numbers), and '%xmm0', '%xmm1', and 'movsd' are used for the same reason. This generated code should be reasonably efficient. However, the compiler needs to know the type and location of the prices beforehand to choose the proper instructions and registers to use.

In dynamic languages, 'SumPrice' can be applied to a price whose type is an INTEGER instead of a REAL, or it can even be a string/text. A straightforward implementation would check the type of 'a' and 'b' at runtime, which makes the program much less efficient. The checking and especially branching can cost more time than adding the numbers themselves. Moreover, obtaining the value of the price attribute from 'a' and 'b' might be done by accessing a hash table instead of directly loading the value from memory. Of course, while a hash-table has many advantages, it's less efficient because it requires many steps, including comparing the attribute name and generating a hash value.

However, compilers for dynamic languages can be much more advanced than what's mentioned above, and SBCL is one such advanced compiler. SBCL can infer types from the code, especially from literals. Moreover, with information from type hints and 'struct' usage, SBCL can generate code that's comparably as efficient as static language compilers.

Given, the Common Lisp code listing below:

    (defstruct book
      title
      (price 0 :type double-float))

    (declaim (ftype (function (book book) double-float) add-price)
         (optimize (speed 3) (debug 0) (safety 0)))
    (defun add-price (a b)
      (+ (book-price a)
         (book-price b)))

SBCL can generate assembly code for '(+ (book-price a) (book-price b))' as shown below:

    ; 86:       F20F104A0D       MOVSD XMM1, [RDX+13]
    ; 8B:       F20F10570D       MOVSD XMM2, [RDI+13]
    ; 90:       F20F58D1         ADDSD XMM2, XMM1

The assembly code format is slightly different from the one generated by the GNU Modula-2 compiler, but the main parts, the 'MOVSD' and 'ADDSD' instructions and the use of XMM registers—are exactly the same. This shows that we can write efficient code in Common Lisp at least for this case. This shows that we can write efficient code in Common Lisp, at least in this case, that is as efficient as, or nearly as efficient as, a static language.

This implies that Common Lisp is good both for high-level rapid development and optimized code, which has two advantages: (1) in many cases, there is no need to switch between two languages, i.e., a high-level one and a fast one; (2) the code can be started from high-level and optimized in the same code after a profiler finds critical parts. This paradigm can prevent premature optimization.

Interactive programming

Interactive programming may not sound familiar. However, it is a common technique that has been used for decades. For example, a database engine such as PostgreSQL doesn't need to be stopped and restarted just to run a new SQL statement. Similarly, it is akin to a spreadsheet like Lotus 1-2-3 or Microsoft Excel, which can run a new formula without needing to reload existing sheets or restart the program.

Common Lisp is exceptionally well-suited for interactive programming because of (1) integrated editors with a REPL (Read Eval Print Loop), (2) the language's syntax, and (3) the active community that has developed libraries specifically designed to support interactive programming.

Integrated editors with a REPL

With an integrated with a REPL, any part of the code can be evaluated immediately without copying and pasting from an editor into a REPL. This workflow provides feedback even faster than hot reloading because the code can be evaluated and its results seen instantaneously, even before it is saved. There are many supported editors, such as Visual Studio Code, Emacs, Neovim, and others.

the language's syntax

Instead of marking region arbitrarily for evaluating, which is not very convenient when it is done every few seconds, in Common Lisp, we can mark a form (which is similar to a block in ALGOL) by moving a cursor to one of the parentheses in the code, which is very easy with structural editing, which will be discussed in the next section.

Moreover, even a method definition can be evaluated immediately without resetting the state of the object in Common Lisp. Since method definitions are not nested in defclass, this allows mixing interactive programming and object-oriented programming (OOP) smoothly.

Here's the corrected code listing:

    (defclass toto ()
      ((i :initarg :i :accesor i)))

    (defmethod update-i ((obj toto))
      (setf (i obj) (+ i obj) 1))

According to the code listing above, the method 'update-i' can be redefined without interfering with the pre-existing value of 'i'.

Structural editing

Instead of editing Lisp code like normal text, tree-based operations can be used instead, such as paredit-join-sexps and paredit-forward-slurp-sexp. Moving cursor operations, such as paredit-forward, which moves the cursor to the end of the form (a block). These structural moving operations are also useful for selecting regions to be evaluated in a REPL.

Conclusion

In brief, Common Lisp has unparalleled combined advantages, which are relevant to software development especially now, not just an archaic technology that just came earlier. For example, Forth has a long-term-stable specification, and works well with interactive programming, but it is not designed for defining classes and adding type hints. Julia has similar performance optimization and OOP is even richer, but it doesn't have a long-term-stable specification. Moreover, Common Lisp's community is still active, as libraries, apps, and even implementations continue to receive updates.

 
Read more...

from veer66

(Published on dev.to on 2025-07-19)

No one actually cares about my programming environment journey, but I’ve often been asked to share it, perhaps for the sake of social media algorithms. I post it here, so later, I can copy and paste this conveniently.

My first computer, in the sense that I, not someone else, made the decision to buy it, ran Debian in 2002. It was a used Compaq desktop with a Pentium II processor, which I bought from Zeer Rangsit, a used computer market that may be the most famous in Thailand these days. When I got it home, I installed Debian right away. Before I bought my computer, I had used MBasic, mainly MS-DOS, Windows 3.1 (though rarely), and Solaris (remotely). For experimentation, I used Xenix, AIX, and one on DEC PDP-11 that I forgot.

Since I started with MBasic, that was my first programming environment. I learned Logo at a summer camp, so that became my second. Later, my father bought me a copy of Turbo Basic, and at school, I switched to Turbo Pascal.

After moving to GNU/Linux, I used more editors instead IDEs. From 1995 to 2010, my editors were pico, nvi, vim, TextMate, and Emacs paired with GCC (mostly C, not C++), PHP, Perl, Ruby, Python, JavaScript, and SQL. I also used VisualAge to learn Java in the 90s. I tried Haskell, OCaml, Objective C, Lua, Julia, and Scala too, but it was strictly for learning only.

After 2010, I used IntelliJ IDEA and Eclipse for Java and Kotlin. For Rust (instead of C), I used Emacs and Visual Studio Code. I explored Racket for learning purposes, then later started coding seriously in Clojure and Common Lisp. I tried using Vim 9.x and Neovim too, they were great, but not quite my cup of tea.

In 2025, a few days ago, I learned Smalltalk with Pharo to deepen my understanding of OOP and exploratory programming.

Update 2025/07/20: I forgot to mention xBase. In the '90s, I used it in a programming competition, but none of my programs in xBase reach production.

 
Read more...

from veer66

(Published on dev.to on 2025-03-23)

I've been told to avoid linked lists because their elements are scattered everywhere, which can be true in some cases. However, I wonder what happens in loops, which I use frequently. I tried to inspect memory addresses of list elements of these two programs run on SBCL.

CL-USER> (setq *a-list* (let ((a nil)) (push 10 a) (push 20 a) (push 30 a) a))
(30 20 10)
CL-USER> (sb-kernel:get-lisp-obj-address *a-list*)
69517814583 (37 bits, #x102F95AB37)
CL-USER> (sb-kernel:get-lisp-obj-address (cdr *a-list*))
69517814567 (37 bits, #x102F95AB27)
CL-USER> (sb-kernel:get-lisp-obj-address (cddr *a-list*))
69517814551 (37 bits, #x102F95AB17)
CL-USER> (sb-kernel:get-lisp-obj-address (cddr *a-list*))
69517814551 (37 bits, #x102F95AB17)
CL-USER> (setq *a-list* (let ((a nil))
			  (push 10 a)
			  (push 20 a)
			  (push 30 a) 
			  a))
(30 20 10)
CL-USER> (sb-kernel:get-lisp-obj-address *a-list*)
69518319943 (37 bits, #x102F9D6147)
CL-USER> (sb-kernel:get-lisp-obj-address (cdr *a-list*))
69518319927 (37 bits, #x102F9D6137)
CL-USER> (sb-kernel:get-lisp-obj-address (cddr *a-list*))
69518319911 (37 bits, #x102F9D6127)

In both programs, the list elements are not scattered. So, if scattered list elements were an issue for these simple cases, you probably used the wrong compiler or memory allocator.

 
Read more...

from mattesilver

I'm developing a small package for writing typed Web API clients, similar to Uplink, only compatible with OpenAPI (lapidary). I use these clients mostly in Web servers, so I decided to make it async. So far I've settled on HTTPX, but I want to keep tabs on available python packages.

urllib.request

See also The Requests package is recommended for a higher-level HTTP client interface.

It accepts request headers only as a dict, and I've decided that it doesn't count as support for HTTP

❌ HTTP/1.1 ❌ HTTP/2 ❌ HTTP/3 ❌ asyncio

urllib3

Fast and robust, slowly acquiring HTTP/2 support, but only sync.

✅ HTTP/1.1 ❌ HTTP/2 ❌ HTTP/3 ❌ asyncio

requests

This the one every python example tells you to use. It's under a feature freeze since forever – HTTP moves on but requests is as perfect as possible. It also “broke the internet” when it moved to urllib3 2.0.0, which dropped support for older TLS algorithms, in a minor version release. As long as the API doesn't change in an incompatible way, right?

✅ HTTP/1.1 ❌ HTTP/2 ❌ HTTP/3 ❌ asyncio

pycURL

It's super fast, since it's super thin wrapper over libcURL.

Also a great showcase of how not to write python wrappers. Might as well use ctypes.

✅ HTTP/1.1 ✅ HTTP/2 ✅ HTTP/3 (I think it's supported, libcURL says it's experimental) ❌ asyncio but non-blocking, since it's a native code.

HTTPX

The most popular async HTTP client package for python. Supports HTTP/2 but claims it's “not as robust” as 1.1. Both sync and async.

API is mostly compatible with requests (it's not a feature). Depending on usage pattern, it's slightly slower or much slower than aiohttp.

✅ HTTP/1.1 ✅ HTTP/2 (discouraged, opt-in) ❌ HTTP/3 ✅ sync & async

aiohttp

API is close to the protocol, so a bit more complex than alternatives, but I like it. One of the fastest packages in python.

The community seems more focused on the server side (more features and plugins).

✅ HTTP/1.1 ❌ HTTP/2 ❌ HTTP/3 ✅ asyncio-only

Aiosonic

Looks and feels like HTTPX.

Depending on usage pattern, it's either a bit slower or a bit faster than aiohttp. Probably there's something wrong with it, because nobody seems to be using it. Definitely worth a closer look.

✅ HTTP/1.1 ✅ HTTP/2 – beta ❌ HTTP/3 ✅ sync & asyncio

Aioquic

Really low level HTTP/3 & QUIC package. Only for genuine H3 users. Could use better examples – example client has 600+ lines. Or maybe it's that hard to use...

❌ HTTP/1.1 ❌ HTTP/2 ✅ HTTP/3 ✅ asyncio-only

Niquests

Async fork of requests with HTTP/2 and 3. Fast, full featured but not user-friendly.

It uses a forked urllib3 (by the same author) that shadows it, so if you happen to have a transitive dependency on the original, it will mess up your environment. The author is fine with it. I recommend against using it.

✅ HTTP/1.1 ✅ HTTP/2 ✅ HTTP/3 ✅ sync & asyncio

Reqwest wrappers

This makes a lot of sense – Rust is a popular language, reqwest is a popular rust package, keep it DRY. None of the wrappers are widely popular, but some projects are live and definitely worth watching. – gufo-http – I think it's the oldest and still maintained – pyreqwesthttpr

Found a few more, just search reqwest in pypi.

✅ HTTP/1.1 ✅ HTTP/2 ❌ HTTP/3 – maybe, it's still experimental in reqwest ✅ sync and asyncio

Conclusion

Honestly, the clients for the protocol that makes the Web makes me wonder is Python still alive? There isn't a single popular and stable package with HTTP/2 (2015!) or HTTP/3 (2022) either sync or async. Is Python only for Django and LLM? Have everyone else switch to Rust and/or Deno?

 
Read more...

from mattesilver

Based on the Litestar Fullstack Inertia showcase project.

Prerequisites

For social authorization to work, you first need to register your application with the identity provider (e.g., GitHub).

Implementation

Frontend

You need a login or registration page with a button/link that sends the browser to a backend route which starts the OAuth2 flow. For social login, it doesn’t matter whether you call it “login” or “registration”, as the first login typically creates the user.

Implementation details: – In the showcase project it’s implemented in partials: – Login formRegistration form – Both partials use the same button, which handles clicks with router.post(route("github.register")). – route() is an Inertia.js helper function which simply resolves handler names to paths. – A plain link and HTTP GET would also work here, since no data is sent at this stage.

Login/Register handler (backend)

Create a route that redirects to the provider’s authorization URL and includes a callback pointing to your completion handler. For production you should generate OAuth2 state and PKCE code verifier, and store them in the session.

Implementation details: – See the authorization controller – You can use httpx_oauth to get auth-related URLs for popular OAuth2 providers.

Authorization callback handler (backend)

Your callback (named “github.complete” in the showcase) should:

  1. Validate the store OAuth2 state (required for security; missing in the showcase)
  2. Exchange the authorization code for an access token
  3. Create a user object in the local database and store the user Id in the session
  4. Redirect to a post-login page (e.g., dashboard)

Optionally: – Fetch user details (e.g., email) from the provider
– Provide user data to the frontend

Implementation details: – The showcase doesn't use OAuth2 state or PKCE – GitHubOAuth2.get_access_token is used to exchange the auth code for a token (wrapped as a Litestar dependency, to facilitate re-use) – GitHubOAuth2.get_id_email is used to retrieve users email – Inertia’s share() is used to pass user details to the frontend

© 2025 Matte Silver

 
Read more...

from Rolistologie

Dans le marasme des magouilles des macronistes et de leurs pièges tendus aux idiots utiles, réfugions-nous dans le monde imaginaire d’#INSMV (version #INSMVadlib), avec :

L’influence des Archanges et Princes Démons sur les principaux groupes de l’Assemblée Nationale française en 2025.

En première ligne et en gras, une influence plutôt active, en deuxième ligne une implication de type soutien. Je n’ai pas précisé le niveau d’investissement, ni les raisons, afin de maintenir les secrets vis à vis des joueurs, mais si des MJs veulent en discuter, c’est ouvert. Évidemment, certains acteurs sont impliqués dans plusieurs groupes politiques, mais pour des raisons de simplification et de clarté, je ne les ai positionnés que sur le groupe principal.

PCF : Haagenti, Kobal 

LFI : Alain, DajjâlGuy, Furfur, Hassan, Jordi  Catherine 

Écolos : Novalis   Eli

PS : Malphas  Jean-Luc, Blandine 

Modem : Christophe  Ange

LREM : JanusMammon, UphirValefor Andromalius, Malthus, Shaytan, Vapula

LR : Marc  Caym

RN : Belial, Dominique, GeorgesLaurent, Nybbas  Joseph 

#JdR

 
Lire la suite...

from Jéssica Maryellen

Jogo da memória - Números - Nível 3

Tema: Números e Quantidades – Maternal II

Este jogo da memória foi especialmente desenvolvido para os alunos do Maternal II, com o objetivo de auxiliar no processo de reconhecimento dos números de 1 ao 9 e na associação entre número e quantidade.

O jogo é composto por seis pares de cartas, com cada par sendo formado por:

  • Uma carta com o número escrito.
  • Uma carta com a quantidade correspondente em figuras.

De forma lúdica e interativa, as crianças são incentivadas a observar, contar e associar, desenvolvendo habilidades como:

  • Reconhecimento visual dos números.
  • Noção de quantidade.
  • Atenção e memória.
Nível 1 -:-:-:– Nível 2 -:-:-:– Nível 3
 
Leia mais...

from Jéssica Maryellen

Jogo da memória - Números - Nível 2

Tema: Números e Quantidades – Maternal II

Este jogo da memória foi especialmente desenvolvido para os alunos do Maternal II, com o objetivo de auxiliar no processo de reconhecimento dos números de 1 ao 9 e na associação entre número e quantidade.

O jogo é composto por cinco pares de cartas, com cada par sendo formado por:

  • Uma carta com o número escrito.
  • Uma carta com a quantidade correspondente em figuras.

De forma lúdica e interativa, as crianças são incentivadas a observar, contar e associar, desenvolvendo habilidades como:

  • Reconhecimento visual dos números.
  • Noção de quantidade.
  • Atenção e memória.
Nível 1 -:-:-:– Nível 2 -:-:-:– Nível 3
 
Leia mais...

from Jéssica Maryellen

Jogo da memória - Números - Nível 1

Tema: Números e Quantidades – Maternal II

Este jogo da memória foi especialmente desenvolvido para os alunos do Maternal II, com o objetivo de auxiliar no processo de reconhecimento dos números de 1 ao 9 e na associação entre número e quantidade.

O jogo é composto por quatro pares de cartas, com cada par sendo formado por:

  • Uma carta com o número escrito.
  • Uma carta com a quantidade correspondente em figuras.

De forma lúdica e interativa, as crianças são incentivadas a observar, contar e associar, desenvolvendo habilidades como:

  • Reconhecimento visual dos números.
  • Noção de quantidade.
  • Atenção e memória.
Nível 1 -:-:-:– Nível 2 -:-:-:– Nível 3
 
Leia mais...

from Rolistologie

Si vous avez compris ce titre, rendez-vous dans un prochain billet pour en parler. Aujourd'hui, je vais simplement poser des définitions, pour être sûr que nous communiquerons clairement en utilisant les mêmes termes. En effet, j'ai déjà passer des heures à débattre avec d'autres rôlistes alors qu'on était à peu près d'accord, mais obscurcis par l'absence de vocabulaire commun.

Voici donc mes propositions de définitions, principalement basées sur la littérature commune, et clarifiées lorsque certaines précisions étaient nécessaires :

Système de jeu : ensemble des mécanismes non diégétiques pour modéliser l'univers du jeu.

Système de Résolution d'Action (SRA) : mécanisme pour résoudre les actions (ou les conflits). On peut classer les SRA en 3 catégories : Alea, Karma et Drama. Le SRA est évidemment inclu dans le système de jeu.

Alea : SRA ayant recours au hasard : dés, cartes, tirages…

Karma : SRA utilisant des valeurs fixes, sans hasard : comparaison de valeurs, dépense de points…

Drama : SRA en se basant sur l'histoire : choix selon la cohérence au canon du jeu, selon l'intérêt du scenario…

Système de joueurs : ensemble de règles déterminant le rôle des joueurs, et la répartition de l'autorité. Exemple de système de joueur, dans le “jdr traditionnel” : un joueur est MJ avec toute l'autorité, les autres jouent les PJ.

Immersion : Ah, là ça mérite débat, car il y a plusieurs notions bien différentes sous ce même terme. À la fois la concentration dans la partie, que le fait de jouer un rôle, ce que les théoriciens scandinaves appellent eläytyminen et qui est utilisé dans le modèle des immersion multiples. Pour certains, ils s'agirait même de la sensation de vivre la fiction, alors que les frontières entre réalité et imaginaire s'estompent. Je détaille ça dans un billet dédié à l'immersion.

Autorité : Dans le contexte du jeu de rôle, l'autorité est le droit de décider, d'acter, ce qui est vrai dans la fiction. L'autorité peut être détenue par une seule personne qui peut la déléguer à sa guise (comme le MJ dans le système de joueurs classique), peut tourner, ou être partagée entre plusieurs joueurs.

#JdR #Théorie

 
Lire la suite...

from تنها

دورترین خاطره‌ای که به سختی صحنه‌ای تار از آن را به یاد می‌آورم، برمی‌گردد به زمانی که طفلی خردسال بودم. از آنجایی که تنها لحظه‌ای بسیار کوتاه از آن #خاطره را به یاد می‌آورم، نمی‌توانم خیلی با جزییات آن را شرح دهم. بنا بر‌ این هرآنچه ذهنم یاری کند را بصورت کوتاه بیان خواهم کرد.

به یاد می‌آورم که در ایوان خانه بر روی یک تاب نشسته بودم. ایوان و خانه سبک و سیاقی مانند خانه‌های اروپایی داشت و احتمالا از مصالح سبکی مثل چوب ساخته شده بود. جاده و زمین اطراف خانه خاکی بود و تا آنجایی که به خاطر دارم فضای روبروی خانه باز بود و سازه‌دیگری به چشم نمی‌خورد. لحظه‌ای بر‌گشتم و مادرم را که درحال انجام کارهای خانه بود تماشا کردم. در تمام این مدت آهنگی با صدای یک خواننده زن از خانه شنیده می‌شد که نمی‌توانم تشخیص دهم چه آهنگی بود یا خواننده آن چه کسی بود. اما هربار که سعی می‌کنم آن را به خاطر آورم، صدایی شبیه به گوگوش یا مرجان در ذهنم طنین انداز می‌شود.

هنگامی که این خاطره را برای مادرم تعریف کردم، آن مکان را کاملا می‌شناخت. آن خانه در محله بندرگاه بوشهر و در شهرک کارمندان خارجی نیروگاه اتمی بوشهر قرار داشت که به علت شعل پدرم، ما از امتیاز سکونت در آن مکان برخوردار شده بودیم. مادرم گفت که آن موقع من حدوداً ۲ ساله بوده ام. حیف که دیگر پدر و مادرم درقید حیات نیستند و نمی‌توانم اطلاعات بیشتری از آنچه که هست درمورد آن روزگار از ایشان دریافت کنم.

 
بیشتر بخوانید...

from تنها

پردهٔ اول

بازیگر با لباسی از آب چشم، از ابری سیاه به پایین می‌بارد. صدای باران. در ناودانی زنگ زده فرو می‌رود و می‌ریزد روی صحنه. در پس زمینه خدا نشسته شبیه به داوود پیامبر در وقت آهنگری و دارد آهن می‌بافد. صحنه تاریک می‌شود. نور روی بازیگر قفل شده و او شروع می‌کند: زندگی کردن فعل عجیبی است. آدمیزاد از سیاهی زِهدان با چه مشقّت و دردی بیرون می‌آید رنج بی‌شمار و بی‌حساب می‌کشد. تا روزی دوباره با چه مشقّت و دردی برود در سیاهیِ گور. حالا خبری باشد از آنجا به بعدش یا نباشد تا به خیال خودش جاودانه شود، نمی‌دانم.

نشسته در آب چشم، ادامه می‌دهد:

فعل عجیبی است که رنجِ رشد و درد روده و دندان و ملاج را پشت سر بگذارد برسد به دردهای عمیق تر از ترکهٔ معلّم و تیر دشمن و غم نان و نگرانی اولاد و عائله.

یا اصلا بختش کج بیافتد کله‌اش بوی قرمه سبزی بگیرد. تصوّر کنید چه رنگ پریده‌ای بشود از درد جامعه و ظلم ستمگر و پاندمی و شیخ و شاه و اوین و کوفت و زهرمار.

بعد با چه مصیبت‌ها که جان سالمی نصف و نیمه کوفته و خسته و خرد به در برد، بعد از سالی ماهی چندتا شمع بیشتر روی کیکش فوت کند دوباره چرخهٔ مریضِ معکوس را سر بگیرد مستهلک شود. آخرِ سر هم یکی از مرض قند، گاهی چربی، آن یکی تصادف، این یکی مغز و قلب و کلیه و روده و خلاصه با تنوع بسیار شگفتی(!) به خط پایان برسد.

برمی‌خیزد و آب چشم خون می‌شود و پایین می‌ریزد. و ادامه می‌دهد:

ابناءِ فلک زدهٔ آدم اینطور برسد به خط پایان که چه شود؟ که بگیرند و روی سر و کول ببرند؟ روی دست خاطرخواهان؟ برود عیش و نوش و جشنِ پایان و سیگارِ برگ و شامپاین؟

نه... تازه بعد از سه بار زمین گذاشتنِ هول هولکی برسد به گور تنگی که شاید در آن حفره جا نشود و متولّیِ غم زده که حالا شاید پسرش باشد یا دامادش یا کس و کار دیگر، مدام بالاپایین کند، روی دست، یک وَر، آن وَر، بخواباند، زیر سرش خاک‌بالش بسازد، شانه‌اش را با اکراهی شَرم زده تکان بدهد، بعد بیایند مشتی کار بکنند و چیزی بخوانند و بعد... همین دیگر. بعدی نیست انگار.

اگر باشد هم با حسابی سر انگشتی که من کرده‌ام، برای نود و نُه و نُه دَهُمِ درصدشان اوضاعِ سیخ داغ و قیر و قیف و عقده گشایی‌های عجیبی براه است.

به اجبار آورده‌اند، بی‌انتخاب حکم کرده‌اند به خطوط قرمز مویی و متقاطع و پرتعداد، همان سَبک و قِسمِ موتورسواریِ برازجانی ولی در تراکمی شبیه به میدان تایمز نیویورک. اصلاً هم حرف حساب حالیشان نیست انگار که هر کار کنی یک‌ جایی بالاخره از این همه خط خطیِ قرمزِ دیوانه‌وار میزنی بیرون.

آدم، یقین اگر برگردد در همان لحظه‌ای که دارند جا سازش می‌کنند در گور، می‌بیند چه رَوَند و آمد و شدِ تباه و بی‌منطقی بود. چه روال غلطی بود.

صدای رعد ناگهان از اطراف سالن بلند می‌شود و باران می‌بارد. تماشاگران نمایش، چتر به سر می‌گیرند. روی صحنهٔ نمایش ابراهیم شریف زاده ظاهر می‌شود و چگوری کهنه را می‌نوازد. بازیگر به میان مردم می‌آید و ادامه می‌دهد:

حقیقتاً بله، این زندگی کردن فعل عجیبی است. وقتی بیشتر عجیب می‌شود که می‌بینی با این همه نکبت و فگار، یک وَرِ قشنگ هم دارد که اصلاً و ابداً قابل چشم پوشی نیست. اینطور است که می‌آیی، عاشقت می‌شوند، بازی می‌کنی، توی شلوارت خراب‌کاری می‌کنی، بعد آدم‌تر می‌شوی خیال پردازی می‌کنی، در حدی که اگر اقتضای سن و سال جلویت را نگیرد با خیالات خودت چه غلط‌ها که نمی‌کنی. بعد بادی نسیمی پس کله‌ات می‌زند عاشق می‌شوی، بقول همشهری ما «پسین گاهی ز بندر بار» می‌کنی، دوتا روی هم یکی می‌شوید. بعد اگر شانس بیاوری همین را تکثیر کنی در نسل و تخم و ترکه‌ات، آدم باشی شَرَّت به مردم نرسد، حقیقتاً سرگذشتِ قشنگ و شیرین و پر از خنده و هیجانی خواهی داشت. این‌ها هم نباشد، همین که تو شعر و سینما و موسیقی و هنر و تاریخ و سفر و مردم را می‌بینی و می‌گویی چقدر قشنگ، چقدر لطیف، چقدر خوب، چقدر عمیق... با همین عجایب صنعت خلقت، آدمیزادی هستی که می‌گردد و می‌پوشد و به چیزهای مسخره‌ای دلخوش می‌شود که بیا و ببین. چیزهایی که شاید برای آن یکی هیچ باشد، ولی برای این یکی تمام جان و جهانش است. و این قشنگ است، و این کافی است.

بازیگر بر می‌گردد روی صحنه. ابراهیم شریف زاده و خدا پشت ابرهای سیاه محو می‌شوند. نور دوباره رویش قفل می‌شود. با همان لباس از جنس آب چشم ادامه می‌دهد:

حتی اگر آن طرف خبری نباشد، لبخند دختربچه‌ات که از شادیِ هدیه تولد چشمانش برق می‌زند کافی است.

این نقطه، همین جا که کار به جان و جهانِ آدم می‌رسد، جایی است که می‌خواهم قصه‌ای را شروع کنم. نقطه‌ٔ ورود.

صدای چگور از دور می‌آید.

نامش «چارتار» است. همان چارتاری که مثلاً با سه تار بنوازند و یکی با تنبک جواب دهد. همان.

چارتاری که پیش درآمدش را در گوشه‌ٔ بنداروز و طلحه زدند، رِنْگَش در حد فاصل برازجان و کنگان و دیّر و خورموج پر شتاب دوید و شب و روز یکی کرد، درآمدش بداهه‌ای شورانگیز بود در بوشهر. و در شیراز اوج گرفت. و در اوج تمام شد.

چگور ساکت می‌شود. صدای جیرجیرک جایش را می‌گیرد.

همان ساز چارتاری که سیم مشتاقش در صدرا گسست و دسته‌اش شکست، همانکه طنین بازمانده در کاسه‌ٔ صدایش در جادّهٔ اَهرَم تَرَک برداشت. و صدایی دیگر نیامد.

چارتاری که مثل «خوزه آرکادیو بوئندیا» یا حتی آدم‌های عجیب‌تر، چنان مبهوت و پرت، در هپروت خیره و ساکت شد که شبیهَش را احدالنّاسی هنوز جایی پیدا نکرده.

این قصه‌ٔ یک ساز است. قصه‌ٔ من. چارتار.

مشقّت اصلی‌ام از آن حکایتی شروع شد که در خلالش دسته‌ٔ سازم با آن همه پرده‌ٔ کوک و خوش دست، ظهرِ داغِ مردادی در گورستان بُنداروز، همانطور که ظهرها روی دست می‌خوابید تا راحت‌تر نفس بکشد، روی دست در سایه‌ٔ جمعیتی ایستاده بالای سرش، بی‌نفس، مثل مُرده‌ها خوابید تا رویش خاک بریزند. و ریختند.

و کاسه‌ٔ سازم با یک کهکشان طنین خوش لحن و عاشقانه، هزار آوازِ خاموش شده، پسینِ بهاری در گورستان برازجان در جایی تنگ، با خنده‌ای شکفته و لبهایی قشنگ، چشمانی باز، خوابید تا رویش خاک بریزند. و ریختند. سیمانش کردند.

همان روزی که انگار از آسمان خدا میکروفن را داد دست آن دیوانهٔ لاهوری تا بخواند:

صدا اکو می‌شود طنین بازیگر سالن را در هم می‌ریزد.

«گمان مبر که به پایان رسید کار مغان، هزار باده‌ٔ ناخورده در رگ تاک است!».

ابرهایی زرد شن می‌بارند. صحنه پر از شن می‌شود. قدیمی می‌شود. کویر.

این‌ها را گفتم که برسم به جان و جهانم. که شاید برای دیگران هیچ باشد. یا اصلا در گفته و شنفته در نیاید. یا هر چیز دیگر.

بازیگر روی صحنه آب می‌شود. بچه‌ها می‌آیند آب بازی.

پایان پرده‌ٔ اول.

پردهٔ دوم

بازیگر از آب شدگی برکشیده می‌شود. لباسی به رنگ بلوط سوخته، به عطر خاک و مزه‌ٔ گل به تن دارد. خسته روی بافته‌های آهن خدا می‌نشیند. خدا دارد هنوز گوشه‌ای دور، آهن می‌بافد. صدای بافتن آهن. از آسمان هزار دست آویزان شده تا از زمین چیزی بگیرد و بالا ببرد. شروع می‌کند:

یوحنای رسول، همانکه رسولِ پسر خودخوانده‌ٔ خدای هیچوقت نادیده و دست نیافته بود. یعنی رفیقِ شفیقِ عیسای ناصری از تپه‌های سرسبز ناصریه، در اوّلِ کتابِ خاطراتِ یکساله‌اش با عیسی(که با نام بی‌مسمّای انجیل یوحنا از آن یاد می‌کنند) حرف شاعرانه‌ای زده که هرچه بالا پایین کردم دیدم نمی‌توانم برای گفتن این پرده به عنوان نقطه‌ٔ شروع ازش چشم پوشی کنم.

یوحنا دقیقاً هزار و نهصد و نود و چهارسال پیش، چند روز بیشتر یا کمتر، حالا شاید شبی زیر نور ماه یا روزی زیر سایه‌ٔ بیدی، وسط دشتی مینیمال، آسمانی آبی، تیغ آفتاب وحشی، کیارستمی‌وار، برداشته روی پوستی کاغذی برگی نوشته:

در آغاز کلام بود و کلام با خدا بود و کلام، خودِ خدا بود؛ همان در آغاز با خدا بود. همه چیز به واسطۀ او پدید آمد، و از هرآنچه پدید آمد، هیچ چیز بدون او پدیدار نگشت. در او حیات بود و آن حیات، نور آدمیان بود. این نور در تاریکی می‌درخشد و تاریکی آن را درنیافت.

بازیگر از بافته‌های آشفته‌ٔ آهن پایین می‌آید و راه می‌رود:

این سرآغاز برای من به طرز عجیبی تمام سِیر و سیاحت و سفَرِ این زندگیِ پَرچَگینه و زشت و قشنگ را، که حالا به سیاه‌ترین پیگمنت و مویی‌ترین مُحاق خودش رسیده، می‌شوید و سفید و تروتمیز می‌کند. و بُر می‌دهد. تا نفس بکشم.

صحنه تاریک می‌شود. نور در گوشه‌ٔ تصویر روی مردی قفل می‌شود. سپید پوش، که اسب سیاهی بر دوش دارد. اسب باشکوه و بزرگ است با جهاز و یراق شکوهمند. اما مرد، پای اوست. صدای شکست هزار شیشه می‌آید. بازیگر زیر نور تند و زردی در گوشه‌ای دیگر ادامه می‌دهد:

شاید جرأت می‌دهد. جرأت می‌دهد که حالا بگویم من همان نوزاد نَرمی هستم که با چشمانی درشت و سیاه، چرخان و غلتان، جایی در اتاقِ بیمارستانی در استان بوشهر، بین سال‌های شصت و سه تا هفتاد، طی همین سال‌ها، تن لختم را پیچیدند لای پارچه‌ای و دادند بغل آرسول و ماه‌بی‌بی. بابا و مامانمان. من همان یک نوزادم. یک تار. که چهار نغمه ازش نواخته‌اند. اسم و رسمی نداشتم اول. شکلی نداشتم. به قول آقای شاملو «نوجی در آبکَندی» بودم. ولی در آغاز، همین کلام بودم. هَست شدن و روی زمینی شدنم کلام بود.

که اول چرخیدم در هوا و جفت‌پا، سریع تیز و فرز، مثل شمشیر فرود آمدم و سینه‌ٔ سنگی را شکافتم و مرا حامد خواندند.

همان که نامش نشست روی لب‌های مامان، نشستم روی تاریخِ مامان، تا «مامان حامد» بخوانند و تا روز آخر «مامان حامد» بماند.

من اولین نسخه‌ٔ این چارتار بودم. که نشستم زانو به زانو کنار قلب بابا تا همراز و همسنگش باشم و همسنگرش. همان تفتیده جانی که تا لحظه‌ٔ آخر با اضطراب و استیصال ماساژِ قلب بدهم، احیا کنم و او برنگردد. بعد بگذارمش توی دالانِ بی‌انتهای نعشکش. آن بافته‌ٔ آهن.

صدای ماشین نعشکش. گریستن هفتاد مرد:

که دالانِ آن ماشین زشت تا کیلومترها درازا در سیاهی کشیده شود و بابا را ببلعد. بافته‌های آهن بِپیچد دور و برم دست و پایم را قفل کند. دهانم بوی آهن مزه‌ٔ آهن رنگ آهن بگیرد. پشت سرش بروم و او داخل آن قوطی آهنی روی دست اندازها بالا بپرد و من مَنگ. نا مطمئن. که نکند هنوز زنده باشد و من کافی نبوده باشم... .

تا همین «سَختِ سیاه» نفسم را بِبُرد. که شاید بریده باشد. بریده است.

نورها خاموش می‌شود. صدای شیهه‌ٔ اسب، افتادن جثّه‌ای عظیم روی زمین. هزار دست از زیر زمین بیرون می‌آید تا چیزی را بگیرد و پایین بکشد. بازیگر از عمقی محو، در لباسی از بخار داغ زیر بافته‌های سنگین آهن بیرون می‌آید و شکلی می‌گیرد. ادامه می‌دهد:

و دوباره زاده شدم. دومْ‌نسخه‌ای از همان. فُرمِ جدیدی پیدا کردم و شدم وحید که انگار شیشه‌ٔ زلالی را بریزند در آن فرم. وقتی عمل آمدم شدم خِپِل‌خان بابا و جگرگوشه‌ٔ جدایی ناپذیرِ مامان. همان چکیده‌ خون‌ از دلی که تا لحظه‌ٔ آخر کنار مامان باشم. مدام زور بزنم دَرِ آن بافته‌‌ٔ آهن لعنتی باز نشود. دور ماشین مامان به هیئت پروانه‌ٔ لاجونی بچرخم تا جان به لب شوم. تا خونِ لای آن ردیف بی نقص دندان قشنگ را ببینم. پاهایش را ببینم.

بیچاره شوم با همین تجربهٔ بیچارگی، گنگ خواب دیدگی، عالمی تماماً کَر. بارِ سنگین و غمِ تنهایی را تا آخر با خود ببرم. که شاید برده باشم. برده‌ام.

صحنه تاریک می‌شود. روی سر تماشاگران ناگهان برف باریدن می‌گیرد. چترها را باز می‌کنند. برف از کناره‌ها تن و بدن تماشاگران را منجمد می‌کند. سرد می‌شود. بازیگر از پشت سر تماشاگران به سمت صحنه‌ٔ نمایش در لباسی از شعر سروده می‌شود و راه می‌افتد. ادامه می‌دهد:

بعد برای نمی‌دانم چندمین‌بار انگار خوابی دید مامان. توی خواب داشت با پیغمبر می‌رفت زیارتِ خانه‌ٔ خدا.

از آسمان دسته‌های بزرگ کلاغ‌های سیاه پیچیده در بافته‌های آهنی سرد، با بال‌های خونین، چرک‌ مرده و بی‌جان، جنازه‌وار به زمین می‌بارند. صدای به زمین افتادن هزار قطعه آهن بافته شده. بازیگر درون سینه‌ٔ عاشق خود چاهی می‌کند. خشن و بی‌عاطفه. از چاه عمیق سینه‌اش نجوای بی‌شکلی بیرون می‌تراود: لبَّيك اللّهمّ لبَّيك، لبَّيك لا شريك لك لبَّيك! و بازیگر ادامه می‌دهد:

آن مکعّبِ کاریزماتیک. آن سیاه! بعد کلامِ کذایی شد رسولِ اعرابیان، با هیبتی به زیباییِ ضدّنور شدنِ نخلی تنومند و بلندبالا در برابر خورشید. جایی شبیه فیلم‌های بیضایی در وقت بیابانی شدن.

زیر سایهٔ سنگی تَفتیده وسطِ بیابان، مصطفای رسول هلو و سیب‌ترش به مامان داد. خودش برایم تعریف کرد.

بعد چرخیدم و کلام‌وار، اَجَل سرودی ساخت از من، از همانجا نوشت حالتِ سوّمی بگیرد تا محمّد شود. و محمد شدم.

بی‌حرف پیش سومین تار روی سازی عربی. تا هلویِ رفیق و قریب و قرین باشم، پنبه‌ٔ باباش، شعر مامان و امتداد قلمش. بی‌تعارف ترینش باشم. همراز و همسنگ و همسنگر مامان. مَه بلند. که تا روز آخر قربان صدقه بروم، دور بگردم، عاشق باشم. تا آن گوشی را در آن تاریکی شب در بیابان پیدا کنم. زیر بِرِزِنْتِ سیاه آن هلال نارسیده‌ٔ رمضان، صد دور کنار صحنه‌ٔ تصادف بچرخم. جانی شاید مانده باشد تا ببرم برای مادرم؟ آقا شما نیمه جانی عاشق در این حوالی ندیده‌اید؟ احتمالا هنوز صدای خنده‌های عاشقش از آن به گوش می‌رسد، به طنین نام چهار پسر... آقا شما شیشه‌ٔ سخت‌ِ جانیْ گلگون را ندیده‌اید؟ چند دقیقه پیش همینجا شکسته است... آقا...؟

و تخت گاز دنبال آمبولانس. بیمارستان اهرم. «شتاب کردم که آفتاب بیاید، نیامد».

رضا براهنی با آن کلاهش در آغوش دسته‌ٔ کلاغ‌های پرسروصدایی وارد سالن می‌شود. از روی سر تماشاگران رد می‌شود. به صحنه می‌رسد. تمام صحنه و پس زمینه سفید می‌شود. چشم را می‌زند. تماشاگران عینک می‌زنند تا ببینند چه شده است. کلاغ‌های شلوغِ مضطرب آقای براهنی را چون کرکسی گشوده بال دور بازیگر می‌چرخانند. مردمِ عینک‌زده ترسیده‌اند. بازیگر ادامه می‌دهد:

محمّد شدم تا بروم چهارستونِ بیمارستانِ خراب شدهٔ اهرم را با فریاد بلزرانم:

فریاد ناگهانیْ سالن را در می‌نوردد. آمیخته با زخم‌ صدای کلاغ‌. از سالن نمایش بیرون می‌رود. روی سر مردم نفیر می‌کشد. بازیگر داد می‌زند:

ماماااااااااان بیوووووو! و بیمارستان اهرم می‌لرزد... .

محمد شدم، همچنان بی‌معجزه. و صدایم تا معاد کش می‌آید، همچنان محمد.

تازیانه‌های آقای براهنی بر تن رنجور بازیگر پی‌درپی فرود می‌آید. صدای تازیانه. بازیگر زیر ضربات ادامه می‌دهد:

«چو گُرگ زوزه کشیدم، چو پوزه در شکم روزگار خویش دویدم، شبانه روز دریدم، دریدم، که آفتاب بیاید، نیامد».

آقای براهنی تازیانه بر می‌کشد و در سکوت بالای سر بازیگر می‌چرخد. کرکسی در آغوش هزار کلاغ‌. بازیگر ادامه می‌دهد:

از بخت خراب یا درست، من باید محمّد می‌شدم تا داغِ دستهای افتاده از دوسوی برانکارد را هم ببینم. داغ جا نشدن در آن سَردحُفره‌ٔ سردخانه‌ٔ بی‌هویت را هم ببینم. محمّد شدم که تا روزِ آخر، بابا نباشد، ذوق نکند، آدرس ندهد، پشت کمرم را دست نکشد، تا سوجی و مجنون‌وار بنویسم تا روز آخر، شاید به خانه برگردم، شاید بمیرم. مرده‌ام.

دسته‌ٔ کلاغ‌ها و آقای براهنی محو می‌شوند. سفیدیِ تند و تیز و چشم‌آزار، خاموش می‌شود. صحنه در تاریکی مطلق فرو‌ می‌رود. تماشاگران عینک از چشم برمی‌دارند. صدای شکستن ساز می‌آید. هزار شمع با شعله‌های لرزان، وارونه از آسمان آویزان می‌شوند. صدای گریه‌ٔ نوزاد. گریستن هفتاد مرد. بعد باد مرگ می‌وزد. هزار شعله را خاموش می‌کند. اشک شمع‌ها در فواصل نامنظمی نرسیده به صحنه، به زمین، خشک می‌شوند. باران مرده‌ای از موم. بوی کافور.

پایان پرده‌ٔ دوم

پردهٔ آخر

دود سیاهی از سینه‌ٔ بازیگر به بیرون لَمْبَر می‌خورَد. سرخ‌نورِ ضعیفی نشان از آتشی خاموش، درون سینه‌اش پیداست. زمین به عرض شانه‌ٔ بازیگر بیرون می‌خراشَد. زیر پایش بالا می‌آید. می‌برد در ارتفاعِ ناتوانی و همانجا خشکش می‌کند. درد، از دریچه‌های تنگِ قلبش بیرون می‌ریزد. بازیگر با صدایی گرفته از دردی جانکاه شروع می‌کند:

محمد که بودم، در همان دوران، ناگاه یکی شدم که آمدم ولی پسند نکردم و جلوتر از همه رفتم.

محمود یا چیزی شبیه به همین، می‌گویند سِقط شدم، ولی اینطور نیست. خبر دارم دنبال چیزی آمده بودم که انگار از اول نبود. پس رفتم و در بهشت صادقِ بوشهر جایی بیش از سی‌ سال پیش برای همیشه گم شدم. نیست بودم، نیست‌تر شدم.

بعد خواستند محتوای پنجمی بسازند از آن سیب‌ ترش که احمد به آن سر و روی غریبش بیاید. که جای محمود باشم یا عطیه‌ای در پس نذری. از شاهزاده‌ ابراهیم ننیزکی یا حاج سی‌مح‌مین دشتی. کاکی. یادم نیست.

به هر بهانه، پنجی در پی چهاری مرده و رفته. شاید به همین علت بود که از اول نعل را وارو زدم. حاجَتِ روایی شدم در پس مرده‌ای سقوط کرده ته گودالی در بهشت صادق. به زن آرسولم دادند در هیئت ته‌طغاری، که دور باشم و دور باشم و دور. دریغ که باید نزدیک‌ترین می‌بودم. چسبیده‌ترین. بغل‌ترین. حالا غریب‌ترین و برعکس‌ترین باشم. که روز آخری که راهی لامرد شدم مامان با گریه‌ٔ بنفش راهی‌ام کند، بابا با غرور و بغضِ هم‌زبانی. همان باشم که بابا تا دامغان و تهران برای نصب گاز و یخچالم دنبالم بیاید. که با غرور نامم را ببرد بی‌آنکه لایقش باشم.

صدای رعدِ بی‌برقی ناگهان سکوت را می‌شکند. در پس آن، باران شیشه روی صحنه باریدن می‌گیرد. آقای براهنی در هیئت کابوسی سیاه برمی‌گردد. تماشاگران می‌ترسند. بازیگر زیر بارانِ شیشه، زخم‌آغشته داد می‌زند:

آن باشم که نتوانست ته‌طغاریِ تومِ دِلی باشد. آن باشم که همیشه پشت تلفن بود. همیشه نبود. همیشه رد تماس با پیامکِ آماده بود.

زانو می‌زند و زمزمه می‌کند:

که داغ شوم داغ، وقتی چه شب‌ها حدس می‌زدند قرار است فردا از راه برسم و نرسیدم. داغ شوم داغ، که حامد زنگ بزند و یَلِ سرهنگ را با کلمه‌ای برایم تمام کند، و من آنجا نباشم. کمرم بشکند.

که محمد زنگ بزند و شبانه قرصِ ماهِ مقنعه‌پوشِ مامان را با کلمه‌ای برایم تمام کند. و من آنجا نباشم و جانم تمام شود.

احمد باشم، آنکه که هزار سال صبحِ مرداد در هواپیما گریستم و شکستم و نرسیدم. که هزار سال صبحِ اسفند در هواپیما سوختم و تمام شدم و خاکستر شدم و نرسیدم.

رضا براهنی کابوس‌های بازیگر را روی سرش می‌ریزد. در آوار خرد کننده‌ٔ بافته‌های آهن. در شکل و حالت‌های ترسناک، اما به طرز غریبی ساخته از خاطرات آرسول و ماه‌بی‌بی. بافته‌های آهن به شکل سرهنگ و مرجان. بازیگر جان می‌دهد و ادامه می‌دهد:

«کشیده‌ها به رُخانَم زدم به خلوتِ پستو چو آمدم به خیابان، دو گونه را چونان گدازه‌ٔ پولاد سوی خلق گرفتم، که آفتاب بیاید، نیامد».

من همان شدم که در حسرت آغوش آخر، صدای آخر، تماس آخر، لمسِ گرم و بیدار و زندهٔ آخر، بغض به گور می‌برد.

«اگرچه هق هقم از خواب، خوابِ تلخ برآشفت خوابِ خسته و شیرینِ بچّه‌های جهان را، ولی گریستن نتوانستم، نه پیش دوست نه در حضور غریبه نه کُنجِ خلوت خود، گریستن نتوانستم، که آفتاب بیاید، نیامد».

باران شیشه و کابوس تمام می‌شود. صدای جیرجیرک جای همهمه‌ها را می‌گیرد. باد سردی می‌وزد. تماشاگران می‌لرزند. بازیگر در لباسی از فتیله‌ای کثیف و سوخته، از زیر آواز کابوس‌ها، آرسول‌ها، ماه‌بی‌بی‌ها، سرهنگ‌ها و مرجان‌ها بیرون می‌خزد. یکپارچه خون! و ادامه می‌دهد:

کلام شدیم ما چهارتا. شدیم همان نیّت ازلی مامان و تسلیم و رضای بابا. چرخیدیم و سنگین و بارور شدیم، بیرون پریدیم چسبیدیم به پیشانی نسخه‌ٔ دست سازِ دوتا آدم عاشق از خودشان، تا کلامِ با خدا باشیم و کلام، گیرم که خودِ خدا باشد. که خدا بود. که هست.

یکی سرِ ظهر، یکی مغرب، دوتا صبح؛ دقیق نمی‌دانم، بالاخره سازی تیار شدیم چارتار، پرشتاب رفتیم به جادویی‌ترین چهاردیواری دنیا که حالا بزنند، ردیف را به آتش بکشند. کشیدند.

صدای تار لطفی می‌آید. تنبیه می‌کند. بداهه‌ٔ اصفهان. «در وفای عشق تو .... مشهور خوبانم چو شمع...» و بازیگر ادامه می‌دهد:

یک چهاردیواری شد اتاق موسیقیِ ساده و خاکی، پر از خورشید. پر از آب زلال. پر از زندگی‌های زیسته. آردهای بیخته. الک‌های آویخته. مفهوم عمیقی که هفتاد مَن گپ و روات و قصّه و دلیل و اشتیاق و نقشه و برنامه و امید و آرزو را در کلمه‌ٔ کوچکی زیر لفظ خونه خلاصه کرد.

صدای تار لطفی می‌رود. مرجان فرساد جایش را می‌گیرد: خونه‌ٔ ما... دوره، دوره... پشت کوه‌های صبوره... و بازیگر بی‌تفاوت رد می‌شود، ادامه می‌دهد:

خونه‌ای که یقین دارم خدا اگر خجالت نمی‌کشید یک نصف‌ شبی سحری دم‌ صبحی با لگدِ مازه پیغمبرش را از خواب می‌پراند که «چه خوابیدی بلندشو ما ادراک خونه...!» و سورهٔ تکمیلی در عمق این مفهوم اون برای بشریت نازل می‌کرد. و کاش بشر خونه را در قرآن و انجیل و تورات و اوستا و بودا و چین و ماچین، قبلاً از اینهمه مرگ و شاه و شیخ می‌خواند. طور دیگری می‌یافت. نیافت.

خونه همانقدر که آجر و سیمان و سیم و تیرآهن بود، همانقدر آرسول و ماه‌بی‌بی بود. همانقدر مرجان و حسینی داشت. یکی دائم روفت و روب. هرگز ننشین. نخواب. ناخَسته. بقول خودش بمب انرژی! که حتی روی تنشورِ آرامگاه برازجان بخندِ خوشگل و سرحال بود. بیدار بود. بیدار رفت. با چشم باز رویش لحد گذاشتند.

دیگری اردیبهشتیِ مغرور. دائم‌ فرمانده. تا توی سردخانه‌ٔ شیراز، سرهنگِ راست قامت بود.

خونه همانقدر که سقف و پناه بود، همانقدر چارتار بود. چهار پسر بود. پر از ریتم و رِنگ و ضرب و فراز و فرود. کوک و ناکوک. تَقّه و کوبه. دَم و آرشه و زَخمه.

خونهٔ ما سازی بود که مثلا بیست سالِ اول داده باشند جلیل شهناز، ده سال میانی داده باشند محمدرضا لطفی تا «ساز را ادب کند»، بعد این اواخر گذاشته باشند روی طاقچه، بن گنجه، زیر زمین و دَر رویش بسته باشند. علیزاده‌ها را حسرت به دل نگه داشته باشند.

صحنه روشن می‌شود. بازیگر قامت راست می‌کند. زیر دایره‌ٔ نور کمی جلو می‌آید. توی چشم تماشاگران نگاه می‌کند. زهرخند. صدای پچ‌پچ می‌آید اما نه از تماشاگران. مردم کنجکاوند. صدا از هزار سایه‌‌ای می‌آید که پشت سر بازیگر قد می‌کشند. بازیگر را می‌گیرند تا تکان نخورد. او ادامه می‌دهد:

چارتار حکایت ما است. حکایت چهار پسری که حالشان حالِ چهارتارِ جدا گسیخته از ساز است. سازی حالا شکسته، یکی اینجا یکی آنجا خوابیده، بین الحرمین وار. برازجان و بنداروز. هفت شوط که بروی حاجت روا می‌شوی. حالا چه می‌دانی از چارتار کوکِ سابق. یکی مضراب راستِ بیخود می‌خورَد یکی چپِ بی‌ربط. یکی اصلاً روی خَرَک نیست. یکی هم که عمری صدای Do می‌داد حالا به مکافاتی شاید Si لَنگی ازش در بیاید. آن هم چه زاید رنجور و بیمار.

داد می‌زند:

من چارتارم اینک!

مُرده اما اگر روزگاری کوک بودم شاید، با سیم اولم صدای کیهان و آتشِ طور و ذوالفقار می‌شنیدی. با سیم دومم طنین آب زمزم و مقام اسماعیل. با مشتاقِ سومم باران احساس و همهمه‌ٔ ساختنِ چتر نجات بعد از پریدن. و با سیم زیرِ نازکِ آخرم، صدایی به رنگ آبی دریا و بوی عود.

من یک نفر بودم که چهار صدا داشتم.

این داستان چارتار است.

بازیگر دست می‌گشاید. هزار قلّابِ خاطره از آسمان به پایین می‌آید. از بافته‌های آهن. دورش می‌پیچد آنچنان که چیزی از او دیده نمی‌شود. پوسته‌ٔ صلیبی از آهنِ بافته‌ شده شکل می‌گیرد با مغزی از آدمیزاد. صدای سرشکستن موج دریا در سنگ خارا می‌آید. بافته‌ آهنِ صلیب، بازیگر را می‌برد در اوج. روی بلندی‌های کلاغ‌ نشین شهر، پا در جایِ زمینی نرم و مرطوب می‌کند. گِلِ آدم سرشته و چارمیخ می‌کند. خدا هنوز روی صحنه دارد جایی در هیئت داوود پیامبر در وقت آهنگری، آهن می‌بافد. و‌کلاغ‌ها می‌خوانند. پرده بسته می‌شود.

پایان پرده‌ٔ سوم

انتهای نمایش

نویسنده: سید احمد حسینی

خودگویه – مونولوگ
#مونولوگ #چارتار #خودگویه
 
بیشتر بخوانید...

from Rolistologie

Comme je l’ai raconté précédemment, j’avais arrêté de jouer au semi GN la Camarilla face à une équipe de conteurs (MJs) qui avait notamment sabordé une composante essentielle de la fiction, la notion de Statut, détournant ainsi complètement le propos du jeu.

Il y a environ 2 ans, j’ai appris qu’un nouveau conteur débutant arrivait dans une asso et qu’il était plutôt aligné sur la vision du jeu et du Statut. J’ai donc repris la cama, et j’ai effectivement pu développer des fictions respectant le propos de ce jeu. Cependant, ce conteur faisait de nombreuses maladresses, notamment des erreurs qui entraînaient des incohérences dans la fiction. Je les lui remontais, et j’ai essayé de les compenser au maximum, que ce soit en n’utilisant pas leur apparition dans la fiction, ou en lui laissant le temps de trouver un correctif. Jusqu’au jour (environ 1 an) où une de ses erreurs a eu une conséquence directe sur mon perso, sans pouvoir être ignorée. Le conteur m’a bien reconnu en privé s’être trompé (à l’oral, sans trace écrite...), mais il n’a pas su modifier la fiction, et s’est embourbé dans une spirale de mauvaises décisions jusqu’à ce qu’il en vienne à tuer mon personnage pour que son erreur n’impacte pas son PNJ. Cette attitude a conduit à mon arrêt définitif de la cama, le contrat social étant irrémédiablement rompu. Mon perso continuera ses aventures en tant que PNJ sur une campagne sur table, en retirant évidemment de la fiction l’incohérence fatale.

#JdR #SemiGN #Cama #Camarilla #FCF

 
Lire la suite...

from manunkind

the digital blows forward n' the digital doesn't blow back* (through smtp)

of all the emails i've sent those:left unanswered(reply:no:why) pave the way to many lives in many worlds that exist (perhaps? but:feel like the (worse?)words i type on this backlit keyboard & do not appear on screen-where are they? (will someone find them on their screen and ask: where do these words come from?)

the answer be:lost

 
Lire la suite...