30, that is.
I've been snatched to birthday dinners all week, like it's not enough that Im on the most full-of-work time of my life. Non-urgent things (like improving AspView or taking a shower) got pushed aside. Just kidding, AspView is important enough ...
Sarit took me on a surprise vacation.
Mt. Hermon, view from Kefar Giladi:
That's me at the Zavitan pools next to the waterfall:
As for "next year resolutions" - hmm, I did not put much thought in that so I'm just scribbling:
1. Complete the bachelor's degree. High time I did that;
2. Give at least three talks. I really enjoy sharing knowledge, and it also pushes me to know more on things I consider myself proficient in. First talk is already scheduled for 14 May, at "The Developers Group" meeting on Microsoft Victoria, London UK. I hope there'd more to come;
3. Delve into Silverlight 2.0;
4. Learn F#;
5. Increase my NHibernate skills;
6. Find time to contribute to Linq For NHibernate;
7. Continue pushing Castle forward. The whole stack. It's just great;
8. Do more sports (cycling and/or swimming);
I have a html tag (image input) with id that looks like "delete-party-image".
On click, it should call XHR-ly to a server action, named DeletePartyImage.
Naively I did
var action = btn.id.replace('-', '');
which of course returned "deleteparty-image", because, as opposed to .NET's String object's Replace() method, this one (javascript's String.replace) only replaces the first occurrence.
Yeah, I already knew that, but have forgot it just when I needed it.
So for next time's sake - the way to do it in javascript is using a regex with global modifier:
var action = btn.id.replace(/-/g, '');
From the website:
Current version includes following features:
The coolest thing is the ability to spell check identifiers. I'd love it.
It's at http://www.agentsmithplugin.com/ and I found out about it on Castle's dev list (thx Victor)
It seam like every one (now including me) is posting excitingly about the new preview of ASP.NET MVC.
Probably to get traffic or whadever.
Most of those goes like "I usually do not do this, but hey- here's the link".
Justice Gray's post is different.
btw, as you are all excited about it, I'd use that to point you to something quite similar, more mature, that lets you "easily build MVC based applications in ASP.NET with routing, intellisense, and total joy, not to mention that it runs on .NET 2.0 " - that would be the MonoRail thing, preferably (by me and a few others) accompanied by AspView.
And since I didn't put the MVC p2 link here, I won't link to MonoRail and AspView. After all, if you're reading this, you probably have those links in your favorites ...
As I'm trying to avoid xml files as much as possible, when I do find the need to xpath, I always need to refresh my memory on the matter.
Today I've been working with kml files, and the need for some simple xpath queries came up, forcing me to do some trial-and-error in an area I don't really like ...
Next time I'll have Visual XPath to help me with that.
Another funny quote from Castle dev list:
Ayende (after a discussion on the lack of DynamicProxy documentation):
Yes, the underlying assumption that by the time you are done understanding DP you don't have the strength to write docs.
If you wanna grok that, then you can look at a small snippet from DP2 code on the blog's title, or browse the repo
We, at Castle, are occasionally getting bashed at the lack of documentation. I think that the area most users are complaining about is Windsor and MonoRail, (as these two are evolving in the most rapid way).
My personal view on the matter is that since the whole Castle stack, and especially MonoRail and Windsor, are all about "zero friction" and "Convention over Configuration", the easiest way is to lay hands on sample or oss code and apply that you your solution.
Anyway, in the Alt.NET uk thing that was at Conchango/London last month I've met one Symon Rottem. It appear that this guy know his way around tech-docs, and he had picked up that errand, and started putting effort in improving the overall documentation level for Castle, especially the User-Manual part (as the API actually is being generated and is quite good).
I'd also recommend his (young yet promising) blog. It's on my Google-reader blogroll for quite some time, and I really need to add "Import OPML" to my blog so I'd be able to update the blogs list on the side panel here.
It's so awesome.
I have about 1 minute for that, and the code is very self explanatory, so Im just doing a Copy&Paste from the Castle dev list:
Craig Neuwirt:
The recent changes to the kernel registration interface allows for custom registration strategies. I just added an AllTypesOf strategy to allow for the most common scenarios.
Here are some examples:
- Registering all controllers in the current assembly
kernel.Register( AllTypesOf<IController>
.FromAssembly( Assembly.GetExecutingAssembly() )
);- selecting the first interface as the service
kernel.Register( AllTypesOf<ICommon>
.FromAssembly(Assembly.GetExecutingAssembly() )
.WithService.FirstInterface()
);- Using custom configuration
kernel.Register( AllTypesOf<ICommon>
.FromAssembly( Assembly.GetExecutingAssembly() )
.Configure( component => component.LifeStyle.Transient
.Named( component.Implementation.FullName + "XYZ" )
)
);- Choosing types if they have a specific attribute (courtesy of LINQ)
kernel.Register( AllTypesOf<CustomerChain1>
.Pick( from type in Assembly.GetExecutingAssembly().GetExportedTypes()
where type.IsDefined(typeof(SerializableAttribute), true)
select type
));
Ayende:
You are taking all the fun out of Binsor :-)