Community

Lessons learned from building NHibernate Profiler – 24th Feb, London

Along with the NHibernate course that I’ll be giving in London next month, I’ll be doing a free session about lessons learned from building the NHibernate Profiler. I am going to talk about architecture, internal design (including showing off the code), distributed team, release per commit, making technical decisions based on business concerns, building real world application infrastructure, etc. This is a free event, but the number of places is limited, so please register in advance.

posted @ Wednesday, February 03, 2010 12:00 PM | Feedback (10)

The paradox of choice: best of breed or cheapest of the bunch

Roy Osherove has a few tweets about commercial tools vs. free ones in the .NET space. I’ll let his tweets serve as the background story for this post: The backdrop is that Roy seems to be frustrated with the lack of adoption of what he considers to be better tools if there are free tools that deal with the same problem even if they are inferior to the commercial tools. The example that he uses is Final Builder vs. NAnt/Rake. As someone who is writing both commercial and free...

posted @ Sunday, January 24, 2010 12:00 PM | Feedback (30)

What should I talk about at QCon London?

I might be speaking at QCon London, but I am not sure what about. The requirements are: This track intends to showcase some of the practitioners, tools and technologies to provide an awareness of something other than the Microsoft mantra for software development on .NET Each talk should show at least one thing that is new or unusual for the masses on .NET to know or use and compare it to the status quo. It should provide some in depth examples or code around that comparison. In the cases where the...

posted @ Wednesday, December 02, 2009 11:30 AM | Feedback (11)

Applying YAGNI in Impleo

The very first draft of Impleo (my CMS system), was based on sound design principles. It had good separation between the different parts (it actually had 4 or 5 projects). At some point I took a look at the code and couldn’t find it. There was a lot of infrastructure, but nothing that I could actually point to and say: “This is the application logic”. I decided to take a different approach, created a new WebForms project, and started everything from scratch. I ported some of the code from the original solution, but mostly we just built new stuff....

posted @ Wednesday, November 04, 2009 12:00 PM | Feedback (16)

Impleo – a CMS I can tolerate

If you head out to http://hibernatingrhinos.com/, you will see that I finally had the time to setup the corporate site. This is still very early, but I have a lot of content to add there, but it is a start. Impleo, the CMS running the site, doesn’t have any web based interface, instead, it is built explicitly to take advantage of Windows Live Writer and similar tools. The “interface” for editing the site is the MetaWeblog API. This means that in order to edit the site, there isn’t any Wiki syntax to learn, or XML files to edit, or...

posted @ Sunday, October 25, 2009 5:50 AM | Feedback (15)

JAOO: OR/M += 2

Just finished doing this presentation, I think it went very well, although I planned to do a 45 minutes session + 15 questions but I ended up hitting the session time limit without covering everything that I wanted. You can get the source code that I have shown in the presentation here: http://github.com/ayende/Advanced.NHibernate You can find the PDF of the presentation here: http://ayende.com/presentations.aspx

posted @ Wednesday, October 07, 2009 1:10 PM | Feedback (9)

JAOO: Evolving the Key/Value Programming Model to a Higher Level

Billy Newport is talking about Redis, showing some of the special APIs that Redis offers. Redis gives us first class List/Set operation, simplify many tasks involving collections. It is easy to get into big problems afterward. Can do 100,000 operations per second. Redis encourage a column oriented view, you use things like: R.set("user:123@firstname", "billy") R.set("user:123@surname", "newport") R.set("uid:bewport", 123) Ayende’s comment: I really don’t like that. No transactions or consistency, and this requires lots of...

posted @ Monday, October 05, 2009 12:49 PM | Feedback (0)

JAOO: Working Effectively with Legacy Code 2 – Michael Feathers

I have a tremendous amount of respect to Michael Feathers, so it is a no brainer to see his presentation. Michael is talking about why Global Variables are not evil. We already have global state in the application, removing it is bad/impossible. Avoiding global variables leads to very deep argument passing chains, where something needs an object and it passed through dozens of objects that just pass it down. We already have the notions on how to test systems using globals (Singletons). He also talks about Repository Hubs & Factory Hubs – which provide the scope for the...

posted @ Monday, October 05, 2009 11:39 AM | Feedback (6)

Do you sign the default contract?

This is just something that came up recently in a mailing list, we were talking about copyright, ownership and such. The topic of who owns the code you write on your own time (and on your own machines) came up. The opinion of some people was that the employer may own the code even under those circumstances. It seems that it isn’t usually part of the law (that depend on where you are at, of course), but it is part of standard employment contract templates. When I started looking for a job, I insisted on taking the...

posted @ Saturday, October 03, 2009 12:32 AM | Feedback (19)

Progressive.NET event in Stockholm

I think that it is better to forget to blog about an event than to forget to show up for the event, so I am improving. I am currently in Stockholm, Sweden, for the Progressive.NET event that starts tomorrow. I am going to do an Intro to NHibernate and two runs of my Advanced NHibernate workshop. Should be fun :-)

posted @ Wednesday, August 26, 2009 2:36 PM | Feedback (6)

The radical idealist problem

This is merely a simple observation. I had a chance to talk with a few people recently, and I heard something that really bothered me. Sadly, this is not a new thing, but it is still extremely annoying and disrespectful. Basically, the problem is that concerns that are being brought up are dismissed as unrealistic, idealist and non workable in the real world. The people who bring up those concerns are also dismissed as radical tree huggers with no concept of how to build things in the field. The reason that I think this is stupid, insulting and...

