kenegozi.com

<form id='kenegozi' action='post'></form>

   
2010 Aug 15

See you in the Netherlands?

tagged as: personal

I am going to be spending the next weekend and the following week in the Netherlands.

 

So, if you know of a cool user group, geek get-together or whatnot, please let  me know. Everything that has to do with web development (in any FW out there), large-scale systems, distributed data stores, agile processes, team leadership and management, ALM tools.

 

 

This is also a good opportunity if you are looking into a short consultation gig (a few hours) in one of the aforementioned areas, especially with MVC frameworks for .NET, client side JS/CSS guidance, setting up CI environment, DVCS usage and more. Give me a shout on email or through a comment on the blog (that will be kept private if you wish to)

 

 

I will mostly be in the area of Utrecht and Amsterdam, however I’ll have a leased car so I guess that everywhere within a reasonable driving range is acceptable.

2010 Apr 6

My Birthday gift for myself

tagged as: castle | monorail | personal

http://groups.google.com/group/castle-project-devel/browse_thread/thread/3067daaf559276bf/48c1e0be044698f4

 

I had tremendous fun coordinating work on the project, and I enjoy working with Monorail on my day job. I just do not have neither the time nor the attention to give the project anymore, and John is a much better fit, as he proved over the last few months with his efforts for the project.

 

So I treated myself to a one demanding hobby less.

 

I hope it will help me post more regularly now.

 

 

Interesting enough, I plan to do a few posts about recent performance issues I tackled in AspView. So I guess my MR days really aren’t over yet :)

2009 Dec 13

Quoted

tagged as: tools | personal

I’ve just found out that my I’m being *quoted in a book !

 

the book is Testing ASP.NET Web Applications (Wrox Programmer to Programmer) from Ben Hall, a great guy I know from the first UK ALT.NET conf, and another guy, who happens to blog quite rarely, but I do like his

So You Think You’re A Web Developer series. Plus anyone investing time in Web apps testing is a worthy man, not to mention a guy that invests time in educating people into testing their web apps.

 

 

* Actually, it’s not anything smart that I’ve been saying, but rather my simple IoC implementation, which I originally created for a tiny project that couldn’t have had *any 3rd party dependency (including Windsor), and is now being used as a manner of teaching what an IoC is and how it can help you.  neat, and thx for the credit.

2009 Aug 24

The next big thing in software development

tagged as: personal

Take a look at the following piece of code

namespace Egozi { class Baby { public static void Main() { var noam = new Baby(DateTime.Parse("2009/08/21 20:00 +3"), 2.750, "Noam"); while (true) noam.RelaxOnDaddy(); } public Baby(DateTime birthdate, double initialWeight, string name) { Birthdate = birthdate; InitialWeight = initialWeight; Name = name; } public ulong GetComputedCutenessLevel() { return Name == "Noam" ? ulong.MaxValue : GetRandomNumber(1, ulong.MaxValue); } public DateTime Birthdate { get; private set; } public double InitialWeight { get; private set; } public string Name { get; private set; } public void RelaxOnDaddy() { } public void Poo() { } public void Pee() { } public void Burp() { } public void Accept(IVisitorWithPresents visitorWithPresents) { visitorWithPresents.Apply(this); } } }

 

Not too exciting on it’s own, right?

 

Now take a look at on the binary format:

IMG_0262_small

 

and here after call to RelaxOnDaddy():

IMG_0268_small

 

 

super sweet :)

 

The little dude even acted as the resident super model during the “how to bathe your baby” session at the nursery, acting as if he was a Michael Phelps grade in Water Handling.

 

So if you were wondering why my general availability was not at it’s best lately, this tiny little miracle who crashed into our life just short of three days ago, is the reason.

 

Lots of experiences to have, lots of things to learn and explore. All very complicated. The amount of baby related *stuff* and *things* out there is mind blowing. And everything should be used just a wee bit differently then the next thing, and every nurse gives you a different advice with a 100% certainty. It is kind of like your regular OSS usergroup of choice actually.

So without any proper location to RTFM from, I guess it would come down to a mix of instincts, best judgement, and a good portion of trials and errors.

 

 

I’m popping back offline now to attend my amazing wife who took care of the whole thing, and our cute little wonder.

 

UPDATE (25/08): fixed a copy&paste type, added Main, added name

2009 Feb 5

If you can see this post then …

tagged as: personal
  1. The blog appear to work correctly on the new server

    and
  2. The DNS change is going well enough

    and
  3. You can start commenting again

I hope that the new server will prove more stable.

2009 Feb 5

My blog is moving to a new server

tagged as: personal

Some interruptions etc. might occur, so please be patient. I hope it’ll be allright soon enough.

 

Please do not leave any comments meanwhile as they might not make it through to the new server.

2009 Jan 17

Off to vacation

tagged as: personal

I like the 'smell' of the airport.

I'll be spending the following week on a snowboard, and the guesthouse I'll be at has no internet access, so if you see me ignore emails, castle's usergroups, facebook 'join XYZ group' invitations etc., don't take it personally.

Except the facebook thing, I rarely join any group, cause or application. only friends requests (from people I know), thank you.

 

I might have a little time to post some more while waiting in the airport lounge, but don't count on that.

2008 Nov 10

Delving deeper

tagged as: personal

Took me a little while to set my mind on it, but after doing remote contracting for a year and a half I've had enough of pyjama-driven work, and I started looking for brilliant teams to become part of.

 

