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,591
|
Comments: 51,223
Privacy Policy · Terms
filter by tags archive
time to read 2 min | 268 words

You scored as Rogue. Rogues share little in common with each other. Some are stealthy thieves. Others are silver-tongued tricksters. Still others are scouts, infiltrators, spies, diplomats, or thugs. What they share is versatility, adaptability, and resourcefulness. In general rogues are skill at getting what others don't want them to get; entrance in to a locked treasure vault, safe passage past a deadly trap, secret battle plans, a guard's trust, or some random person's pocket money.


What DnD Class Are You?
created with QuizFarm.com
time to read 2 min | 218 words

I've previous mentioned MyGeneration and not in favorable terms, the application took a very long time to start and used over 0.5 Gb (!) of RAM.

Since them, Mike Griffin have contacted me and sent me a fix that solved the problem in a very complete way. (Right now the startup time is ~5 seconds and modest memory size).

Naturally, I'm unique, and in over 42,135 people who downloaded the product, I'm one of the two that have this problem. I can't say that I'm excited about this.

What I'm excited about it that the fix not only fixed the current version, but the previous versions as well. I intended to use the new JetBrain profiler to check what was the cause for the problem. Unfortantely I'm unable to repreduce it. I unistalled the fixed and wiped out any trace of it in the system, and then install the version with the problem. Behold, it's fixed!

Niether Mike nor I can understand what happens to cause this (the problem or the magic solution).

Oh well, at least now I can get to use the product. It seems to have interesting capabilities and (most importantly) it has NHibernate templates :-)

time to read 5 min | 923 words

I found this nice utility at PerfectXml, it allows you to run ad-hoc XPath queries against any xml document and report both the results and the type of the result.

The only addition that I've made was to add namespace support, you can use it this way:
xpather hibernate.cfg.xml //nh:session-factory/ nh=urn:nhibernate-configuration-2.0

I've found it very useful for small testing of xpath expressions, mainly because I uses XPath every once in a while, so I tend to forget the particulars.

using System;
using System.Xml;
using System.Xml.XPath;
class Class1
{
   [STAThread]
   static void Main(string[] args)
   {
      if(args.Length < 2)
      {
         Console.WriteLine("Incorrect number of parameters.");
   Console.WriteLine("Usage: xpather <filename> <xpath> <ns-prefix=namespace> <ns-prefix=namespace>...");
         return;
      }
      try
      {
         //Load the XML document

         XmlDocument doc = new XmlDocument();
         doc.Load(args[0]);
         //Create XPathNavigator

         XPathNavigator xpathNav = doc.CreateNavigator();
  XmlNamespaceManager nsMgr = new XmlNamespaceManager(xpathNav.NameTable);
   
   for(int i=2;i<args.Length;i++)
   {
   string[] tmp= args[i].Split('=');
   if(tmp.Length==2)
   {
    nsMgr.AddNamespace(tmp[0],tmp[1]);
   }
   }
   
         //Compile the XPath expression

         XPathExpression xpathExpr = xpathNav.Compile(args[1]);
   xpathExpr.SetContext(nsMgr);
         //Display the results depending on type of result

         switch(xpathExpr.ReturnType)
         {
            case XPathResultType.Boolean:
               Console.WriteLine("Boolean value: {0}"
                  xpathNav.Evaluate(xpathExpr));
               break;
            case XPathResultType.String:
               Console.WriteLine("String value: {0}"
                  xpathNav.Evaluate(xpathExpr));
               break;
            case XPathResultType.Number:
               Console.WriteLine("Number value: {0}"
                  xpathNav.Evaluate(xpathExpr));
               break;
            case XPathResultType.NodeSet:
               XPathNodeIterator nodeIter =  xpathNav.Select(xpathExpr);
               Console.WriteLine("Node-set count: {0}"
                  nodeIter.Count);
               while(nodeIter.MoveNext())
                  Console.WriteLine(nodeIter.Current.Value);
               break;
            case XPathResultType.Error:
               Console.WriteLine("XPath expression {0} is invalid."
                  args[1]);
               break;
         }
      }
      catch(Exception exp)
      {
         Console.WriteLine("Error: " + exp.ToString());
      }
  }
}

 

time to read 1 min | 155 words