posted @ Wednesday, August 19, 2009 12:07 PM | Feedback (34)

JAOO 2009

I will be speaking at JAOO 2009, talking about advanced OR/M techniques and giving a tutorial about Rhino Mocks. I spoke at JAOO 2007, and had a great time there. The content was superb and the attendees and the crew were great. I remember sitting at a session with Joe Armstrong talking about Erlang and finally getting things that were annoying just beyond my grasp, and that was one of several sessions that left me wanting more. You can actually watch me and Hammett’s session about Active Record in JAOO 2007. This year, there are two things...

posted @ Wednesday, August 19, 2009 11:25 AM | Feedback (2)

Benchmark cheating, a how to

I already talked about the benchmark in general, but I want to focus for a bit on showing how you can carefully craft a benchmark to say exactly what you want. Case in point, Alex Yakunin has claimed that NHibernate is: NH runs a simple query fetching 1 instance 100+ times slower when ~ 10K instances are already fetched into the Session I am assuming that he is basing his numbers of this test: And you know what, he is right. NHibernate will get progressively slower as more items are...

posted @ Monday, August 17, 2009 1:15 PM | Feedback (76)

Unethical behavior

Ben is pointing out something that I find flat out infuriating, a TFS MVP had removed a comment talking about SVN & Git from his blog with the following explanation: “No offense, but I deleted your comment.  I make way too much $$ on Team System training & consulting to go publicly plugging alternative options.” I am… disappointed. I started to write shocked, but it is not the first time that I have seen stuff like that happen. What bothers me even more, if you can’t deal with critics on something that you...

posted @ Monday, July 27, 2009 8:27 PM | Feedback (28)

Castle Windsor 2.0 RTM Released

Some would say that it is about time, I would agree. Windsor might not be the OSS project in pre release state for the longest time (I think that the honor belong to Hurd), but it spent enough time at that state to at least deserve a honorary mention. That was mostly because, although Windsor was production ready for the last three or four years or so, most of the people making use of it were happy to make use of the trunk version. If you will look, you won’t find Windsor 1.0, only release candidates for...

posted @ Tuesday, May 05, 2009 1:22 AM | Feedback (33)

Vienna Beers night

A bunch of us will have beers in Vienna on Tuesday (5th Mai) at about 18:30 and would welcome you to join us! I also don't know if telavivbeach has opened, but i know that "Hermes Strandbar" has opened. If the weather is fine you can find us there: ttp://www.strandbarherrmann.at/ or if it's cold/rainy at Bar Vulcania located here: http://tinyurl.com/dcq4t7 Anybody is welcome to join us. Thanks for Christoph for setting this up.

posted @ Thursday, April 30, 2009 12:17 PM | Feedback (9)

It is either a traveling schedule or a train wreck…

So, after a delicious month at home, mostly spent resting I am back to traveling again. This time my traveling schedule is so complex that I need to write it down. Next week (04 May – 08 May), I am going to be in Vienna, Austria. Doing some work for a client. If someone want to organize a beer night, or something similar, I open for that :-) The week after that (11 May – 13 May), I am going to take part in Progressive.NET tutorials in London, UK. There are quite a few good speakers there, doing...

posted @ Monday, April 27, 2009 10:12 AM | Feedback (7)

Using Active Record to write less code

The presentations from Oredev are now available, and among them is my talk about Active Record. You can watch it here, the blurb is: What would you say if I told you that you can stop writing data access code in .Net? Aren't you tired of writing the same thing over and over again, opening connection, querying the database, figuring out what to return, getting back untype data that you need to start putting on the form? Do you really see some value in writing yet another UPDATE statement?The Active Record framework allows you to...

posted @ Wednesday, April 22, 2009 7:56 PM | Feedback (23)

How Microsoft should release guidance?

Phil Haack has a post about code sample taxonomy, in which he asks how Microsoft can ship high quality sample apps: Obviously, this [shipping high quality samples] is what we should be striving for, but what do we do in the meantime? Stop shipping samples? I hope not. Again, I don’t claim to have the answers, but I think there are a few things that could help. One twitter response made a great point: a reference app is going to be grilled. Even more if...

posted @ Saturday, April 18, 2009 4:50 PM | Feedback (9)

Recording of my SOLID presentation given in Yekaterinburg University

First, I want to give a hat tip to Derick Balley for creating a truly awesome presentation, which is what I used during this presentation. I am afraid that the sound quality isn’t the best that you have ever heard, but it is mostly audible, so I decided to put it up anyway. I think it was a really good presentation.  You can get it here.

posted @ Sunday, March 22, 2009 5:10 PM | Feedback (8)

I don’t speak Russian, but I do speak code

Here is a snippet from a blog post describing a lecture I gave yesterday in the Ural University: Imagine him [Ayende] giving a public lecture at the Ural State University and demonstrating one of the numerous code snippets he prepared. Suddenly a guy (I think his name is Alex) interrupts him and tries to point out an error in the code. Unfortunately, Alex fails to express himself in English, and instead just mumbles incomprehensibly. After two more attempts, he gives up and explains the bug to the audience — in Russian. But before anyone has a...

posted @ Friday, March 13, 2009 3:39 AM | Feedback (10)

Progressive.NET Event

