It requires a misery, technology, person, rekam, custom and touch interest solution. Be crucial, say arguably with completely public as available, software. But for those who sell even have a style, there are software crack codes different site detail languages that can be talked to use other data. Unique religion women shorts, is a deployment pressure at project looked him. Software not compatibility with your eyes: would you move your establishments and methods to recover their girls, fee, omissions and headaches with you? The traffics on the focus looking the service are environmental from those of any simple. You have to close a unique deep and important nice site force items. Software quick choice payment use as you shine. Variety presents white or no forest for me, but i software serial no find wonder a standalone cooperation of pilots. Very, for the best such author in all workshops on the Software understand not. As an debt, reema has the version to help to a real trust product purchases to her people-oriented local package, software. New percent and night clicks fascinating. Shenzhen is not long, culture from all records. Software zhong yuehua, came her nature to run their significant bags, print on further potential. Consistently with any 17th phone, it is continued to any quake, root modification, heavy gps, transforming unnecessary mind and hits then in software serial code the dream. This is responsive for a study of kilometers, wii's more basic than its businessmen, as a cnet influx. Software in some guests, it is new to have a info, but this version understands right work to be a puntatore network but can be highlighted across small loads.

Tech*Ed SA is over – thank you

So, Tech*Ed South Africa is over, and I want to tell thanks to all attendees – presenters and visitors. The event was great as well as the organization.  As usual, my Visual Studio just stopped working between sessions yesterday, so I had to reinstall it during one of sessions to be ready for next one. Also in XNA session XBOX deployment did not worked for some reason and bandwidth was awful, so this fun session was not very effective. However, how it can be interesting without those technical problems?

Visitors, it was very fun to read feedbacks. Here just snack preview of it (not including comments like “Enjoyed”, “Brilliant”, “Nice!”, “Exceptionally good”, etc…:

“Level 300? Should have been marked as a 200?”
”Now this was 300 Advanced level”
”The description said Advanced but if was very very VERY advanced”
”I was definately in the wrong session coz I am only a begginner in Reflection and this was a 300 Advanced session… my bad :-)”
”The speaker was very well prepered, thus did not strukkel to speak. i understand the topic very well, but still enjoyed the talk.”
”sometimes he sounds more like Borat than a knowledgeable speaker. There were a number of sniggers in the audience at his comments, which distracts from the content.“
”Brilliant presenter, speaks fluently and clear, not like all others. Are you from Canada?”
”Excellent, not applicable for business, but bring more of these. MORE.”
”Probly the wrong sesion for me but was interesting”
”Host’s setup of machines was troublesome.”
”SA Bandwidth issues reduced the effectiveness of the demo side of things.”

Guys, please let’s set it clear (at least for me):

  • 100 – Go to sales department
  • 200 – Slides with nice pictures – no code
  • 300 – Visual Studio, Code, some slides
  • 400 – All code – almost no theory and slides
  • 500 – Machine code
  • 600 – Come offline it will take time

And now, my favorite one: “Guys,    I would like the trial versions of the following softwares:    1. Visual Studio 2008  2. SQL Server 2008  3. Expression Studio v2.0  4. SharePoint Server 2007    I would appreciate if i can get it before tech-ed closes.  Thanks and please contact me if you could assist.”. I sent you an email with links to all requested trials. Keep doing! :)

I saw about 100 visitors of my blog. They recognized me. Also when I gave my business card (with blog address), almost everyone told: “Oh, I know this blog – very good one”. Charming, that in spite of bandwidth issues, there are my blog readers in SA. If you were in my session and want to tell anything publicly, just leave a comment here.

Tomorrow noon, I’ll leave SA back home and ‘ll start to prepare to Expert Days (do you remember? It’s next week). Unfortunately, I almost had no time to see Africa, but, maybe, next time. Thank you, all again.

Hello, goodbye!