In the past I always worked at places where I was, in technical terms at least, *the* leader. At most, I shared that position with Oren Ellenbogen at SQLink for a while, but at the end of the day I always had the ability to veto on technological issues, and people were following my advice on seniority basis.

While contracting, I worked with this amazing start-up company in the UK. They have very experienced and smart people on boards, and it was the first time I found that I really need to fight to get my voice heard. It would be an understatement to say that the satisfaction from knowing this kind of team has accepted my proposals at times is enormous. That's because I was challenged, and needed to lead a change in a place I'm not the CTO/Team-leader of. When at later point we did things according to my suggested (and accepted) design, and was happy to work with it as it was easier and more fun, I was very proud of my work.

 

One more aspect of my past employment is that it was always in small to small-ish teams. at most I was a part of about 10 people R&D department.

 

So what I was looking for now was a company with a large(r) R&D team, with great people with whom I can learn together. A place that is being managed well, that is fun to work for, and that will challenge my skills and push me to learn and evolve.

 

Being the software geek that I am for so many years, and also active in the development community, I am blessed with friends who are holding various positions in R&D departments around the country. This gave me the opportunity to come in to amazing companies, and go through very interesting interviews (that goes *way* beyond abstract-class-vs-interface, testing my design, coding and testing skills, my knowledge in software architecture and problem-solving skills).

 

At the end I picked up www.delver.com. It's a cool startup company with embarrassingly smart people and I'm honoured to be in their ranks.

 

Oh, and they are also using AspView in production from day one ... ;)

 

To new beginnings,

Ken the devler

2008 Oct 15

Single and looking

explanation (before the wife kills me): I have some free time in the coming months, so I'm looking for interesting consulting gigs.

 

So, if you're in a company / dev team, and looking for some help with Castle (Windsor, MonoRail), NHibernate, or general information system design and architecture advices or training, setting up build and test environments, or any other of the things I rant about in this blog, then I'm your guy.

I also do web-client ninja work, dancing the crazy css/html/javascript tango (jQuery: yes, Ms-Ajax: no)

 

I currently live in Israel, but I'm fine with going abroad for short terms if you're an off-shore client.

 

you can contact me at "ken@kenegozi.com"

2008 Oct 7

Where is Ayende?

tagged as: personal

I mean, see how dependant on rss I became.

 

I'm doing my blog reading through google reader and I'm quite happy with it. One of the first blogs I was subscribed to is Ayende's. This dude usually post about 100 articles a day, so it's a safe bet to see him in the Unread list when I fire up reader to help my morning coffee down the throat.

 

At 17 Sep. I stopped finding new posts there, knowing Oren personally, I knew he was doing some off-shore consulting gigs and I figured he had little time for that.

 

I even remember a certain known figure in the .NET OSS world who have asked me to try and visit Oren in his home, as this dude was worried due to the unlikely low profile on his blog for some time ...

I did reach him then by email and that was enough to prove he's alive and well, but I didn't think about asking him on the matter of the silence on the blog feed.

 

Today I opened up his blog to look at something in his blog's layout and the first thing that I noticed was that there's a new layout. Then I found that there are many new posts, which I did not get to my reader.

 

 

Apparently what happened is that the feed is being burned via feedburner now, and I was looking at his old Dasblog based feed endpoint, and the redirect from there is probably no more in place.

 

 

Lesson I've learned: pop onto my favourite bloggers' sites from time to time.

2008 Sep 12

New design to my search page

tagged as: miscellanea | personal

I've revisited my google-ajax-enabled search page (at www.kenegozi.com)

homepage

 

It can still look better of course, but it is much better than the former one.

Now I need to revisit my blog's design a wee bit ...

 

btw, I use this page as the home page on all my browsers. It makes googling much faster and productive, and you are all invited to use it for your search needs. I try to keep it as lightweight as possible so it would load as fast as possible. Suggestions etc. are always welcome.

2008 Aug 30

Post post number 300

tagged as: personal

Without even noticing, I've passed the 300th post on this blog this week.

 

As the first post was at 30th Jan 2006, it gives 305 posts over 31 months - that's almost 10 per month. And I started off very slow ...

2008 Aug 3

How Did I Get Started In Software Development?

tagged as: miscellanea | personal

I've been tagged by Mike Hadlow (Great blog - subscribe to it now, what are you waiting for?)

 

Ok, let's go.

 

How old were you when you first started in programming?

My dad is one the IT dinosaurs. He have been doing the Punched card dance from early stages of public sector computing in Israel, and I guess I must have inherited the passion for programming. Before I got six, he bought me a ZX-Spectrum, alongside some BASIC beginners book in Hebrew and threw me into the deep water.

After a few months of getting comfy with the language, I've learned to read English and got my first serious programming book, one the tried to teach things like code reuse using GOTO and GOSUB.

I also had to learn some Assembler as the ZX's BASIC was pretty much limited.

zx_spectrum

 

 

What was your first programming language?

BASIC, as noted above

BASIC

 

What was the first real program you wrote?

A simple yet effective word processing application, written in Turbo Pascal 5.5. I was about 16 then.

This word processor was for the sole purpose of aiding my older sister go through Law School. I needed a way to type and printing her seminars and there was no built in WP in MS-DOS but edlin.exe back then, and no Internet to download a WP from.

 

