Oren Eini

aka Ayende Rahien

Oren Eini

CEO of RavenDB

a NoSQL Open Source Document Database

Get in touch with me:

oren@ravendb.net +972 52-548-6969

Posts: 7,590
|
Comments: 51,223

Copyright ©️ Ayende Rahien 2004 — 2025

Privacy Policy · Terms
filter by tags archive
stack view grid view
  • architecture (614) rss
  • bugs (451) rss
  • challanges (123) rss
  • community (381) rss
  • databases (481) rss
  • design (896) rss
  • development (642) rss
  • hibernating-practices (71) rss
  • miscellaneous (592) rss
  • performance (397) rss
  • programming (1086) rss
  • raven (1455) rss
  • ravendb.net (539) rss
  • reviews (184) rss
  • 2025
    • July (5)
    • June (7)
    • May (10)
    • April (10)
    • March (10)
    • February (7)
    • January (12)
  • 2024
    • December (3)
    • November (2)
    • October (1)
    • September (3)
    • August (5)
    • July (10)
    • June (4)
    • May (6)
    • April (2)
    • March (8)
    • February (2)
    • January (14)
  • 2023
    • December (4)
    • October (4)
    • September (6)
    • August (12)
    • July (5)
    • June (15)
    • May (3)
    • April (11)
    • March (5)
    • February (5)
    • January (8)
  • 2022
    • December (5)
    • November (7)
    • October (7)
    • September (9)
    • August (10)
    • July (15)
    • June (12)
    • May (9)
    • April (14)
    • March (15)
    • February (13)
    • January (16)
  • 2021
    • December (23)
    • November (20)
    • October (16)
    • September (6)
    • August (16)
    • July (11)
    • June (16)
    • May (4)
    • April (10)
    • March (11)
    • February (15)
    • January (14)
  • 2020
    • December (10)
    • November (13)
    • October (15)
    • September (6)
    • August (9)
    • July (9)
    • June (17)
    • May (15)
    • April (14)
    • March (21)
    • February (16)
    • January (13)
  • 2019
    • December (17)
    • November (14)
    • October (16)
    • September (10)
    • August (8)
    • July (16)
    • June (11)
    • May (13)
    • April (18)
    • March (12)
    • February (19)
    • January (23)
  • 2018
    • December (15)
    • November (14)
    • October (19)
    • September (18)
    • August (23)
    • July (20)
    • June (20)
    • May (23)
    • April (15)
    • March (23)
    • February (19)
    • January (23)
  • 2017
    • December (21)
    • November (24)
    • October (22)
    • September (21)
    • August (23)
    • July (21)
    • June (24)
    • May (21)
    • April (21)
    • March (23)
    • February (20)
    • January (23)
  • 2016
    • December (17)
    • November (18)
    • October (22)
    • September (18)
    • August (23)
    • July (22)
    • June (17)
    • May (24)
    • April (16)
    • March (16)
    • February (21)
    • January (21)
  • 2015
    • December (5)
    • November (10)
    • October (9)
    • September (17)
    • August (20)
    • July (17)
    • June (4)
    • May (12)
    • April (9)
    • March (8)
    • February (25)
    • January (17)
  • 2014
    • December (22)
    • November (19)
    • October (21)
    • September (37)
    • August (24)
    • July (23)
    • June (13)
    • May (19)
    • April (24)
    • March (23)
    • February (21)
    • January (24)
  • 2013
    • December (23)
    • November (29)
    • October (27)
    • September (26)
    • August (24)
    • July (24)
    • June (23)
    • May (25)
    • April (26)
    • March (24)
    • February (24)
    • January (21)
  • 2012
    • December (19)
    • November (22)
    • October (27)
    • September (24)
    • August (30)
    • July (23)
    • June (25)
    • May (23)
    • April (25)
    • March (25)
    • February (28)
    • January (24)
  • 2011
    • December (17)
    • November (14)
    • October (24)
    • September (28)
    • August (27)
    • July (30)
    • June (19)
    • May (16)
    • April (30)
    • March (23)
    • February (11)
    • January (26)
  • 2010
    • December (29)
    • November (28)
    • October (35)
    • September (33)
    • August (44)
    • July (17)
    • June (20)
    • May (53)
    • April (29)
    • March (35)
    • February (33)
    • January (36)
  • 2009
    • December (37)
    • November (35)
    • October (53)
    • September (60)
    • August (66)
    • July (29)
    • June (24)
    • May (52)
    • April (63)
    • March (35)
    • February (53)
    • January (50)
  • 2008
    • December (58)
    • November (65)
    • October (46)
    • September (48)
    • August (96)
    • July (87)
    • June (45)
    • May (51)
    • April (52)
    • March (70)
    • February (43)
    • January (49)
  • 2007
    • December (100)
    • November (52)
    • October (109)
    • September (68)
    • August (80)
    • July (56)
    • June (150)
    • May (115)
    • April (73)
    • March (124)
    • February (102)
    • January (68)
  • 2006
    • December (95)
    • November (53)
    • October (120)
    • September (57)
    • August (88)
    • July (54)
    • June (103)
    • May (89)
    • April (84)
    • March (143)
    • February (78)
    • January (64)
  • 2005
    • December (70)
    • November (97)
    • October (91)
    • September (61)
    • August (74)
    • July (92)
    • June (100)
    • May (53)
    • April (42)
    • March (41)
    • February (84)
    • January (31)
  • 2004
    • December (49)
    • November (26)
    • October (26)
    • September (6)
    • April (10)