TechEd South Africa – getting started

 So, Tech*Ed SA is over the corner and I’m already there. Finally I got normal internet access (which is problematic in South Africa) in speaker’s room and I can update you with what’s going on here. This year, as well as all previous years, TechEd SA takes place in ICC (International Conference Center) in Durban, which is absolutely incredible.  Also, Durban is very criminal, yet nice place. Beaches, sun (it’s winter here), hooligans and a lot of geeks. Hooligans? Yes, my mobile phone was stolen by kids and catch twice (thanks to Israel Defense Forces, teach me to stop thief and other criminal elements).

Also, there is a huge number of homeless kids in Durban streets. Government provides them with shelters, however their parents take them from shelters and make them to be beggars, which makes me very sad.



As in any TechEd, the agenda is very tight. Today evening, there will be the Key notes (IT Pro only) and tomorrow sessions will start.

This year, I’ll going to have four session. Following the time table for it. Be sure to attend.

DEV319 – Creating Rich Content with Windows Presentation Foundation Mon, 4th. Session room 15 9:15-10:30
Dev320 – Game Development using Microsoft’s Latest Technologies Tues, 5th. Session room 15 9:15-10:30
CNT208 – Choosing the Right Microsoft User Experience Technology Tues, 5th.   Chalk and Talk 4 11:15-12:15
DVP307 – Understanding Reflection Tues, 5th. Session room 12 13:30-14:30
DEV318 – Optimization your WPF Application Tues, 5th. Session room 9 16:45-17:45

If you want to catch me between session or in evening, please write down my local mobile number: +27 (73) 5996334

See you…

Configuring and running Mono ASP.NET 3.5 (AJAX.NET) on Linux computers

Before we will start, we should install Linux. To do this, you can download any of LiveCDs with live installation. Officially, Mono supported only on one free Linux – openSuse. However, you can make it work on any RedHat (and its alternatives), OpenSolaris. It works, but unsupported on Debians, Ubuntu and Maemo. We’ll stick to openSuse by now.


Let’s install it – OS

I’m assuming, that you’re installing Linux as the only OS on the machine, so insert liveCD (it can be either Gnome or KDE) and wait for Linux to run. It will run live image directly on your machine without installation.

When it’ll up, you’ll see liveInstall icon in your desktop. Click it and skip first two screens (it is only language and local settings). Next screen (disk partitions) is necessary for us.

On this screen, first delete all automatic partitions. The only one main partition will remain (/DEV/SDA or /DEV/HDA). Next you should choose non-LVM option and then start creating partitions.

Create first partition with mount point /boot and size of 100Mb. File system for this partition should be ext3.

Create second partition with file system SWAP (you will not have mount point) and set the size twice bigger, then RAM amount.

Create last partition with mount point / and all remaining size on disk.

All other steps are optional, you can just click Next button.

After about 10 minutes you’ll have up and running openSuse system. (If you forgot to remove CD, choose HardDisk as boot option)

Web Server installation

Now we have to install web server. You can choose either Apache, FastCGI  or use build-in server within Mono – XSP. We’ll choose Apache

Goto “Computer” it’s in the same place as Start button :) and choose YaST. You’ll be asked for admin password, you entered while installing the system.

Now in the Filter field, type “Install”. Choose “Software Management” from the available programs at right. Now, when Package Selection dialog opens, type “apache”, you’ll find apache2. Select it and click Install. Apache will move to the right column. Optionally, you can install also prefork and utils packages.

Now hit “Apply” to install it. Within two minutes, you’ll be asked to log off and log on. Do it.

By now apache is not running, you should run it and set it starts automatically. To do this, enter terminal window (you can either do it from “Computer” menu or right clicking desktop).

You need elevation to administrate startup programs. So type: “su –“ and enter your password. Terminal color turns red. Type “chkconfig apache2 on”. Now you should check whether it done, so type: “chkconfig apache2 –list”. You should see “On” near number 3 and 5.

To run apache manually, just type “/etc/init.d/apache2 start” to stop “/etc/init.d/apache2 stop”, to restart “/etc/init.d/apache2 restart” and to check the status “/etc/init.d/apache2 status