At 18 I wrote another program in Pascal, aimed at keeping track of membership payments for a local Bnei-Akiva Branch. I learned the hard way that building a DB engine by hand without any theoretical background, and without ever hearing about terms like "SQL", "Relations", "Transaction" and the like, is not a simple thing to do. By the time this application had enough features I have already left to recruit to the IDF, so it never got into production.

turbo_pascal

 

Then there was a gap of a few years during which I didn't program until I was 24, and I needed to write my third and forth applications. They were in ACCESS, VBA and VB, written as part of my jobs in the army as a logistics officer. I needed a better inventory manager than the old MAGIC based that my unit had, and a better solution for keeping track of vacations utilisation of the staff.

 

There you go. Not only the first one, but the first four.

 

 

What languages have you used since you started programming?
  • On non-paid projects (including University) I worked with BASIC, Assembler, C, Turbo Pascal 5.5, FORTRAN, COBOL, VB6/VBA, Java, 8086 Assembler, ADA, PROLOG and C++.
    Is LOGO a language?
  • Languages I used for paid projects/employment (ORDER BY FrequentlyUsedFactor):
    C#, Javascript, Boo, ActionScript, VBA, Ruby, Python
  • I am a certified J2EE developer as stated on a paper I got from Oracle University or whatever they're called. I Must admit that OC4J was the single most annoying development environment I've ever seen.
  • Languages that I wish I to use for a real project: F#

 

What was your first professional programming gig?

After leaving the army, I taught myself C#, HTML and ASP.NET, registered as self employed and ran a few projects for a few clients. The first of which was a simple VBA based automation for an import/export dealer in the aviation industry. The application was automating the read of RFQ emails, looking up for matched data in their propriety Interbase driven DB, and then exported a report containing highly probable sale items. They liked it so much that they started adding features, and other business-helping apps. They still are a valued customer.

An interesting note here - the last time I have updated or fixed a bug on the first application was almost two years ago. And it's still in daily use, so even though it's coded in a way I'd call blasphemy today, with all the VB-ness scattered around, I still am very proud of this piece of code, as professionally it is rock solid, and not too difficult to maintain, and from business prospective it had a huge benefit for the client.

 

 

If you knew then what you know now, would you have started programming?

I would have started even earlier :)

 

 

If there is one thing you learned along the way that you would tell new developers, what would it be?

Be open to criticism. If you program alone, then try to share as much code with the community as you can, by participating in open source projects. The best place to learn is from your own mistakes, pointed out by others.

I can certainly testify on myself, that I've learned a lot more when I was part of teams where I was not THE tech leader, be it on paid gigs or on OSS.

 

 

What's the most fun you've ever had programming?

During University when I took "Introduction to Algorithms" (learning part I of "Introduction to Algorithms") I had to build a Red-Black tree representation. Back then The only language I know well enough was VB, but I had write it in C++. I did know the basic syntax from my C background, and some vague knowledge of pointers and memory allocations, but that's about it. The project was supposed to be written by a team of three, but I then decided that I had to learn C++ decently and write this alone, so I sat down for a long weekend, got myself a copy of the STL to learn by example, and produces a working generic RB-Tree implementation using Templates to allow generic keys in the tree.

When I sent it over to the other team members, all they had to do was to smoothen up the rough edges.

Again, it wasn't very pretty, but I did prove a point to myself, with that little exercise.

 

Who am I calling out?

In order to make the propagation of this topic even faster, I decided to tag 9 people (!):

  1. People I've just randomly picked up from my blogroll:
    Andre Loker, Damien Guard and Symon Rottem
  2. Bloggers that are definitely not posting enough, so they probably haven't posted about the issue yet:
    Oren Ellenbogen and Justice Gray
  3. The long shot *:
    John Lam, David Heinemeier Hansson (DHH), Steve Yegge and Joel Spowlsky

    * high profile dudes that I like to read about their programming cradle, but are most probably not reading my blog -> hence the length of the shot
2008 Aug 1

Feedback please

tagged as: personal

One of the goals of this blog is for me to be able to get feedback from other people. Usually it means feedback regarding code I write, design decisions I make, and other technical stuff.

However one other goal is to improve my written English skills. Therefore I would be happy to accept any input regarding spelling, vocabulary and grammar mistakes. I won't be offended, that's a promise.

2008 Jul 27

Unit Testing in PROLOG - take 2

tagged as: personal | Testing

I've refined my "unit testing framework" a bit, to make it less awkward.

 

the code:

test(Fact/Test):-
    current_predicate_under_test(Predicate),
    retractall(test_def(Predicate/Fact/Test)),
    assert(test_def(Predicate/Fact/Test)).
 
setup_tests(Predicate) :-
    retractall(test_def(Predicate/_/_)),
    assert(current_predicate_under_test(Predicate)).
 
end_setup_tests:-
    retractall(current_predicate_under_test(_)).
 
run_tests :-
    dynamic(tests_stats/2),
    bagof(P/Tests, bagof((Fact/Test), test_def(P/Fact/Test), Tests), TestsPerPredicate),
    run_tests(TestsPerPredicate, Passed/Failed),
    write_tests_summary(Passed/Failed).
 
run_tests(TestsTestsPerPredicate, TotalPassed/TotalFailed) :-
    run_tests(TestsTestsPerPredicate, 0/0, TotalPassed/TotalFailed).
 