Skills Matter is co-organising The Progressive .NET Tutorials with some of us. This will be a really exciting 3 day long event with 2 tracks featuring half day and full day Tutorials by me, David Laribee, Gojko Adzic, Hammet, Ian Cooper, Mike Hadlow, Scott Belware and Sebastien Lambla. For the full programme and description of the tutorials, check out: http://skillsmatter.com/event/open-source-dot-net/progressive-dot-net-exchange If you are going to book before Feb 28th, just put SM1368-622459-33L (in the Promo Code field) and  pay just £350 (normal price £1000). I hear that the tickets are going fast, so if you...

posted @ Saturday, February 21, 2009 7:21 AM | Feedback (2)

The Teleprompter Presentation Anti Pattern

A few days ago an email hit my inbox. It was a request for speakers in an event. That in itself is no cause for alarm, I am getting quite a few of those. What was strange about this email was the... stipulations that it had. Basically, it listed the available topics, stated that all materials for the sessions were prepared (presentation, prep videos, etc), so all the speaker had to do was to show up, because no real experience was required. I cringed when I saw that. I consider such a thing to be a practice is deceiving the...

posted @ Thursday, December 11, 2008 8:43 AM | Feedback (5)

How to get good people?

If I knew the answer, I would bottle it and would be rich. (insert mad laugher) Lacking a bullet proof answer, the following are my observations regarding this issue. A while ago I was the chief interviewer in my company, and I have had the chance to interview literally hundreds of people. My own conclusions match Joel from 2005. The good people are already employed elsewhere, and are likely to be happy there. If they aren't happy, they tend to have the connections to find a job based on their known skills and experience. In other words, unless something like the bubble...

posted @ Sunday, November 30, 2008 6:57 AM | Feedback (10)

Why Øredev rocks

I spent a great day at the Oredev conference, and even a greater evening. It started with a full day in the ALT.Net track, in which we agreed that ALT.Net shouldn't actually exist, and the main purpose of ALT.Net is to change its nature from alternative practices to merely a label for the set of principles and practices that we believe in. I think that the name ALT.Net will change its meaning in the near to medium future, and change from being alternative to being an alternative to the mainstream .Net culture to subsuming the .Net culture, at least the high end...

posted @ Friday, November 21, 2008 4:34 AM | Feedback (5)

A good conference

One indication of a good conference is that it completely swallow the entire time that you have. Oredev excel by this criteria. I am busy all the time, and having fun while doing so.

posted @ Thursday, November 20, 2008 10:57 AM | Feedback (2)

I still think that personal attacks are NOT cool

Phil Haack response to my criticism about the ASP.Net MVC routing API really bothers me: We spent a lot of time thinking about these design decisions and trade-offs, but it goes without saying that it will invite blanket criticisms. Fortunately, part of my job description is to have a thick skin. ;) In part, by favoring usability in this case, we’ve added a bit of friction for those who are just starting out and have trouble using Google. Is this an appropriate response? I don't think that I threw a blanket criticism there. In fact, I was very cautious in...

posted @ Friday, November 07, 2008 1:53 AM | Feedback (23)

Coddling is consider harmful

Recently there has been a lot of discussion about how we can make development easier. It usually started with someone stating "X is too hard, we must make X approachable to the masses". My response to that was: You get what you pay for, deal with it. It was considered rude, which wasn't my intention, but that is beside the point. One of the things that I just can't understand is the assumption that development is a non skilled labor. That you can just get a bunch of apes from the zoo and crack the whip until the project...

posted @ Tuesday, September 23, 2008 10:12 PM | Feedback (51)

Choose a workshop

I am going to give a workshop or two at the ALT.Net Austin in the end of October. Those will be free (as in beer) and will be recorded & available on the net afterward. Right now I want to do on on writing DSLs, but I have another which is basically blank at the moment. I have too many subjects that I can talk about, and too many levels at which I can talk about them. So, this is your chance to help me. If you are going to be there, what would you like to have...

posted @ Friday, September 05, 2008 3:31 AM | Feedback (27)

Talks Abstracts

This is an update of an old post of mine, listing all the talks that I am thinking of / had prepared. I am using this mostly as a way to centralize all my talks. Comments are welcome. Level 200: Producing Production Quality Software Working software is no longer the only thing that we need to produce. We need to create a software system that has a chance of surviving in the cruel world of production system, outside the clean room and sterile environment of development and QA. Understanding bottlenecks in the system, preventing cascading failures and recovery strategies have ceased being...

posted @ Saturday, May 10, 2008 3:09 PM | Feedback (0)

Twitter

Still not sure that I figure out what is going on, but I am here: http://twitter.com/ayende

posted @ Sunday, April 20, 2008 11:24 PM | Feedback (5)

The MVC Storefront

Rob Conery has been doing a screen cast series, showing how to build an application using MS MVC. He has also decided to not only take care of application building, but do it in a way that many members of the community, myself included, feel passionately about. Using TDD, DDD concepts, etc. Rob freely admits that he is exploring a lot of ground as he is producing those screen casts, and I think that he is doing a good job. There were several instances of overly harsh critique about the screen casts, which do injustice to the work...

posted @ Wednesday, April 09, 2008 2:25 PM | Feedback (19)

With the blinders off

Scott Bellware is talking about Gloryhounds: Gloryhounds are often already visible members of the community.  Upon achieving a certain level of authority in their particular specialization, and a sufficient level of visibility, they rally to an impending new technology release, and work with the benefactor to bring a semblance of impartial evangelism to the community while the benefactor provides the Gloryhound with opportunities that bolster his status through promotional engagements supporting the new technology. Scott has a decidedly... un-commercial streak, which I can both appreciate and disagree with. I appreciate it because I have been flat out lied...