Couchbase vs RavenDB Performance at Rakuten Kobo Whitepaper
  previous post next post  
Feb 14 2008

Fun with DSL - Didja know the CLR allows it?

time to read 1 min | 22 words

I swear that I didn't mean to do it, but it just happened.

image

Tweet Share Share 15 comments
Tags:
  • Domain Specific Languages

Related posts that you may find interesting:

IM - Without the instant... The best checkin comment ever Did I miss something? Since when can you do it?
  previous post next post  

Comments

Florian Krüsch
14 Feb 2008
14:48 PM
Florian Krüsch

hehe, that's funny. Díd you use ILASM to create that?

Ayende Rahien
14 Feb 2008
14:55 PM
Ayende Rahien

No, Boo DSL based on XML storage.

Freaky stuff

Peter Ritchie
14 Feb 2008
15:33 PM
Peter Ritchie

Yeah, sorta the basis of much obfuscation software: just rename members to use something in the Unicode set that C#/VB/etc doesn't support...

James Curran
14 Feb 2008
15:42 PM
James Curran

I wonder if that were part of the changes for the C++/CLR version, where has things like "for each" being a single keyword.

Luke Breuer
14 Feb 2008
17:18 PM
Luke Breuer

Why are you specifying an hour value in hex?

Ayende Rahien
14 Feb 2008
17:49 PM
Ayende Rahien

That is a Reflector setting

Justin Etheredge
14 Feb 2008
20:49 PM
Justin Etheredge

Hmm, it is surprising that they allow that.

Yuri Korchyomkin
15 Feb 2008
05:50 AM
Yuri Korchyomkin

Yes, this ability of CLR to grok names with whitespaces is used for a long time by Nemerle guys in their unit-testing DSL (their site seems to be down but contents can be found in google cache, for example).

Yuri Korchyomkin
15 Feb 2008
05:50 AM
Yuri Korchyomkin

Yes, this ability of CLR to grok names with whitespaces is used for a long time by Nemerle guys in their unit-testing DSL (their site seems to be down but contents can be found in google cache, for example).

Anders
15 Feb 2008
10:55 AM
Anders

Do you have a feed for the comments on your blog Oren?

Ayende Rahien
15 Feb 2008
11:39 AM
Ayende Rahien

Andres,

Not that I know of.

If SubText has it, then probably

yitzchok
15 Feb 2008
18:27 PM
yitzchok

That's nice is there any way to call it from C#?

Ayende Rahien
15 Feb 2008
18:58 PM
Ayende Rahien

Not really, no.

VB probably can, though