run_tests([], Passed/Failed, Passed/Failed):-!.
run_tests([P/Tests|Rest], Passed/Failed, TotalPassed/TotalFailed):-
    write('testing '), write(P),
    foreach_test(Tests, PassedInPredicate/FailedInPredicate),
    write(' passed:'), write(PassedInPredicate),
    (FailedInPredicate > 0, write(' failed:'), write(FailedInPredicate) ; true),
    nl,
    Passed1 is Passed + PassedInPredicate,
    Failed1 is Failed + FailedInPredicate,
    run_tests(Rest, Passed1/Failed1, TotalPassed/TotalFailed).
 
foreach_test(Tests, Passed/Failed):-
    foreach_test(Tests, 0/0, Passed/Failed).
 
foreach_test([], Passed/Failed, Passed/Failed):-!.
foreach_test([Fact/Test|Rest], Passed/Failed, NewPassed/NewFailed):-
    assert((run_test:-Test)),
    (
        run_test, !,
        NextPassed is Passed + 1,
        NextFailed is Failed
    ;
        NextFailed is Failed + 1,
        NextPassed is Passed,
        write('FAIL: '), write(Fact), nl
    ),
    retract((run_test:-Test)),
    foreach_test(Rest, NextPassed/NextFailed, NewPassed/NewFailed).
 
write_tests_summary(Passed/0) :- !,
    nl,
    write(Passed), write(' tests passed :)'),
    nl.
write_tests_summary(Passed/Failed) :-
    nl,
    write(Passed), write(' tests passed, however'), nl,
    write(Failed), write(' tests failed :('),
    nl.
 
reset_all_tests:-
    retractall(test_def(_/_/_)).

 

the usage:

:- setup_tests('conc/3'). 

:- test('empty and empty returns empty'/(
    conc([], [], [])
)).
:- test('empty and nonempty returns L2'/(
    conc([], [1,2], [1,2])
)).
:- test('nonempty and empty returns L1'/(
    conc([1,2], [], [1,2])
)).
:- test('nonempty and nonempty returns L1 concatenated with L2'/(
    conc([1,2], [3,4], [1,2,3,4])
)).
:- end_setup_tests.

 

my current test output:

| ?- run_tests.
testing conc/3 passed:4
testing create_list/3 passed:2
testing empty_pit/5 passed:1
testing get_opposite_pit/2 passed:2
testing in_range/2 passed:2
testing is_in_range/2 passed:4
testing put_seeds/5 passed:3
18 tests passed :)
yes
2008 Jul 24

Unit testing in PROLOG

tagged as: personal | Testing

Finally I'm sitting down to be done with my Computer Science degree. I've been studying in the Israeli Open University starting 2003, while working full time and more. Over than two years ago I reached the point of having literally no time at all to finish it up, so I left it to be with only two final projects to complete, present and defend.

The first one is to write a simple AI enabled game (using depth delimited alpha-beta algorithm variation) , in PROLOG.

 

Back when I took that course, the whole paradigm was too strange to me. I've been doing procedural and OO coding for years, and the look of the programs just looked ....  wrong.

Nowadays that I developed a lot of curiosity into declarative languages like Erlang and F#, (and being a much better and way more experienced developer) I can relate to that type of coding more easily.

 

So, dusting the rust of two year of not touching it at all, I sat down today to start working on that project (delivery is next month), I started with writing down a small helper for running unit tests on my code.

 

Ain't pretty, but it serves both the need to test my code, and the need to re-learn the language:

 

run_tests  :-
    dynamic([
        tests_passed/1,
        failing_tests/1,
        total_tests_passed/1,
        total_failing_tests/1 ]),
    assert(tests_passed(0)),
    assert(failing_tests([])),
    assert(total_tests_passed(0)),
    assert(total_failing_tests([])),
    bagof(
        (Module/Predicate, Tests),
        tests(Module/Predicate, Tests),
        TestDefinitions),
    run_tests_definitions(TestDefinitions),
    retract(total_tests_passed(TotalPassedAtEnd)),       
    retract(total_failing_tests(TotalFailedAtEnd)),
    len(TotalFailedAtEnd, TotalFailedAtEndCount),
    write('summary:'), nl,
    write('Passed: '), write(TotalPassedAtEnd),
    write(' Failed: '), write(TotalFailedAtEndCount), nl, nl,
    (TotalFailedAtEndCount> 0, write_fails(TotalFailedAtEnd) ; write('Alles Gut'), nl).

run_tests_definitions([]) :- !.
run_tests_definitions([(Module/Predicate, Tests)|T]) :-
    write('module: '), write(Module),
    write(' predicate: '), write(Predicate),
    write(' ... '),
    run_tests(Tests),
    retract(tests_passed(Passed)),       
    retract(failing_tests(Failed)),
    assert(tests_passed(0)),
    assert(failing_tests([])),
    len(Failed, FailedCount),
    write('Passed: '), write(Passed),
    write(' Failed: '), write(FailedCount), nl,
    retract(total_tests_passed(TotalPassed)),       
    retract(total_failing_tests(TotalFailed)),
    NewTotalPassed is TotalPassed + Passed,
    conc(Failed, TotalFailed, NewTotalFailed),
    assert(total_tests_passed(NewTotalPassed)),       
    assert(total_failing_tests(NewTotalFailed)),
    run_tests_definitions(T).

write_fails([]) :- !.
write_fails([H|T]) :-
    write_fails(T),
    write(H), write(' failed'), nl.