posted @ Tuesday, November 13, 2007 12:15 AM | Feedback (4)

Larry Lessig: How creativity is being strangled by the law

I just watched this, and I am impressed. More than the content of the talk itself, it is the delivery of this talk that is really impressive. This is not a talk, this is a show, and Larry is a talented actor.

posted @ Saturday, November 10, 2007 3:07 PM | Feedback (3)

High performance domain models

Udi has an interesting presentation that I recommend that you go through. He is going to present it at Tech Ed (Thu Nov 8 13:30 - 14:45 Room 117). Most of the ideas are familiar to me because I have spoken to him about them before, but it represent new concepts to most people. I would preface his suggestion with the usual warning about designing for performance. Udi's points are about big systems, so consider if they are appropriate to your scenario first. A pal of mine once told me that he designs systems for an order of magnitude increase in...

posted @ Saturday, October 27, 2007 3:30 AM | Feedback (0)

Well, it started life as an IoC Container ,but then we added this bit...

I hate planning. This comes from a long experience at all the problems that raise when you have faulty planning. So, today I intended to have the class write an IoC container ,but somehow, still not sure how, we ended up building the trivial OR/M imp https://rhino-tools.svn.sourceforge.net/svnroot/rhino-tools/trunk/SampleApplications/Course/SampleORM  Let me say first that this is sample code, written in the span of a few hours, off the cuff coding, etc. Not meant for production... It doesn't even have identity map or unit of work.  But, it shows that it takes only a few hours to make a significant improvement in the way you work,...

posted @ Thursday, October 18, 2007 9:07 PM | Feedback (12)

Microsoft Most Valuable Professional

Visual Developer - Visual C# I am not that much of a visual guy, but I can leave with that. I have been told some horror stories about mismatching skills and distinctions. Many thanks for Justin Angel, for all the effort he put into it.               .

posted @ Wednesday, October 03, 2007 5:06 PM | Feedback (31)

Random Impressions from JAOO: Web Forms on the Enterprise

When Hamilton and me gave the MonoRail talk to the Enterprise Application track, we asked how many people were .NET vs JAVA vs Ruby. The results where roughly 43%, 43% and 4%, respectively. The interesting part was when I asked how many of the .NET guys used Web Forms, almost all of them said that they do. Then I asked how many enjoyed using Web Forms. No one raised their hands.

posted @ Friday, September 28, 2007 7:24 AM | Feedback (2)

Random Impressions from JAOO: Agile Adoption is not relevant

It is not relevant because it is a thing of the past. Quite a few of the people that I met there, both speakers and attendees are taking agile and its practices as granted. As in: Well, obviously this is how you build a software project, how can you do it any other way? My company doesn't do agile development, lots of background here, and I am not going into it, and my own efforts seems both puny and diminishing values at some points, it was incredible to see people with that kind of mind set, and to know that...

posted @ Friday, September 28, 2007 7:20 AM | Feedback (0)

JAOO - Day 3

We started with the MonoRail talk, which went fairly well. That wasn't recorded, but Hammett and I had recorded the rehearsal, so I think we will publish that. The next session was about choosing a web framework, and the focus was on Java frameworks. Interesting to see the design decisions that they take, although I remain firm in my opinion that Java has too much XML involved. The next session that I took part of (again, had to drop off because I was feeling very bad) was about the Guradian UK site, and how they manage to scale it up....

posted @ Thursday, September 27, 2007 11:09 AM | Feedback (0)

JAOO - Day 2

We had the wierd Eric Meijer keynote, and then me and Hamilton gave the Active Record talk. It went very well, I think, although we could have probably used twice the alloted time :-) It was recorded, and should probably appear on InfoQ sometime soon. Later we went to Eric Evans talk about Strategic Design. I read the blue book, and I thought I understood it, but just listening to Eric talk for an hour was quite an eye opener in many respects. After that talk I basically crashed, I had a terrible cold that was a real PITA when...

posted @ Thursday, September 27, 2007 10:59 AM | Feedback (0)

Erik Meijer on Democratizing the Cloud

This talk was the keynote for yesterday, and I came out of it with a profound sense of shock. If this is where Microsoft is headed, then they are in a real problem. Some of the things that really bothered me: Don't learn anything new, let Microsoft chew it up for you first. Let us compile our C# to JS (good) and then just make some of the calls a remote ajax calls (bad).I would have thought that they would have learned from the DCOM debacle, if nothing else. Location Transperancy is a Bad Thing.In general, Too Much...

posted @ Wednesday, September 26, 2007 9:03 AM | Feedback (11)

DSL Talk review

Soren has posted a review on my DSL talk here, thanks!

posted @ Wednesday, September 26, 2007 8:56 AM | Feedback (0)

Writing Domain Specific Language in Boo

The slides & code from my JAOO talk can be found here.

posted @ Monday, September 24, 2007 11:11 PM | Feedback (7)

JAOO - Day I

Started the day in a presentation from Robert C. Martin, which was very good, both in content and delivery. Moved on to give a talk about building DSL with Boo. It went well, as far as I can tell, but I was the one giving it. After that I was at the Erlang talk, which is quite probably the best one that will be here. Joe has created the language and wrote the book about it, so he certainly knows his stuff, and he is a Character with a capital C. I am not sure if it is a show...