Thomas Danecker
16 Feb 2008
12:58 PM
Thomas Danecker

You can also call it by C# code, just use something like administrators\u0020can\u0020always\u0020login. C# allows unicode escapes in identifier names. See the language specification ECMA-334, section 9.4.2 Identifiers. This is a valid example from this section:

class @class

{

public static void @static(bool @bool) {

if (@bool)

System.Console.WriteLine("true");

else

System.Console.WriteLine("false");

}

}

class Class1

{

static void M() {

cl\u0061ss.st\u0061tic(true);

}

}

Ayende Rahien
16 Feb 2008
13:01 PM
Ayende Rahien

Thomas,

Thanks, it is good to know.

Scary as hell, too.

Comment preview

Comments have been closed on this topic.

Markdown formatting

ESC to close

Markdown turns plain text formatting into fancy HTML formatting.

Phrase Emphasis

*italic*   **bold**
_italic_   __bold__

Links

Inline:

An [example](http://url.com/ "Title")

Reference-style labels (titles are optional):

An [example][id]. Then, anywhere
else in the doc, define the link:
  [id]: http://example.com/  "Title"

Images

Inline (titles are optional):

![alt text](/path/img.jpg "Title")

Reference-style:

![alt text][id]
[id]: /url/to/img.jpg "Title"

Headers

Setext-style:

Header 1
========
Header 2
--------

atx-style (closing #'s are optional):

# Header 1 #
## Header 2 ##
###### Header 6

Lists

Ordered, without paragraphs:

1.  Foo
2.  Bar

Unordered, with paragraphs:

*   A list item.
    With multiple paragraphs.
*   Bar

You can nest them:

*   Abacus
    * answer
*   Bubbles
    1.  bunk
    2.  bupkis
        * BELITTLER
    3. burper
*   Cunning

Blockquotes

> Email-style angle brackets
> are used for blockquotes.
> > And, they can be nested.
> #### Headers in blockquotes
> 
> * You can quote a list.
> * Etc.

Horizontal Rules

Three or more dashes or asterisks:

---
* * *
- - - - 

Manual Line Breaks

End a line with two or more spaces:

Roses are red,   
Violets are blue.

Fenced Code Blocks

Code blocks delimited by 3 or more backticks or tildas:

```
This is a preformatted
code block
```

Header IDs

Set the id of headings with {#<id>} at end of heading line:

## My Heading {#myheading}

Tables

Fruit    |Color
---------|----------
Apples   |Red
Pears	 |Green
Bananas  |Yellow

Definition Lists

Term 1
: Definition 1
Term 2
: Definition 2

Footnotes

Body text with a footnote [^1]
[^1]: Footnote text here

Abbreviations

MDD <- will have title
*[MDD]: MarkdownDeep

 

FUTURE POSTS

No future posts left, oh my!

RECENT SERIES

  1. RavenDB 7.1 (7):
    11 Jul 2025 - The Gen AI release
  2. Production postmorterm (2):
    11 Jun 2025 - The rookie server's untimely promotion
  3. Webinar (7):
    05 Jun 2025 - Think inside the database
  4. Recording (16):
    29 May 2025 - RavenDB's Upcoming Optimizations Deep Dive
  5. RavenDB News (2):
    02 May 2025 - May 2025
View all series

RECENT COMMENTS

  • Marco, Yes, that is something that we have support for. We'll do the big reveal in about 3 - 4 weeks. :-)
    By Oren Eini on RavenDB and Gen AI Security
  • In short, you have a project that could be public or private. The comments added to the project should be vectorised, but whe...
    By Marco on RavenDB and Gen AI Security
  • Marco, In short, yes. You can limit the scope of what the AI will see during RAG for the set that the user has access to. ...
    By Oren Eini on RavenDB and Gen AI Security
  • Is it also possible to let ravendb AI only use a (dynamic) subset of the crawled data to answer questions? For example when r...
    By Marco on RavenDB and Gen AI Security
  • great article
    By Ruben on Senior developers reframe a complex problem, juniors run into it heads-on

Syndication

Main feed ... ...
Comments feed   ... ...
}