run_tests([]) :- !.
run_tests([H|T]) :-
    run_test(H),
    run_tests(T).

 

run_test(Test) :-
    call(Test),!,
    tests_passed(X),
    retract(tests_passed(X)),
    NewX is X + 1,
    assert(tests_passed(NewX)).
run_test(Test) :-
    failing_tests(X),
    retract(failing_tests(X)),
    NewX = [Test|X],
    assert(failing_tests(NewX)).

% Asserts
assert_all_members_equal_to([], _).
assert_all_members_equal_to([H|T], H) :-
    assert_all_members_equal_to(T, H).

 

this code is allowing me to define my tests like the following:

tests(moves/change_list, [
    change_list__add_first__works,
    change_list__add_middle__works,
    change_list__add_last__works,
    change_list__empty_first__works,
    change_list__add_middle__works,
    change_list__add_last__works
]).
change_list__add_first__works :-
    L = [1,1,1],
 
change_list(L, L1, 1, add),
    L1 = [2,1,1].
 
change_list__add_middle__works :-
    L = [1,1,1],
 
change_list(L, L1, 2, add),
    L1 = [1,2,1].

 

...

 

invoking the tests is as simple as the predicate:

:- run_tests.

 

and the current output from my project is:

module: utils predicate: in_range ... Passed: 4 Failed: 0
module: utils predicate: create_list ... Passed: 2 Failed: 0
module: moves predicate: change_list ... Passed: 6 Failed: 0
module: moves predicate: move ... Passed: 1 Failed: 0
module: moves predicate: step ... Passed: 1 Failed: 1
summary:
Passed: 14 Failed: 1
step__when_ends_within_same_player_pits__works failed
yes

 

Ahm. A failing test .... back to work I guess.

 

btw, The game I am implementing is Kalah.

2008 Jun 14

AspView Nostalgia

tagged as: aspview | personal

I've just stumbled upon an old post on this very blog.

 

In the post I actually quote a comment I have left on Ayende's blog. The nice excerpt from there:

 

Maybe having a ViewEngine that's use c# or VB.NET instead of boo (not the WebForm ViewEngine which suck, but somthing similar to Brail)

 

This was on 26/10/2006 ...

 

Three weeks later (on 14/11/2006) I've announced AspView, after starting working with the first bits for my employer at the time, SQLink

 

Two days later I have made a first release public.

 

on 01/12/2006 I was granted a Write access to castle/contrib - AspView started gaining some recognition from the community

 

The rest is history. You can follow on the AspView tag here

 

What's there to come? stay tuned and find out

2008 May 30

The Tooth Ferry

tagged as: personal

Hadn't been writing a lot lately, even though exciting things were happening, especially in the AspView front (stay tuned).

 

Why, you ask?

 

Well, I'll tell you why.

 

Had a tooth implant on Sunday, and the antibiotics and pain killers were distracting me. To the point of loosing time over extremely stupid mistakes.

 

Anyway, I hope to fell better next week, and to have some spare time for writing some interesting stuff.

2008 May 8

50% up in four months

tagged as: personal

Wow, it feels like yesterday.

On last December, the feedburner's subscribers count on this blog has first reached 200.

 

Two weeks ago I've noticed that:

 

300

 

 

Silly, useless, but pats a certain shoulder nonetheless.

2008 Mar 25

Happy Birthday to ... ME

tagged as: personal

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:

Mt. Hermon, view from Kefar Giladi

 

Grotto at Rosh-Hanikra:
Grotto in Rosh-Hanikra

 

That's me at the Zavitan pools next to the waterfall:

אני בזויתן 2

 

 

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);

2008 Feb 20

Email Problem and an Apology

tagged as: personal

I'm terribly sorry, but it seam that I've had a problem with my mail server, so during the last two month I did not receive any mail sent to my mail address on this domain.

I was able to access some of those now, and I'm going over the messages, so if you were waiting for a response regarding any Castle / AspView / Other issue, I hope Ill get in contact soon.

2008 Feb 8

Dreaming in Code

tagged as: personal

I guess we are all crazy.

I swear that this post's content is true:

I certainly remember a few occurrences of going to sleep with some coding/design problem or idea (of late - SQL Query Generator), just to wake up with a solution. I also tend to wake up from disturbing dreams, with some of those being just the regular night horrors, but at times they involve irresolvable build errors, ASP.NET yellow screens, and TortoiseSVN irritating noises.

Anyone like to share his Coding Dreams?

2008 Feb 4

I'm Back Online

Last Thursday I was informed by the organizers of alt.net UK conference that they have managed to squeeze me in, so I immediatly booked a flight to London, and have attendet.

I was superb, and I've written a few posts, but since I was not online during the last few days I had no chance of publishing 'em. Hopefully they'll get during the next few days.

 

A lot have also been piling up on my MonoRail and AspView "desktops" so I appreciate the patience of the users, and I promise to do my best to keep up with the requests and patches being sent to me ...

2007 Dec 21

Reaching 200 - a Useless Stat That Makes Me Proud

tagged as: personal

When I've started using feedburner (mid Sep.) there were about 160 subscribers.

Nowadays:

200 readers

 

Next to super-blogers like Scott Hanselman or even local blog heros like Ayende, its nothing.

But it's mine.

 

I can also see a very (obvious) correlation between the amount of code posts per month and the growth in popularity.

 

That mean that people likes reading code samples, and that they find it useful, so I'd do my best to make more of these, should time permit.