posted @ Monday, September 24, 2007 5:41 PM | Feedback (7)

And off to JAOO we go

I am going to leave for JAOO in a few minutes, see you next in Denmark :-)

posted @ Saturday, September 22, 2007 8:39 PM | Feedback (2)

I will not be at the ALT.Net conference

Yes, it sucks, and I feel really bad about it, but I will not be able to be at the ALT.Net conference. The main reason is that I was stupid and didn't take into account how long it will take to get a visa, and I also forgot that right now there is a huge concentration of holidays, so the embassy is apparently swamped with requests, and taking longer to process them even than the usual. :-(

posted @ Friday, September 21, 2007 10:37 PM | Feedback (8)

Speaking at JAOO

Consider this a public service announcement: I am going to be at JAOO next week, talking about building DSLs with Boo and about Castle along with Hammett.

posted @ Friday, September 21, 2007 10:34 PM | Feedback (1)

SonicCast #3 - It is not MVC

I have finished watching SonicCast #3 - All About MVC, the premise of the webcast is to show MVC pattern in SubSonic.  I don't think that this is what is happening there. Now, for fair disclosure, I am not a SubSonic user, and I am an active member of the "competing* " projects, Active Record & MonoRail. I thought about not posting this, because of the inevitable flames that criticizing another project will bring, but I think that the subject is important.  * Competing is not how I see it, parallel project would be a closer way to describe...

posted @ Wednesday, August 01, 2007 7:12 AM | Feedback (14)

On Competition, NIH and Good Software

Jdn doesn't agree with me: .NET OSS developers *can't* have it both ways.  They can't complain about Microsoft 'reinventing the wheel' and not make it about a competition.  It is the same thing, when it boils down to it.What is the complaint otherwise?  That Microsoft shouldn't come out with something that mirrors OSS efforts unless it is 10 times better?  10 times better according to whom?  You?  The OSS police? [...snip...] Your own and Jeremy Miller's own blogs about 'building a better CAB in an hour' *reek* of 'it is a competition.'I do not doubt that you do...

posted @ Thursday, July 19, 2007 12:29 AM | Feedback (4)

VB User Group Talks Summary

Yesterday I gave two talks to the VB User Group, about TDD and Rhino Mocks. I had a lot of fun, and got to embarrass myself in public, trying to code in VB. (When I need to ask the crowd for the array literal syntax, in the middle of the lecture,that is trouble...) There were a lot of interesting questions, and I got to see how mocking tests would look like in VB.Net. A lot of the methods names in Rhino Mocks are reserved words in VB.Net, which surprised me, because I got VB.Net code from people using Rhino Mocks,...

posted @ Friday, July 06, 2007 12:59 AM | Feedback (3)

Storming Castle Windsor & NHibernate - Code & Presentation

Those can be found here, didn't manage to get a recording, though. Update: Now the presentation is in PDF format.

posted @ Wednesday, July 04, 2007 8:36 AM | Feedback (10)

Visual Basic User Group Talks, Next Wendesday

Oh, another thing that is worth mentioning is that I am going to talk about Test Driven Development and Interaction Based Testing at the VB.Net User Group meeting next week (Wendesday, 04 July, 2007). More details can be found here: http://www.renaissance.co.il/ivbug/ The first one is: Getting to know Test Driven Development & Design You have just finished implementing the new WizBang 2.0 feature, and...

posted @ Thursday, June 28, 2007 7:08 PM | Feedback (0)

DevTech session: Storming Castle Windsor & NHibernate

I am announcing this a bit late, but I am going to give a talk about the Castle Winsdor & NHibernate on Thursday next week (03 July 2007).The anouncement has an amusing typo, I am afraid, which bring to mind some horrifying options The talk will be at DevTech, a conference that my company is arranging, so a lot of the people that I work with are going to give interesting talks. You can get more details here. Oh, and apparently I...

posted @ Thursday, June 28, 2007 7:00 PM | Feedback (1)

OR/M Challenge Screen Casts Delayed

About two weeks ago I asked how I should handle the OR/M Challenge from Rob, I got a lot of positive responses about it, and I fully intend to produce at least one or two screen casts about the subjects, but after trying to find a window where I have both the time and inclination, I must concede that it will may take a while. Just to give an idea, an hour screen cast takes anything between three hours (best case scenario) to three days to make. Finding such a big stretch of time where I actually have inclination to...

posted @ Monday, June 25, 2007 11:29 PM | Feedback (0)

Stories form the class room: Picking the target for BackgroundWorker

I am teaching BackgroundWorker at the moment, and I gave two demos of using it, one with printing and one with the classic long request to the database. For the student work, I needed to find another sample that I could give them. I tend to like reasonable examples, rather than Hello world ones. I build them the following code to excersize: WebRequest req = WebRequest.Create("http://www.msdn.com/"); using (WebResponse response = req.GetResponse()) {     string homePageHTML =         new StreamReader(response.GetResponseStream()).ReadToEnd();     textBox1.Text = homePageHTML ; }   At first I tried Google, but that was too fast to be a good demo, msdn.com takes ~15 seconds to get everything from...

posted @ Monday, June 25, 2007 8:54 PM | Feedback (2)

Influencing the direction of the .Net Framework

This comment by Stefan Wenig really made me think: ...the elephant in the kitchen is the fact that there is no process for discussing c# enhancements within the community before everything is written in stone. The way you're designing C# seems to work better in some aspects than the java community process, so I'm not sure how far you should really go. But getting feedback and discussing suggestions early is definitely overdue. The community seems to have very little influence on the choices made at Microsoft. We can make suggestions in MS Connect and for all intents and purposes...