I seems to have misplaced my weekend, since it just vanished without a trace. All I did was catch up on my reading and then handle some personal matters and then it whisked away.

I got a note that I might meet it in a few days, but only if I behave. Do you think that I need to post a carton milk shot to find it?

On other news, I found Product image for ASIN: 0786818603 The Golem's Eye in a book store yesterday, I very much enjoyed the  Product image for ASIN: 078681859X The Amulet of Samarkand, so I look forward to read it. 

time to read 1 min | 134 words

No, I'm not going to complain about something here.

I returned from a trip the the lowest place on the world, 408 meters below the sea level. The Dead Sea.

The view was fantastic, and convinced me that I really do need a digital camera :-)

Hebrew speakers will cring at the translation, but this is what passed through my head there:

Israel is beautiful and flowering,
Who built and who planted?
All of us together!
time to read 2 min | 260 words

I just got the standard referrer email from my blog on my latest post. Only this one wasn't the usual one. I usually check the pages that link to my blog if I can, and so I followed this one, to find myself in Haloscan's page.

HaloScan.com provides a free, easy to use commenting and trackback system for weblogs and websites, allowing visitors to leave instant feedback. By copying and pasting just two lines of code into your site, you will enable your visitors to easily leave their feedback, opinion or a comment on the subject at hand.

The problem that I have with is simple, actually. The url that I got had the normal format of http get parameters, and allowed me unlimited access to the account. Including editing/deleting both comments and trackbacks.

What happened is that I trackbacked the story, and the author apperantly followed it from his management page to my blog, which caused my blog to send me a referrer email with the referring adress.

The big problem here is that just the URL is enough to warrant access to the account.
At a minimum, they need to use cookies or POST variables.

I informed both the author and HaloScan.com, we'll see what comes out of it.

This is the first security related bug that I discovered. :-)

[Update: It seems that you can mitigate this if you logout of your session]

time to read 1 min | 164 words

I just read this post: "Windows Server, Home Edition"

I agree completely, and I think that you could up the price for 1000$ and still get a lot of benefits from this. Build the OS, build the specs for this, and let the OEM crack their heads on the hardware's prices.

I would buy it, we have four PCs at home, and one laptop, so I feel the pain (change a password in one computer, and you need to change it in all (think printer and file sharing), argh!

In addition, if it came with the idea of home license at 150% of the price for all MS products, it would be a huge step to solve computer piracy. You would buy the hardware, and get with it WinXp & Office for 1000$ for 5 computers, and that would work.

I want this, I really want this!

time to read 1 min | 155 words

I'm currently using version 1.1.1799 and I'm discovering some very nice stuff about it.

  • Project > Export to HTML...
    This allows you to output the entire content of the project / combine (solution in SD's dialect) as HTML, including line numbers & highlighting.
  • Intergrated Assembly Analyzer which is either FxCop or a direct copy.
  • Integrated unit testing and NAnt support
  • Much better support for Boo, even though I didn't upgrade my BooBinding, just linked them to the new version.
  • Slicker, better look.

Really nice experiance.

time to read 2 min | 283 words

The best thing that I can say about #Develop is that it's easy to integrate new languages to it, and that it provide a very good user eperiance for C#.

The bad thing is that I began to encounter a strange bug in the text drawing on version 1.0.3.1768 (the latest right now).

You can see the problem here, this doesn't happens always, and not just for Boo code, but when it does happen (and I wasn't able to track why) it happens consistently, and nothing I can do (including setting double buffering off, which seems to fix it, but then render it unusable for other reasons, restarting the application, etc) didn't help.

Argh!

Update: I found the cause just 20 seconds from posting this article! I knew I'd a reason to blog :-)

The problem seems to be that I sometimes move one of my monitors to portrait mode, and SD doesn't seem to be able to handle this gracefully.

Moving to the second monitor in landscape mode fix this. And changing the first monitor to landscape mode will fix this as well.

I can't recommend portraint mode highly enough if you are going to be reading, especially if you are going to read code. There is so much more that you can see in portrait mode.

It isn't as good for writing code, mind you. This is mainly because all the sidebars (yes, I know I can move them) that takes up horizonal space and don't leave much room for the code.

FUTURE POSTS

  1. Using Vector Search for Posts Recommendations - about one day from now

There are posts all the way to Jul 24, 2025

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

Syndication

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