2007 Dec 21

What Drives Me to Excel

tagged as: personal

Not MS-Excel.

 

As if it was not enough that wife has graduated her B.A. with honors, now she has just given a notice that she is about to gain honors on her M.A. studies, too.

And as if that's not enough, during the course of the studies, she has been employed at 80%-100%.

And now she starts looking at doing a Ph.D.

 

Now I feel the urge to complete my damn Bachelor's (and I'm around 84, so no honors for me), and learn so much, and code that much so I'd become a great good better-than-I-am-now developer, and just to try and keep up.

 

 

 

That's Wife holding a Cat:
Wife holding a Cat

 

Me, not holding by liqueur:
Not holding my liquer

2007 Nov 10

DevTeach Vancouver - I won't be there, but you should

tagged as: monorail | personal

I wish I had the time (and cash) to go there, as great speakers would host there.

Anyway - if I would've got there, I'd go for:

  • MonoRail (AGI212) by Oren Eini (aka Ayende).
    I like to go to MonoRail presentations as I learn there important stuff about presenting MonoRail to the people, and I also learn something new each time, even though I am quite seasoned with MonoRail.
  • Rhino Mocks (AGI199), again by Oren Eini. That's a mocking framework that promotes good design. I also like it's source code so I might be biased.
  • About MS MVC (ARC376) by Justice Gray. If only for the huge potential of fun and laughter, however I'm not sure that the crowd could've managed two mascu-velopers at once ...
    Seriously, this guy is funnier than the daily WTF.
  • DDD talk (ARC461) by David Laribee.
    I do not know this guy, but I do know that learning DDD would sharpen your concepts and understanding of the Object Oriented world, even if you won't actually practice DDD in real scenarios. While we're at it, I'd recommend you also get the ultimate DDD book.

 

Anecdotes:

  • MonoRail talk is on Agile track, while Ms MVC is on Architecture
  • There's a guy named Windsor there, but he won't be talking on Castle.
2007 Nov 6

Comments Are Back

tagged as: personal | blog engine

So you can tell me what you think on the new design, or any other thing (like what you think on the new changes to AspView, how you like working with the Castle stack, how great AspView is, how good looking I am, and any other kind of constructive criticism).

2007 Nov 6

New Look

tagged as: personal | blog engine

sneak peek (for those who read this through a feed reader):

Sneak peek

cool huh?

2007 Oct 8

The uncool wedding invitee, or, blogging on an old PDA

tagged as: miscellanea | personal

It's time to reveal one of my major handicaps, that didn't make it to my "five things you didn't know about me" list:

I can't dance.
I hate to dance.
I won't dance.

 

Therefore: I am getting bored at weddings.

 

Yesterday at a wedding party of a good friend of ours, I found myself sitting at the table by myself, with only my old PDA to accompany me.

So I wrote a post about the new release of AspView.

I would've written that one, too, however the PDA went low on battery, so I've had to find something else to do.

 

That was, drawing some domain design concepts for a portion of my new project at Music Glue, not on napkins, but rather on the back side of my checkbook ...

 

When we went home, the happy groom and bride hugged and thanked Sarit who was dancing all night like a party animal, and then gave me The Look. Yep, That one. That say "You'd better leave a fine present as no happiness came from your's tonight".

2007 Oct 1

It was a craic*

tagged as: miscellanea | personal

Just been back from a few days in Ireland, where I went with Sarit for a vacation, and for getting to a clearer state of mind. At least on that level it proved to be very productive, as I came back with more than a few solutions to problems I've been facing ,and even some new ideas for expanding the line of services that we, at Music Glue, can provide.

 

Just so you'd understand how muse-ful can Ireland be:

 

 Waterfall at Wicklow

 

and:

 

View from Valetia Island

 

(All pictures were taken on a Canon S3 IS Camera - a perfect thing for a photo-newbie like me)

 

I'll upload some more pictures in the next days. Actually, I guess it is high time I'll get me a proper image sharing service subscription.

Any recommendation of a free (or low cost) ones?

I guess my priorities would be:

High availability;

Fast;

Easy to use (allow multiple uploads, allow easy post-upload tagging);

 

More pictures to come ...

 

*Craic: Irish word for fun/enjoyment that has been brought into the English language. usu. when mixed with alcohol and/or music. source: http://www.urbandictionary.com/define.php?term=craic

2007 Jul 9

Presenting you: the Egozimpsons

tagged as: personal

It seams that everybody is making their Simpsons themed avatars lately.

 

So, I present you with the Egozi family's Simpson pic.

 

I was sorry that we could not make Simpsons Cats for our kitties, so we settled for putting cats on our shirts ...

 

Egozi_Simpson

 

See if you can guess who's who.

 

Liked it? Grab yourself one, right here

2007 Jul 6

Summing up the last two and a half years - Bye bye SQLink

tagged as: castle | activerecord | aspview | hql | personal

It was absolutely brilliant.

I started to work for SQLink on late December 2005 as a Team Leader in the Web Projects Department.

Colleaged by Oren Ellenbogen, it has been a pleasure. Our department head, Moti, was doing the best he can to create a very likeable working environment, and all our developers were enjoing a workplace that enabled them to learn a lot. Oren and I were directing all kinds of sessions with the developers, showing them stuff about .NET and the CLR, from "what are nullables", through "What does the 'using' reserved word mean", to "how the GC is actually working".