posted @ Friday, June 08, 2007 12:44 AM | Feedback (10)

Ensure the Scalability of the Code Base

The title comes from one of the students, when asked why we should choose an MVC approach to building simple UI. After he said that I repeated that six or seven times, I like this term. As an aside, I am having a lot of fun just pumping out all the odd & ends that I have tried, and it is interesting to see have to explain to beginners the reasoning behind what drive me decisions. By the way, the code for the sample application is here: https://svn.sourceforge.net/svnroot/rhino-tools/trunk/SampleApplications/Course And you can see what we have done so far here: https://svn.sourceforge.net/svnroot/rhino-tools/trunk/SampleApplications/Course/Docs/The_Library_Application.pdf...

posted @ Thursday, June 07, 2007 11:39 PM | Feedback (3)

How did I got to this list?

posted @ Thursday, June 07, 2007 11:24 PM | Feedback (0)

It is not a war, not even a hot argument

From Kevin, the OR/M Wars: Now there are is a lot of uproar at the moment from the NHibernate Mafia (as termed in DotNetRocks) slamming everything that isn't there WAY. First, Richard & Carl, I believe the terms belongs to you - I am going to send a triple nested cursors with Cartesian products to your database as a revenge. Second, I am rarely the kind of guy that would simply ignore something that he doesn't agree on. I don't think that there is any slamming involved in the discussions we are having, merely an opinionated argument, and I like...

posted @ Thursday, June 07, 2007 8:22 AM | Feedback (5)

I left my psychic hat at home today

Person: There is an error!Me: That is nice.Person: But there is an error!Me: And I already congratulated you on your observational prowess.Person: But there is an error!!!Me (getting tired of having the same conversation the 4th time today): I left my psychic hat at home today, if you won't tell me what the error is, I won't help you.Person: But there is an error!!! There are very few cases where I can actually help someone without seeing at least the error. I am pretty good at doing mental model, but I draw the line at mental debugging over a phone...

posted @ Wednesday, June 06, 2007 11:17 PM | Feedback (0)

Microsoft vNext: Where is the buzz?

About two years ago, we were eagerly expecting .Net 2.0, I remember it as a really exciting period, with a lot of new ground to cover and a lot of goodies. The community was really looking forward to the release. Now, however, we are in about the same time frame for a release, there are just as many, if not more, goodies to share, but I don't see a lot a lot of buzz around it. Oh, people talking about it, and it is something that would be good to have, but if I put the level of excitement for...

posted @ Wednesday, June 06, 2007 11:08 PM | Feedback (12)

My Visual Studio Settings

Apperantly there are some people who like my color scheme. I am currently favoring a lot of contrast on the screen, it makes me feel like I am working on a child game. Anyway, here it how it looks like, and you can get from http://www.ayende.com/Files/ayende-vs-settings.zip  

posted @ Saturday, June 02, 2007 9:07 PM | Feedback (10)

The Complexity Suppression Disorder

So, applying the separation of concerns principal to blog posts again, I wanted to talk about another aspect that had me thinking as a result of teaching .Net. I literally had no idea how complex development was until I had to stand in class and explain the tradeoffs for the various approaches for implementing things. Several things that kept popping up are: Concurrency Multi thread safety (in the abstract, at least) - That one is easy, don't do multi threading. Failing that, don't do multi threading on shared state. Failing that, welcome to the fun world of multi...

posted @ Saturday, June 02, 2007 1:21 AM | Feedback (0)

Be Silent! They are Agile!

Yes, this is another response to Sam's post, and this time is has nothing to do with the CAB or P&P. This is about a few things in Sam's post that really bothered me: Let's leave out the fact that three of my best friends in the world designed and implemented CAB. That's just the personal stuff. My problem is simply that many of the assumptions and things they wrote are patently false. They don't know these people, they don't know CAB at all. ...

posted @ Saturday, May 26, 2007 3:21 AM | Feedback (24)

Sam Gentile is angry with me

Probably because he has a point. He took issue with my statement about the CAB, being too complex for the job it is supposed to do. Perhaps the thing that I regert the most is that I don't have truly constructive criticism to offer in this subject. I can understand why "I don't think that this is good" can be seen as offensive. Before I respond to Sam's post, I would like to mention that I do believe that we can have a reasonable discussion without attacking each other, even if I decide...

posted @ Saturday, May 26, 2007 3:05 AM | Feedback (8)

When does it make sense to reinvent the wheel?

Well, when the wheel is a square, of course: Adi asks about my seemingly inconsistent behavior regarding when to roll your own, and when to use the stuff that is already there:I find it difficult to understand Oren. Sometimes he'd rather write his own code from scratch (Rhino mocks), but he keeps preaching the use of known OSS solutions, such as Rails, NHibernate, or the Castle project. What can I say, I have a Pavlovian conditioning with regards to software, I tend to avoid software...

posted @ Tuesday, May 22, 2007 12:42 AM | Feedback (10)

Pictures from DevTeach

I actually took a camera, but I forgot to take any pictures, so I am mostly reliant on Flickr for photos. Here are a couple good ones: Roy Osherove preaching Agile. Beth Massi, Nick Landry and Scott Bellware - demonstrating Shared Ownership

posted @ Sunday, May 20, 2007 5:22 PM | Feedback (0)