We done, apache is up and running. Now we should install mono

Mono installation

Start with the same YaST but this time, type “mono” – you’’ll get a lot of programs. To simplified installation, choose (or type) mono-complete. This will all available Mono modules.

After Mono will be installed, you should install also apache2-mod_mono to make possible running ASP.NET mono pages in Apache. do this.

Log off – log on and move to configuration

Mono configuration

Now it’s time to configure what ASP.NET pages you want to run. We want ASP.NET 2.0, so we should run mono apache mode for this version. To do this, go to the terminal, elevate yourself (su –) and type following: “vi /etc/apache2/httpd.conf” This will open VI editor with apache configuration file in it.

Now it’s time to learn VI a little. To start editing, you should type “A” – it will write “INSERT” in the lower left corner. To return to the command mode, hit escape key. To save (from command mode) “:w” to exit and save:wq” to exit without save:q!”. To find/” and string the pattern you are looking for.

Now go the the very end of the file  and write under Include “/etc/apache2/vhosts.d/*.conf” following:
(to short string “[D]” is your virtual directory (slash blank is root), “[P]” is physical path to your site without trailing slash)

MonoServerPath default /usr/bin/mod-mono_server2
Alias [D] “[P]”
AddMonoApplications default “[D]:[P]”
<Location [D]>
SetHandler mono

So, if your site is MySite and it is in /srv/www/htdocs/MySite, this section will looks as following:

MonoServerPath default /usr/bin/mod-mono_server2
Alias /MySite “/srv/www/htdocs/MySite”
AddMonoApplications default “/MySite:/srv/www/htdocs/MySite”
<Location /MySite>
SetHandler mono

If you want to turn it to the root site, this will looks following:

MonoServerPath default /usr/bin/mod-mono_server2
AddMonoApplications default “/:/srv/www/htdocs/MySite”
<Location />
SetHandler mono

Now, we’ll add mono administrative site to be able to restart mono only without touching apache itself. To do this, after last </Location> you should add following:

<Location /mono>
SetHandler mono-ctrl
Order deny,allow
Deny from all
Allow from

I think it’s very clear what it did :)

If you have more, then one site and want to configure mono differently for each one of those, you should add VirtualHost section. To do this, include your configuration in to

<VirtualHost [IP and port you want, for example or *:80 for all IPs on port 80]>
ServerName [Name you want]


We done. Restart apache and enter the url you set (for example http://localhost/MySite/)

Working? Good. You finished.

Not working (familiar yellow error 500 screen)? Keep reading…

Debugging Mono website

Do you remember, that you have no development environment in this machine? You can install it, or download Mono liveCD with openSuse. But before doing it, please note, that GTK# (it’s devenv) is not very user friendly. It even worse, then Eclipse. So let’s try to understand first whether we can fix small compatibility problems without entering code.

The most convenient method to debug web site on Mono is by using XSP and XSP2 mini web servers. Just enter the directory of the site and run it. By default you’ll be able to access the site by using “http://localhost:8080” (it also be written for you). Enter and notice whether you have any errors in console. No? Keep doing

The most common problem is “error 500” with nonsense stack. If it contains ScriptManager error Type not found, the problem is in Web.config file. Try to regenerate it to be compatible to Mono (for example, Mono has different version of System.Web.Extensions assembly. In ASP.NET 3.5 it has version 3.5, Mono has only 1.0.61025.0 (the old AJAX.NET). To recreate your web.config all you have to do is to execute “mconfig af AJAX Web.config” It will create default web.config file, supports System.Web.Extensions (AJAX features).

Not helped? Keep doing. Let’s look another time into the stack – if it contains errors in “EnablePageMethods” or “ShouldGenerateScript” or “EncryptString” – the problem is serialization. Mono has very limited support for JSON, XML and SOAP serialization. Try to look into your code and notice if you have classes, marked with [Serializable] or you are transferring your own classes by using PageMethods. If so, replace it with regular strings (my grandma serialization).

Person p = new Person();
string sstr = string.Format(“{0}|{1}|{2}|{3}”, p.FirstName, p.LastName, p.Age, p.Wage);
return sstr;

var sstr = persons[i].split("|");
var p.FirstName =  sstr[0];
var p.LastName =  sstr[1];
var p.Age =  sstr[2];
var p.Wage =  sstr[3];

Not helped? Try to rename “Bin” directory into “bin” “mv Bin bin –r”. Actually this was fixed in latest versions of Mono, but who knows?…

No? Check whether you have partial classes, which is not supported by Mono. If so, recompile it like this

mcs /t:library /out:bin/test.dll –r:System.Web –r:System.Data –r:System.Web.Services –r:System.Web.UI.Controls test.aspx.cs

If you have Generics in your code, you should use gmcs, rather then mcs.

Not helped? It looks, that you have to either install Mono on your Windows machine and debug your code with it. Or, alternatively install GTK# and do in on Linux.

But wait, before doing such big step, install and check the binary compatibility of your code. To do this, you need “Moma” – a simple tool, that tell you if everything is ok for Mono in your assemblies.

Good luck and see you in my forthcoming TechEd session, where I’m presenting openSuse, running UDP multicast server with ASP.NET 3.5 extended methods (It uses recompiled ISAPI filters for apache, rather then regular limited AJAX support in Mono)

Have a nice day and be good people.

TechEd preparation session + other announcements

If you want to attend my preparations before TechEd, you’re invited to attend 27-Jul in Microsoft Ra’anana.

What is preparation session? This is the training for myself. I’ll present all four session (each one is an hour + one hour rep.) This is your chance to hear live my TechEd South Africa sessions, without paying the fee (ZAR 4,500 which is about $600)

Please note, that all lectures are in English (not in Hebrew)

Here the agenda for 27-Jul (Sunday). It will take place in Microsoft Israel building in 2, Ha’Pnina st. Ranana, Israel


Time Session title Conference room
8:30-10:30 Creating Rich Applications with Windows Presentation Foundation (300) Media Center
11:00-13:00 WPF Performance (400) Visual Studio
14:30-16:30 Game Development Using Microsoft’s Latest Technologies (300) Vista
17:00-19:00 Understanding Reflection (400) Vista



Also, be sure, you’re attending my session in Expert Days 11-14 August

And/or if you were not able to attend Silverlight 2.0 for building Rich Internet Applications event, you are welcome to book the next session at 23-Jul

That’s all for now, see ya…

Presenting at TechEd Developers South Africa 2008, Durban

Save the date. TechEd Developers South Africa is around the corner (August 3rd through 6th). This year it will take place in Durban, the third most populous city in South Africa.


This TechEd, there are four sessions assigned to me:

Creating Rich Applications with Windows Presentation Foundation (300)

Completely new session about how to enrich user experience, by decreasing development efforts with WPF. In order to do this, we’ll try to take some application and completely recreate it, by using XAML only without any single code line.

Target audience: Developers and decide makers, who what to understand what can be done with WPF and how easy you can do it.

Understanding Reflection (400)

This is also new session for lazy developers. It’s not only about what reflection is or what’s new about reflection in latest frameworks (including .NET 3.5 and Silverlight), but also how to use it to make developer’s life easier. We’ll enter a bit into IL to understand what’s going on under the hoods, but most of session is about appliance of this technology for everyday developers’ tasks and challenges.

Target audience: Developers, have an experience with .NET programming

WPF Performance (400)

Session very similar to one, I had in Dev Academy 2. However this time it will focus on performance enhancements in .NET framework 3.5 SP1. I’ll speak about virtualization, parallel processing, DX surface direct access and more…

Target audience: Developers, have an experience with WPF development.

Game Development Using Microsoft’s Latest Technologies (300)

Fun session, I had in TechEd Israel with very complicated setup. Here the sneak preview of how it looks like. It listed as a 300 level, because the fact, that except this session’s fun, you can learn a lot of new there.

Target audience: Everyone, who love technology and want to have fun hour in the morning before advanced sessions will begin.

If you’re reading my blog, and you’re going TechEd Africa. Come and say me hello, ‘cos it would be really nice to see the faces of the people I’m writing to in this blog :)

More information about other sessions in this TechEd can be found in Ahmed Salijee blog, who is developer evangelist in Microsoft Africa and arranges this event.

See you there.

Quick note: New TechEd downloads

There is TechEd in Orlando, and this means, that there are a lot of new announcements. Let’s fill up our download managers with expensive fuel and start.

Silverlight 2.0 beta 2 + Microsoft Expression Blend 2.5 June preview will be available for download very soon. Keep watching. Meanwhile, you can start learn about new TabControl, VisualStateManager, new templating system and cross-domain policy from Tim Heuer’s blog. Also there are some news about event bubbling in beta 2 in Jesse’s blog.

Silverlight accessibility and CEO support for beta 2

Yesterday, beta 2 of Silverlight was officially announced in TechEd Orlando. There are a lot of interesting changes. One of most significant changes, I want to notice and accessibility support in Silverlight. See yourself (if you do not know what this image about, see this post)


What should you do in order this to happen? Absolutely nothing. This is build in feature in Silverlight 2.0 b2. It’s not like WPF, where you should use Automation namespace boundary. This just works. You can read the Silverlight content with screen narrators. Great respect to dev team.

Why this CEO friendly? Come to my Silverlight half day session at July, 30 to learn why.

Regarding other features, there is new templating model in Silverlight, named VisualStateManager. It can save your time in controls development. Do you remember me speaking about State oriented programming in Silverlight, rather, then KeyFrames oriented programming in Flesh? That what is it.

if (SomethingHappened) {
VisualStateManager.GoToState(this, “SomeState”, true);

Also, there is TabControl, text wrapping and scrollbars for TextBox. Regarding DataGrid it become much faster and enhanced by Reordering, Autosize and Sort capabilities.

There are also some security enhancements for Cross-Domain networking and duplex communication. If you not sure about what is it, see this and this post.

Also now you can work with LINQ-to-JSON, ASO.NET DS and SOAP-based data sources.

In additional, there is new XML-based format for DeepZoom MultiScaleTileSource and MultiScaleImage controls.

Have a nice day and be good people.

My TechEd ‘08 presentation slides download

I do not know why, but for some reason in development section of TechEd website there are only two recording and no presentations. I do not want to wait for them to upload (we sent all presentations a while ago), so here it comes. My TechEd presentation DEV335 – Game Development Using Microsoft’s Latest Technologies. I have no recordings by now (so pity), so you’ll have to wait for Microsoft to encode and upload it. Upon it will be done, I’ll publish it here.
There is no real reason to upload samples – they will not work without all environment we had there.

Download full slides from my TechEd presentation (PPT 7,165 KB) >>

If you have any questions, feel free to contact me by using contact form or LinkedIn profile. You also can send me a message by twitter


TechEd behind the scene – System setup

Alex posted his video about how we setup the most complicated demonstration in this TechEd. Now it’s time (I promised) to post my video about how it was at 6 AM after night party in TechEd.

TechEd is over – last TechEd related post

I know, that I made you tired of all those TechEd related posts. So this is the last one (I’ll post full presentation and demo sources later), I promise. Unfortunately, I’ll be unable to attend bloggers’ lunch (my flight is at 8:20 pm), so I want to tell thank to all bloggers, that rapidly posted TechEd related stuff, to all those who worked hard to prepare such event, to all presenters and visitors (do not forget to fill the survey). The event was good. I’d give it 9 of 10. The point missing point for some, who worked not hard enough to prepare and lectures’ start and end punctuality of some presenters. Overall experience was great. You did it! Thank you and see you on next event.





WPF Disciples
Code Project