We have built this great website called GotFriends, that gave the company a great new source for recruiting new employees, and actually is ground breaking in the Israeli HR world. Building that site, we've used many technologies to make it work smoothly with the company's inner legacy HR system, and with the aid of the SQL master Moran Benisty, it even worked in an efficient way, and coded in a maintainable manner.

Mixing WebForms and Monorail, CodeSmith based BLL with ActiveRecord/NH, ASP.NET WebServices (asmx) and POX/JSON services, it was a very fun thing to work on, in addition to the business benefit to the company.

 

However, a few months ago the Web Project Department was closed, and the company started a new R&D team, leaded by Elad, the company's VP of Business Development. We were two developers (Moran and I), and we worked on several initiatives that the CEO Tamir, and Elad, were cooking all the time. Those projects were all Community-Driven-So-Called-Web-2.0-Kinda-Websites. It was a real delight, and I got the chance to learn a lot about the business side of running an Internet related initiative, as both Tamir and Elad are experienced and intelligent, and the process of refining ideas, with those two, was a real treat.

 

They also gave me the freedom to make all the technology decisions, and they've had enough faith in me to allow me run the projects using MonoRail and AspView, and running Castle ActiveRecord for DB access. Actually, most of the drive behind creating AspView was actually driven by Elad and Tamir, as I've promised to do the best I can to make sure that future additions to the team won't need to learn Boo / Velocity in addition to learn the Monorail MVC and hql.

 

Which actually worked great. Moran has left the team about two months ago, and we've brought three new guys along (Ili, Ofir and last but not least, Itay), and they have seam to easily get control of all the "funky" technologies I've put in use in our projects.

 

Sadly enough, one of the initiatives has stalled just before airing, due to some business decisions. Then we started a new one, and in about 3 weeks we've had a working proof-of-concept, and I really hope that the site will air during August. I give the credit to the team, and to the use of MonoRail/ActiveRecord, as it's such agile and suits highly-changing-environment, as most web initiatives are.

 

A point of interest: This very blog's engine was actually a beta testing for some of the stuff we were using on our last project.

 

That's it folks. I wish the SQLink family all the best, and I'm going to keep an eye on the cool stuff the R&D team is doing, and hopefully I'll report on their success (which would be an AspView success too ...) right here on my blog.

2007 Jun 28

Things I Learned About Software

tagged as: miscellanea | personal

Following Scott's post, here are my listings (is four okay?):

Four things I learned about software (in University, not College):

1. If you'll help a friend with a red-black tree implementation in C++, he'd eventually help you with an assembler precompiler in C.

2. Software Engineering is the only course where you can write a fully working program, with no compile warnings, with all tests green, and still get 60 out of a 100. (I'm sorry that my printing method was named ToString, while supposedly in ADA I should name it Put to keep convention with the language)

3. The good looking gals usually do not attend CS classes. If they do, they take DB Basics and DBMS implementations.

4. Watefall / BUFD is the ONLY WAY to manage software projects. I've had a 6 points course that dealt almost only on that. And they gave me 10% off the grade for doing a final design document without the proper fonts and colors.

 

Three things I learned about software while not in the university:

1. A code you write alone is bad. At least get someone to do code-review, and at best, pair program, or open-source your code so it'd get looked at.

2. You can either eat Pizzas, or have a loot of sugar-loaded-coffe mugs. If you do both, you'll get fat. (that ofcourse, unless you are a gal who attended a non DB related CS course, and then you're screwed anyway).

3. O.O. languages is not the only way to go. Static typing is not always the best thing. Javascipt is actually a programming language.

4. Scrum / XP / TDD / IoC / DI / MVC / UnitOfWork

2007 May 27

New feature to the blog - a blogroll

just added a blogroll.

To the DB, to the Domain, to the controller and to the view.

Took me (all in all) 30 minutes, including all the coding, CSS-ing, uploading to the webserver, setting up the DB table on the hosted server, adding a few entries, clearing the browser's cache, and viewing it.

ah, and committing changes to Google code.

 

All of that was made in the Budapest Airport cafeteria, while waiting for my flight home (was a great trip. Photos, though not many of them, will be posted later on).

 

Rest assure that the DB access code is tested, and that the calls to the DB and to the cached data from the Controller and View are all typed.

 

I'd like to thank NHibernate, Castle and AspView (hey - that's me !), who made this possible.

 

I bet Ayende would have done it in 20 ...

2007 May 26

A new feature on my blog: Comments feed

tagged as: aspview | personal | blog engine

Just added.

Commited to the repository, too (hosted at google code).

Look for the link on each post's footer.

2007 May 25

Things my blog is missing

tagged as: tools | aspview | personal | blog engine

Since this blog is running on an engine that I wrote (available on Google code site, here), it lack some features that more mature blog engines already have. (the other engines lacks the combined power of ActiveRecord/MonoRail/AspView ...)

 

So, that's currently my list:

1. Blogroll, for obvious reasons.

2. Email alert for me when anyone posts a comment for one of my posts.

3. Comments feed (via ATOM).

UPDATE - Done

4. Email subscriptions for new posts, or new comments on specific posts.