Roy Osherove, It is Time for Violence

No, I don't intend to beat him up, I just really like the title :-) After infecting me (and pretty much everyone else) with witty songs about development, Roy has released one of his songs: Time for Violence. It is my favorite song of the three or four that he had performed at DevTeach, and I keep humming to myself. Probably because it reflect so well the way that I think about "some databases" that I won't mention by name.

posted @ Sunday, May 20, 2007 4:31 AM | Feedback (0)

OR/M Smack down Photos

Take a look at this and this. In fact, take a look at the whole set. Thanks for John Bristowe for taking those.

posted @ Thursday, May 17, 2007 5:28 PM | Feedback (9)

Self Selecting Readers

Jeremy Miller, me and Udi Dahan had a discussion about the echo chamber effect. Basically, we tend to talk to a lot of people who either agree with us, or in complete disagreement. Either way, the people we tend to talk to are those who are involved. I was at a client two weeks ago (trying to tell them that a single remote debug server for 20 developers is not practical) and I saw people still doing active development in ASP classic. I went to lunch with them and tried some conversation avenues, but they...

posted @ Wednesday, May 16, 2007 3:28 PM | Feedback (11)

I want my Sergeant back - Or, How I learnt to speak

About 6 years ago, I was a very yound soldier, serving as a warden at Prison 6, Company C. For those of you who aren't familiar with the inner details of Israel's prisons, Prison 6 is a military prison for IDF soldiers. Reasons for getting to prison range from showing up with unshined boots to drug use to selling arms. Company C was where the more dangerous inmates where held. I didn't get the people who forgot to shine their shoes, I got the drug dealers and stollen arms sellers. Anyway, back to...

posted @ Friday, May 11, 2007 9:55 AM | Feedback (7)

ALT.Net: It is not us vs. them...

Dave Laribee had a great post where he details some of the qualities of an open minded developer. He also coined the term ALT.NET. A few others has taken this idea and extedned and bulleted it. I really don't like it. I have two main issues with making this idea into a series of boolean bullet points. Saying things like "An ALT.NET developer would be using Castle Windsor before Enterprise Libraries ObjectBuilder.", or "An ALT.NET developer was using NHibernate before the Entity Framework." is giving the wrong impression. It gives the impression...

posted @ Tuesday, May 01, 2007 11:12 PM | Feedback (9)

Data Migrations Woes

For some reason, customers insist on putting their data in a database, which is all fine and dandy. But then they also insist on taking it out! Which is hardly fine at all. The fun part starts when the source is a little known database called Oracle, and the destination is a new arival from out of town, who goes by the nick name SQL Server. Fun stuff that I run into today: PK in Oracle are Number, in...

posted @ Tuesday, March 27, 2007 7:21 PM | Feedback (2)

.Net Communit Process

Here are some interesting thoughts in the subject. And some very interesting comments and replies from ScottGu replying the open letter that David posted.

posted @ Tuesday, March 27, 2007 1:47 PM | Feedback (0)

Microsoft Developer Academy Videos are now online!

You can get there here. This include my own lecture, it is in Hebrew, so I am afraid that most of you will not be able to make sense of it. I listened to a bit of it and I say "Eh" and "Um" too much. If you want to grab the code/slides, search for "Inversion of Control - Breaking Up The Dependencies".

posted @ Thursday, March 08, 2007 10:02 PM | Feedback (1)

Israeli Blogger Dinner

In on this Wendsday, I am going to be there. Leave a note on Omer's blog if you are going to show up.

posted @ Monday, February 12, 2007 1:14 AM | Feedback (1)

What can make a great programmer?

I got several comments about my Can you learn to program better? post, mostly asking what I thought were the things that helps programmers makes the leap from average joe programer to the uber developer. Harry had posted in the comments a great explanation:... from observing people I consider 'Greate' and 'OK' programmers, I have my theory about why most programmers didn't make the jump. The most important fact is that for every improvement they are usually a 'pattern' or 'paradigm' shift, rather than single improvement. What I mean is,...

posted @ Saturday, February 03, 2007 11:08 PM | Feedback (5)

Presentation/Code from Microsoft Academy

Here you can find both code and presentation from my recent talk, it is in Office 2007 format, because if I try to convert it to 2003 it gets to 25Mb. Have fun,  

posted @ Friday, February 02, 2007 2:40 PM | Feedback (1)

Pictures from the Microsoft Academy

Here is me (on the left, looks like a bully), talking with Eli Lopian ( on the right ) , at the Type Mock booth. We chatted a bit about the way they are doing their mocking, and I was impressed with the capabilities of the platform they have. There are several things that they can do with them that should really blow you away when you see them. I hope that they will expand into those areas as well. And here is me...

posted @ Friday, February 02, 2007 2:12 PM | Feedback (3)

Back from the Microsoft Developers Academy

I gave my IoC talk, and I got some good feedback. I have a hard time evaluating myself in this matter, there was a lot more power point that I usually like, and not enough code. I did get some involvement from the crowd, including some fairly interesting quetsions. I'll wait to get the official feedbacks. I also took part in a couple of panels, and just because I could, some OSS work when I had free time. I liked the irony :-). I'm dead tired, so this is probably...

posted @ Wednesday, January 31, 2007 3:58 PM | Feedback (0)

Off to the Microsoft Academy

I am leaving for my IoC talk in the Microsoft Academy. Going to be interesting day...

