Ayende @ Rahien

Oren Eini aka Ayende Rahien CEO of Hibernating Rhinos LTD, which develops RavenDB, a NoSQL Open Source Document Database.

You can reach me by:

oren@ravendb.net

+972 52-548-6969

, @ Q j

Posts: 6,857 | Comments: 49,162

filter by tags archive
time to read 1 min | 67 words

There have been a couple of items that people kept pinging me about. Here they are:

  • The Hibernating Rhinos webcasts are now offered as direct downloads, instead of torrent links. You can access them here.
  • I uploaded the Advanced NHibernate Workshop and it can be found here.  The code for them can be found here.
  • The blog now has an integrated search

Cuyahoga

time to read 2 min | 271 words

The Cuyahoga Project is a .Net CMS based on NHibernate. It used to be the best application to look for NHibernate patterns for beginners. Now I suggest people should look at this as a great sample app in general, not just for NHibernate patterns.

Among other things, it has been the engine behind ayende.com for the last four years or so. Along the way, it gave me very little trouble, and allowed me to manage my site without much trouble. A CMS, by nature, is an extensible system. But it is a tribute to Cuyahoga (and to what I am doing in the main site) that up until now, I didn't actually have to go into the code to make it do what I want.

I did my usual read-the-code-before-use, of course, but that was about it.

Today, I spent several hours implementing a very simple module in Cuyahoga. This module simply displays and redirect links. You can access the source for this module here, and general instructions about how to build Cuyahoga modules can be found here.

The reason for this post is that I had a change of mind regarding Cuyahoga. Before, I thought about it just as a good application. After, I think about it as a great framework. There is very little need for me to actually do anything in the module except what I actually want, and the overall design is clean, easy to understand and easy to follow. The hardest part was doing the UI, and that is as it should be.

But I do wonder about the name, why Cuyahoga?

time to read 1 min | 112 words

Well, looks like I don't have free bandwidth :-) The recent release of Hibernating Rhino #8 has made it clear, since it resulted in a bill.

Now I am looking for a solution for that. We are talking about files on the ~100 - 200 MB range, downloaded tens of thousands of times, over long period of time.

I thought about setting up a torrent server, but I can't find any viable torrent server for Windows, and I don't want to run the torrents from my machine. (I have a server available, if needed)

The other option is hosting it someplace that doesn't mind the bandwidth. Any suggestions?

time to read 3 min | 530 words

All of a sudden, I get an email telling me that my blog is down. I go and check it out, and it is indeed down. With the following error message.

Server Error in '/Blog' Application.


Could not load file or assembly 'App_Web_g5ujsn49, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.FileNotFoundException: Could not load file or assembly 'App_Web_g5ujsn49, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

I tried restarting the appication by renaming web.config, but it didn't work. The only thing that worked was changing the compilation debug mode from false to true, and then to false again.

Search for the error brought this post, and it looks like there my be a hotfix avialable.  The problem is that my scenario doesn't match the conditions on the hotfix, so I really don't know what to think. I am going to ping my host and check if there is anything that can cause file locks on the server (anti virus, indexing service, etc), although I would have expect this kind of error to occur much earlier if that was the case.

Code smell

time to read 2 min | 370 words

Why does it have to be like this?

if($F('<%= PolicyDescription.ClientID %>')==

    '<asp:Literal runat="server" Text="<%$ Resources:PolicyResources, DescriptionNotFound %>"/>')

{

    alert('<asp:Literal runat="server" Text="<%$ Resources:PolicyResources, EnterValidPolicyNumberOrDescription %>"/>');

    return;

}

 

time to read 1 min | 105 words

Bob Lewis (opps!) Bob Grommes is talking about Real Developers. Since he touches on some of the things that I have talked about recently, I want to make something clear. I don't think that WebForms are bad because you are not manually parsing the query string and form data yourself (to an unprotected buffer, in assmebly).

I like a lot of the things that ASP.Net has to offer. I don't like the attempt to put a Shambling Facade in front of the way things work to make the easy scenarios demoable, and the hard scenarios harder.

Upgrading site

time to read 1 min | 75 words

I am going to upgrade my site from Cuyahoga 1.0 to 1.5, the blog should not be affected, but the main site may be down.

Update: I have successfully migrated the site to Cuyahoga 1.5. The process was very painless, and I can see visibile improvement in the performance of the site.