5. I have a problem with the font. I should fix the CSS but the Internet connection here (I'm at a Budapest hotel) is quite poor. Will be fixed next week.

UPDATE - Done

 

Any other suggestions?

 

note that I do not intent on implementing Pingbacks and Trackbacks, since those were littering my blog in the past.

2007 May 24

I Work for money

tagged as: personal

Ofir (a team member) has just sent me this:

 

 

It reminded me how much I miss my cats (I'm in Budapest for two days now).

2007 May 16

My blog is running on ActiveRecord-MonoRail-AspView

So long dasBlog. It was great to have you, but it's time to move on.

After a lot of work, I am proud to announce that my blog is running on MonoRail, using AspView for the views, and ActiveRecord to do DB stuff.

Not too fancy codewise, since I have very little spare time.

Most of the time spent on the blog upgrade process was on:

1. Exporting the data from the "old" blog, and

2. making a decent markup and design for the new one.

oh. and 3. letting WindowsLiveWriter do the edits, since I wasn't in the mood to create a backoffice.

I'll blog more about the process, and I'll make the source available.

Please leave your comments here about the overall look'n'feel. There must be tons of bugs and I want your feedback.

2007 Feb 14

Long time no posting. Must write.

I haven't written much lately, since I was:

a. Learning for my final exam so I'd get my Bachelor's Degree at this decade.
b. Under a lot of preassure at work, since we have a cool web2.0 thingie approaching a public beta real soon (will be followed).
c. Sneasing my heart out, darn flew.
d. Got into a new project  at my personal business. This one is driven by Castle's ActiveRecord+MonoRail+AspView, and due to the client's request it'll use Access as the backend DB, and that would be a first-time-ActiveRecord/access for me. I still hope to convince him to at-least go for embedded FireBird.

So, stay tuned to some experiences with AspView, and hopefully in about a month you'll have two MonoRail/AspView driven websites out in the open. I am excited. Are you?

2007 Feb 14

The forth Israeli Bloggers Dinner

tagged as: personal

Arranged by Omer, the dinner will take place at 21/02/2007.

If you come - please leave a comment at his post, or here.

Bon Apetit

2007 Jan 24

My first CodeProject article is up

tagged as: client-side | html | personal | Javascript

I've posted an article to CodeProject about building my Google Ajax Search Enabled Homepage.

So, go there, read it, comment it, vote for it, tell your friends about it, print it and glue it to your forehead, whatever you think is appropriate.

Unless you didn't like it. In that case, you shouldn't do anything. why bother ? :)

2007 Jan 15

Google AJAX Search API and My New Homepage

tagged as: client-side | html | personal | Javascript

I have loaded a new homepage, and used a little of the Google AJAX Search API to make it interesting. Actually, I'm using it now as my browser's default homepage, instead of google.com

Not only that, but I have documented the process of making it, and have sent it to codeproject, to be published, as my first contribution there, in hope for more to come.

So, please leave your impressions, eiether here or in the codeproject article (I'll post the addresss once it will be up).

2007 Jan 14

Tagged

tagged as: personal

So, I've been tagged.

Actually, it was more than a week ago. Since I am not much of a writer, it takes me a lot of effort to write non-technical stuff. I've worked on a "5 things" post on notepad, and mistakenly closed it without saving. It took me while to recover (myself, not the file) and gather the courage to redo this post.

So, with no further ado, here are 5 thing you didn't know about me, nor will you probably remember tomorrow.

1. I grew up in a religious family. I even learn a few months in a Yeshiva. I used to like (and was quite good) the studies of "Talmud" and "Halacha" (the basis for Jewish laws) since those involve strict logic methods, and much resembles the way you prove mathematical theorems.

2. Before I was programming professionally, I was in the IDF. I attended the IAF flight course for a while, then went through combat training in the infantry forces until my knees almost fell apart, and I found myself doing paperwork. Later on I moved to the Logistics force, and became expert in Warehouse Management, and small scale HR management.

3. Before I was in the army, I was a musician. I own a great acoustic guitar (by Takamine), two sound modules (Korg and Roland), an electric guitar (Washburn), two Multi-Effect modules for guitar (Boss and Zoom), a synth (Ensoniq), two dedicated sound-cards (hoontech/Yamaha and an old SBLive Premium), Shure mics. I ran a full featured MIDI recording studio, and produced playbacks for people who wanted demos for the radio. I have also did musical direction for song contests, of the religious youth movement "Bnei Akiva". But I cannot read notes.

4. When I grew up I was afraid of animals. Of any kind. Even kittens. Now I live with three ex-stray cats and they sleep with me. Actually, they fight and I try to sleep ... I'll flickr some photos of them sometime. One of them play "fetch" like a dog. When I throw one of his toys, he runs to it, take it in his mouth, and bring it to me to throw again. The second is a beautiful cat who acts like a lady, and the third is blind from birth, but rules the house easily.

5. I have been coding since I was 5. really. My father have bought me a ZX-80 and a bunch of BASIC books, and I went CAREZY about it. I remember that when I was about 7 I coded a simple Space Invaders mock and invited two of my classmates to play with me. however, then I came to learn the importance of QA, since the game was very buggy and the friends went to play hide-and-seek while I tried to debug my spaghetti ...

 

So those were 60 minutes, about Ken Egozi. The movie feature is due this summer (kenegozimovie.com ...)

 

Eli Golovinsky, Dror Engel, Yosi Taguri, Hamilton Verissimo de Oliveira, Omer van Kloeten, Roy Daya

Hey people - you have been tagged !

Subscribe

Statistics

399
861

The Lounge

Related Jobs

Related Books

search page | Blog's home | About me