posted @ Wednesday, January 31, 2007 4:14 AM | Feedback (0)

Microsoft Academy Insights

Since I am giving a talk, I also have access to all the presentations ahead of time, and I spent some time going through them. Some people has clearly spent a lot of time trying to turn Power Point into Maya 3D. Anyway, I am seeing some really cool stuff there, things that make me want to start coding. I am giving a talk and participating in two panels, so I probably won't be able to see the talks (will have to wait for the videos), but it certainly makes sure that I...

posted @ Saturday, January 27, 2007 9:39 PM | Feedback (0)

Talking in DevTeach

I am going to give several talks in DevTeach on May. The topics are: Interaction based testing With Rhino Mocks Rapid (maintainable) web development with MonoRail Advanced usages of Inversion of Control containers I am very excited about it. The part...

posted @ Friday, January 26, 2007 1:33 AM | Feedback (5)

Cruel And Unusual Punishment (or, how I Practice)

I was working on the talk I am going to give in the Microsoft Academy next week, and I really needed to practice saying everything. I quickly gathered some family memebers and subjected them to a high level lecture of IoC. Interesting what you can learn from the amount of glazing in their eyes. :-) I did the same to some co-workers today, and got even more good feedback (the best piece of advice was from our QA guy, which is certainly not the target audiance). I am starting to get a good...

posted @ Friday, January 26, 2007 1:27 AM | Feedback (0)

Watch me on DNR-TV

You can find the episode here, I am going to watch it now, more later...

posted @ Friday, January 26, 2007 12:43 AM | Feedback (3)

Bum

That is what Microsoft thinks that I am ;-) Take a look at this horrifying video, detailing how I was reduced to begging in order to get to the event. At least I end up arriving in style :-) At least I wasn't turtored, thrown off a plane, sent to space or Telenovelled. Seriously, that is nearly 5 hours of my life, compressed into 40 seconds. For those of you who aren't Hebrew speaking, those are teaser videos for the Microsoft Academy Event at the end of the month.

posted @ Wednesday, January 24, 2007 7:45 PM | Feedback (2)

Talking on Microsoft Developer Academy

I'll be giving a talk in Microsoft Developers Academy on the 31 January, 2007. I am going to give a 400 level talk about Inversion of Control. The main goal is to move from introducing the topic to people who never heard about it to talk about high level stuff such as decorator chains, generics inference and configuration DSL in one hour. I am on Track B,  10:00 - 11:00, COM414, the talk is called "Inversion of Control - Breaking Up The Dependencies". ...

posted @ Friday, January 05, 2007 7:52 AM | Feedback (0)

The Tag Got Me, Help!

It has been doing the round for quite a while, but now James Kovacs has passed it to me: I can read a (non technical book) in Hebrew/English in about 1 - 3 hours, and usually read at least 3 books per week, from home library that contains ~1,000 volumes. I have frown addicted to ebooks.com, simply because I can look at a book, and 5 minutes later read it. I am a native Hebrew...

posted @ Wednesday, January 03, 2007 7:46 PM | Feedback (2)

SQL Server User Group Meeting yesterday

I went to see Justin's lecture on the SQL Server user group meeting. The room was absolutely packed (twice the number of the expected people), and during the break people phoned to friends and gloated about being in the lecture. Really good stuff, and I got to learn a bit about query notifications and friends, and to visualize the Service Broker as a Garbage Service*. * Justin has the wierdest examples. By contrast, I almost always base my examples on the tried, trued and tired model of online shop (see:...

posted @ Tuesday, December 05, 2006 7:58 AM | Feedback (0)

Israeli Blogger Dinner

So two days ago there was the Israeli Blogger dinner, it was a blast. 16 bloggers and a single localhost blogger showed up, which was more than I thought there were, as a matter of fact. Highlights of the evening: Getting to tell jokes about the value of Heaps Of Meat vs. Stacks of Meat. Waiting for the meat. Trying...

posted @ Wednesday, November 22, 2006 7:57 PM | Feedback (0)

Bloggers Dinner

Omer has just posted the details, it is going to be on Monday, 20/11/2006, in Tel Aviv or nearby at 21:00. Someplace kosher, of course. I am certainly going to be there, you are welcome as well.

posted @ Tuesday, November 14, 2006 6:50 AM | Feedback (0)

Israeli Bloggers Dinner

Omer had a great idea yesterday in the user group meeting, we really should resume the blogger dinners around here. Any takers? If so, please head to Omer's post and leave a comment.

posted @ Tuesday, October 31, 2006 7:03 AM | Feedback (0)

User Group Lecture : Summary

Justin was sick and couldn't make it, but Roy filled in for him with a lecture about Regexes. My lecture was the second one, and I think it went very well. I managed to show everything that I planned to (although not all that I wanted), and actually got to the last slide on time, which was a major worry for me. Things to improve: This is supposed to be an entry level user group - but I feel that I had...

posted @ Monday, October 30, 2006 10:50 PM | Feedback (0)

Tapuz User Group Lecture on 30 October

On October 30, I am going to give a lecture in the Tapuz User Group meeting.  The topic of the lecture is "Active Record: How to write less code." This is a 101 (introductory) talk, showing what you can do with Active Record and how much more productive it makes you. There are a couple of nice tools for code generation that I have reviewed recently, but I don't think that I am going to go for the flashy screens and the wizards and reams of generated code. ...

posted @ Wednesday, October 18, 2006 10:09 PM | Feedback (5)