I also fixed the problem with downloads from IE not working correctly. :-)

time to read 1 min | 111 words

Well, if you are reading this I have successfully moved to orcs web.

The transfer was fairly smooth, except they don't support MySQL. That wasn't an issue, as a matter of fact, since I am using Cuyahoga, it was a simple matter to change the config and make it work with SQL Server. I was worried about transferring the data, but it looks like MySQL has fairly strongly export capabilities, including into formats that SQL Server can consume.

Beyond that, it was a breeze...

Now I only have to wait for the DNS records to update.

time to read 14 min | 2647 words

I am posting this because I am extremely annoyed. I moved from my previous host because of reliability issues, I had to do it fairly quickly, so I didn't have time to really ask around and find out the best host. I went to webhosting4life because it was fast to setup, and I believed that they were big enough to be competent.

(Image from clipboard).png

I do not have a very big site, or a very complex setup, I run two applications, one needing MySQL, the other needing SQL Server. Neither of which is particularily tasking on the server.

As you can see, I had 6 outages in the last 20 days, some of them lasting mutliply hours. In nearly all cases, the reason that I was given was:

There is a routing issue on that server. Our tech is working on it now.

I could accpet it once or twice, but when it go to this level... below is a chat transcript of me and a tech from webhosting4life. It is complete with spelling mistakes and everything. As a result of this, and the evasive answers that I got, I am now on the lookup for a new host.

Notice that the operator simply left the chat when I tried to get additional information about the root cause of the problem. The chat equilent of hanging in my face! They have "Email our CEO" link on the help desk page, which I used to send a question regarding the frequent outages, I never even got a "Thank you for email us".

Powered by SightMax
Welcome to sightmax2.webhost4life.com. alvin will be right with you.
alvin
hello
Ayende Rahien
my database is down
Ayende Rahien
http://www.ayende.com/Blog/
Ayende Rahien
An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
alvin
could you please let me have a check.
Ayende Rahien
yes
alvin
There is a routing issue on that server. Our tech is working on it now.
alvin
Could you please check it out later? If it still have problem. please open a urgent ticket in our helpdesk system. Thanks.
Ayende Rahien
This is the 5th time that I heard about a routing issue with the servers.
Ayende Rahien
Each of those time, it was because I had noticed that my site was down!
Ayende Rahien
That is not an acceptable way of hosting.
alvin
I am sorry about this, we are working on the issue now. Thanks.
Ayende Rahien
How can I get an answer from an authorized source about this issues?
Ayende Rahien
I would like to know what it the underlying reason for the frequent outages and the actions taken to fix this.
alvin
Could you please open a ticket about this issue, and our senior tech will give more details to you. Thanks.
Ayende Rahien
304056
Ayende Rahien
I did
Ayende Rahien
How can I get guarantees about uptime?
Ayende Rahien
I am not expecting five nines, but I do expect more than 80%
Ayende Rahien
Hello??
alvin
Dear customer, it seems that there is a routing issue on the network that make the connection for your site can't connect to the database. Our technician are working on the issue now. Sorry for any inconveniences caused. If you want a quick fix, please change the connection string to IP first.
Ayende Rahien
Nice copy/past.
Ayende Rahien
Now, can you tell me why you are recommending that I would do something that you explicitly tell me NOT to do on your site?
Ayende Rahien
It concerns me that there is a canned response for this question.
alvin
As there a routing issue in the data center, and can let the web servers to reslove the domain name, and the quick fix is using IP to instead.
Ayende Rahien
And why does it occur every other day?
Ayende Rahien
I cam to you because you were supposed to be a proffesional hosting service, with good technicians that would NOT mess the routing in the data server every day
alvin was removed from the chat.
alvin has terminated the chat session.

 

FUTURE POSTS

No future posts left, oh my!

RECENT SERIES

  1. Production postmortem (26):
    07 Jun 2019 - Printer out of paper and the RavenDB hang
  2. Reviewing Sled (3):
    23 Apr 2019 - Part III
  3. RavenDB 4.2 Features (5):
    21 Mar 2019 - Diffing revisions
  4. Workflow design (4):
    06 Mar 2019 - Making the business people happy
  5. Data modeling with indexes (6):
    22 Feb 2019 - Event sourcing–Part III–time sensitive data
View all series

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats