Meligy’s AngularJS and Web Dev Goodies – Issue 3

Hey there,
Welcome to Issue 3 of the newsletter. If you want to check the previous editions, you can go to You can access a particular issue like, for Issue 2 you go to

This time I have played a bit with the schedule and the order of sections. The idea is to experience different ways and hear your feedback on what works better. either on twitter or by email (simply replying to this message).

SEO — News

Video: Google will render JavaScript by end of the year
During AngularJS NYC usrgroup for September 2014, Brad Green, a Google engineering manager working on Angular.JS among other things said that Google crawler will render all JavaScript by the end of this year, and their should be tooling for checking that in Google Webmaster Tools as well – Discuss on reddit.

Angular.JS — Libraries

bind once for Angular.JS < 1.3
A set of directives that allow you to bind values to the UI only once instead of watching for model changes to update the UI. This is particularly useful when you have a long readonly list inside ng-repeat where most properties are unlikely to change until the entire list changes (and then the whole template will be re-rendered).
The concept is now native in Angular.JS 1.3, and there are other libraries that try to enhance it, like angular-watch-require and angular-watch-when.

If you use require.js and want to have lazy-loaded modules with it, there are several tries out there that get that sort of thing done. If all you want though is just lazy loaded modules that are loaded and bootstrapped on the fly when a certain route tree is matched (like areas in ASP​.NET MVC Areas or Rails Namespaces). Might be good for large Angular.JS apps. It also has been mentioned on the Adventures in Angular podcast.

JavaScript — MVC Frameworks

MVC Architecture
A very nice article about how we don’t exactly implement MVC as 3 parts, Model, View, and Controller. We usually had other parts too. I think the closest way to how I implement MVC is the last picture in the article.

Why I Don’t Want Your JavaScript Framework but I Love You
If you are in the mood of reading about what homework you may want to do before you actually go ahead and use a JavaScript framework, this could be a good read.

JavaScript — Ember.JS

I have a few links for Ember.JS this time that it will feel like I’m moving to it, although I’m not, I still find its innovation very inspiring as you’ll see below.

Mistakes I Made in My First Ember Project
If you have been following the newsletter for a bit, you know I value knowing how other SPA/MVC/MV* frameworks solve the same problems that Angular.JS solves. I think this knowledge is beneficial regardless of the framework because many of the issues have equivalent in every framework, and thinking about different approaches can really help you get the most out of whatever framework you use.

Event Delegation in Ember.JS – StackOverflow
When you use ng-click inside ng-repeat in Angular.JS, it doesn’t usually set one event handler for the parent of the element and use event bubbling to set it, although you can do it yourself via a directive. It was interesting to find out randomly via StackOverflow that event bubbling is how Ember.JS works by default!

Building rich single-page application with Ember.js
Historically, one of the things that stopped many people from learning Ember.JS was how hard it was to get to understand its pieces. This is now changing a lot (or may I say changed?) with better documentation and more great guides, like this one, which was very simple and lovely to browse.

JavaScript — ES6

Traceur is Awesome! … but still a little Painful
Don’t be turned off by the title. Traceur is a nice tool from Google to compile ES6 code to ES5 code that can run in any ES5 browser (most browsers, and even older ones can be polyfilled). This post describes what the experience is like when using it (.NET people might find using TypeScript a better option for its VS integration though, although it’s not not exactly ES6, you can sometimes go even crazier with some F# mix).

JavaScript — Debugging / Performance

Video: Advanced Debugging Techniques with Chrome
A must see video of what goodies exist in Google Chrome dev tools (including some of the relatively new features like new enhancements to emulation), this is probably a must-watch video for you. I have been using the tools for years and found quite a few things I didn’t know before.

JS Parse and Execution Time
When you use a framework (quite often you should), there’s only so much you can control in terms of performance. This article examines the time it takes to parse and execute jQuery on so many browsers and devices. It has some interesting observations, like how the total times vary like crazy between different devices, and how device hardware is still the major determinator is hardware rather than software (OS or browser).

Security – HTTPS

I think we are in the (very?) early days that will lead to all websites running HTTPS by default. Apart from privacy concerns, SCARY attacks, there’s also industry leaders push and relative ease of implementation. But it’s not something that everyone needs to worry about just yet.

SSL and SEO: Don’t Panic
There are a few messages that I want to send from sharing this:
1. Google announced they will consider SSL as one of its many ranking factors
2. This doesn’t mean you should freak out if you are not using SSL (the point of the link above)
3. But SSL is worth it anyway, as in most recent hardware and software (including IIS 8 and maybe 7.5) it’s already fast (the traditional old concern about SSL, apart from cost for tiny websites).

Slides: Is TLS fast yet?
If you are thinking about implementing HTTPS and worried about CPU performance, your server documentation documentation should tell you whether there are significant performance overhead (I checked some common ones and they were all saying nothing to worry about). This presentation helps assure the same idea.

Cloudflare – Introducing Universal SSL
The well known CDN provider Cloudflare announces availability of SSL services for all their plans, including their free plan. They serve files in HTTPS, and can be configured to pull assets (as source files to publish on the CDN) from HTTPS URLs as well. Here’s a basic write up of how to use it.

Security — General

Waxing Poetic with SwiftOnSecurity
I didn’t plan to make this newsletter mostly about security as it ended up being, but this story that reminds us of how some users can be so vulnerable in a way we can’t blame them for, is quite a good read.

Microsoft — Windows 10

Video: Windows 10: Enterprise Features & Core Experience for Businesses
You must have seen a ton of Windows 10 videos already, for me, this was pretty much the deepest one of them that related to me as a developer and showed the philosophy of the product.
One fun moment in the beginning of the video was giving a reason for the name, Windows 10 (instead of Windows 9), apart from considering Windows 8.1 as 9 (if you want) which the video didn’t suggest, it said that the main idea was calling it Windows One, similar to Xbox One and One Drive, etc. Windows One was taken as Windows 1, so they went for Windows 10! (if this is silly still – I think it was meant to be more funny than true-, I promise the rest of the video isn’t).

Video: Scott Hanselman Detailed Windows 10 Tour in just 8 Minutes
Scott is very well known in the ASP​.NET developer community as his work at Microsoft is mainly around that community and ASP​.NET MVPs, etc. He is a great person and speaker. His Windows videos are not something that he does for work, which makes them even greater and more realistic.

Windows 10 Insider Program / Preview
Just in case you missed the URL to get the technical preview! I have heard a few positive comments from some of those who played with it, especially on a Surface laptop (of course).

Apple / IPhone / iOS — Quick Links

iPhone 6 Screens Demystified
Also check their iPhone resolutions guide

iOS 8, thoroughly reviewed
Very long / detailed review

Video: Steve Jobs introduces WiFi to the masses with a hula hoop!

JavaScript — Quick Links

Promises in the Google APIs JavaScript Client Library
Google’s JavaScript SDK now return promises, for easier integration into promises-all-the-things!

Bye Bye Javascript Promises!
async/await like code in JS?

A JavaScript library to generate responsive stylesheets.

Explorations In Automatically Fixing JavaScript Linting-errors
By Addy Osmani from Google

Calculating Standard Deviation with and Array.reduce, In JavaScript
A bit of a different challenge

More from @Meligy / GuruStop

Thanks a lot for making it that far. If you like what I brought you, let’s connect in even more ways!

Follow me on twitter — @Meligy

Check The Newsletter Archive —

Get friends to receive the newsletter —

Remember that you can just reply to this email or mention me on twitter to tell me what you feel needs to change in next issue.

Until then,

Angular JS 1.3.0-beta.1 Available – Removes Support for IE 8

AngularJS vs IE8

I was checking the last version of AngularJS now and noticed a new version, 1.3 beta 1 is now available. The last 1.2.x release is 1.2.14.

Interestingly, beta 1 doesn’t seem to have any big fixes or features. The changes presented only include a fix for using <tfoot> tag as a top-level parent of Angular template, and being able to use <style> tags in your Angular templates.

The features only include supporting new <input> types, in particular date, time, datetime-local, month, and week.

A Quiet Release

One interesting thing about this release is that there is no official blog post about it. Actually all the other minor versions (1.2.x) didn’t have special blog announcements, and the team said they’ll only do it for big releases. I’d still have thought the first Angular.JS 1.3 public release to be considered big though!

The only mention in the release notes goes to an old post dated in December last year, that informs about the removal of version 8 of Internet Explorer.

The Big Change: Bye bye IE 8

The obvious and only breaking change in the first beta of AngularJS 1.3 is removing support of Internet Explorer 8. The so-called-breaking change doesn’t remove IE8 specific behaviors or workarounds. It only removes IE8 from test configurations, but you probably expect more breaking changes to follow.

Is removing IE8 support a real problem?

I think it is. Well, removing it is not news, but it still is a tough step at least on the short term.

According to the new stats published by TheNextWeb (originally from NetMarketShare), Internet Explorer 8 is the world’s most popular browser version at the moment, and it’s increasing in popularity (even if only by a fraction percent):

IE8 unfortunately regained 0.48 percentage points, and it’s still the world’s most popular browser at 21.73 percent

Compared to Chrome:

At 16.84 percent, Chrome continues to slowly recover its losses in 2013, and is getting close to finally passing Firefox. Chrome 33 only managed to grab 3.70 percentage points, which would have been higher if it was available for a full month. Chrome 32 grew to 3.07 percentage points to 9.86 percent, while all other versions were down: Chrome 31, Chrome 30, and Chrome 39 fell a combined 5.91 points.

Yes, things are better if you ignore browser versions:

Nevertheless, for February 2014, StatCounter listed Chrome as first with 43.89 percent market share, IE in second with 22.49 percent, Firefox in third with 19.21 percent, Safari with 9.74 percent, and Opera with 1.34 percent. The only part everyone agrees on is that Safari and Opera are not in the top three.

But still, obviously browser versions are still a thing even for ever-green (automatically updating) browsers` stats, so, it’s even more important for non-automatically updating browsers.

Bonus Note: Following Up With Angular.JS Releases

The best way to know whether there is a new version of Angular.JS, and get a detailed list of all changes that can help you decide whether to upgrade to it is the official ChangeLog file on Github:

Every now and then I check this file and learn about new releases. That’s how I knew about the new beta.

Maintaining your personal brand online with @TathamOddie – New Video

My new video featuring @TathamOddie on maintaining your personal brand both online and offline is now up…

Tatham Oddie is a well known public figure in Microsoft world as he speaks in so many .NET conferences around the world and is an active contributor to several high profile open source projects like WebFormsMVP.

In this video Mohamed Meligy interviews Tatham on online personal branding and ow you can makes the best out of people you meet in social media and offline groups. Tatham shares his experience on how to make it easy for people to recognize you and communicate with you for both social and business benefits.

NodeJS On Windows – Choosing Components To Install

In case you didn’t know, NodeJS v0.10.0 has been recently released, a number of interesting changes were mentioned in the blog post, mainly around making some core APIs easier to use, which required several in changes in the codebase to support, and caused some interesting performance characteristics changes .

I couldn’t wait, so, I looked for the Windows x64 installer, downloaded and ran that, the usual Next .. Next .. installer, well, until I saw this installer step:

Node JS Custom Setup Step

Although I can’t think of a scenario where I’d deselect any of these, just the fact that I could clearly see and choose what Node installer will do was great. I have an interest in the NPM part installation behaviour you know, this screen gets me pretty close to more understanding and utilization of this understanding, which I may blog about later.

Great job, Node team :-).

For those who wonder, Readify is still (always) hiring

This is an open letter I wanted to share with you…

Anyone doing software development on Microsoft platform?
(or knows someone who does)

I think I may have a challenging opportunity for you.

I work as a Senior Consultant for Readify Pty Ltd. Readify is an Australia-wide software consulting company specialised in Microsoft technologies. We have a lot of MVPs and ALT.NET developers (for example, we have the writers of Castle and Autofac IoCs, and Linfu dynamic proxy used in NHibernate, among many others including several worldwide technical speakers and book writers).

The company is also specialised in hiring the top 10% developers all over the world (so, if you have friends from Egypt or any other country, they are also welcome to apply).

Some of the company’s recent awards:

– Microsoft [[ Worldwide ]] Software Development Partner of the Year 2012
– Microsoft Australian ISV Software Development Partner of the Year 2012
– Microsoft Australian Software App Partner of the Year 2012
– BRW Best Places to Work Listing for [[ 2010, 2011 & 2012 ]].

If you would like to learn more, and then maybe consider applying, I wrote more about what it’s like to work for Readify from my own personal perspective (including notes about the recruitment process and answers to common questions):

Readify is always hunting for the best talent all over the world, so, this is open call that you can use any time, although cool stuff better not wait

Once you are ready, apply TO, CC:


Please note that due to the very nature of Readify as a software development "consulting" company not just a normal software shop, we do not usually offer overseas vacancies for junior developers (we offer "local" internship program). This is for senior developers and beyond. Also, we do not usually offer vacancies for designers, testers, dedicated project managers, or administrators, as these roles are often handled by our clients already.

My Recommended Windows Server 2012 R2 Hosting (Dedicated Server Or VPS)

Windows Server 2012 R2

Soon after Windows Server 2012 has been released, I was wondering when hosting providers will start providing it, talking to the hosting provider that hosts this very blog, SoftSys Hosting, they told me that they already have Windows Server 2012 hosting plans, bother for Virtual Server (VPS) or dedicated servers.

I’ve been their happy customer since 2009 or before, so, I can confidently recommend them for anyone willing to have a Windows 2012 server soon.

They’re generally in the economical category (so, great cost), but I have tried others in this category before and the others all were useless for anything serious, with SoftSys Hosting on the other hand, their VPS performance, general network speed, and support responsiveness all are of a premium class.

Check their offers here

DDD Sydney Is Back – Vote For Sessions & Register Today

It’s this time of the year, and DDD Sydney is taking place again by end of June 2012 :-)
Yes, it’s “the other” DDD …  Developer Developer Developer!

If you don’t remember the way sessions get chosen in DDD is that call for submissions is first open for everybody for a couple of weeks, then the submitted sessions are listed for public voting for similar time (or so). Anyone can choose up to 10 (TEN) sessions that they want to have available if they decide to register for attending the event. Later, most voted sessions are what gets into the event agenda.

The registration is usually open by voting time (now!), although more actively publicized after the vote is closed.

My Session Proposals

Like last year, I have submitted some session proposals for DDD in the hope to get one of them voted most to deliver within the day.

You can see all submissions and vote for the ones that interest you most from here. I have included a copy of my submissions here in case you find the page hard to read (or just zoom-in a bit).


Introducing ASP.NET Web API (Level: 100)

ASP.NET Web API streamlines the development of HTTP services especially for developers with even little ASP.NET MVC knowledge. Being separate from WCF removes a lot of the effort and provides really simple configuration.

This session introduces ASP.NET Web API, and some of the obvious questions about it, starting with what it’s like to develop services with it, what power the service controllers share with and how they differ from any standard ASP.NET MVC controller for routing, filters, model binding, and managing common HTTP request/response aspects.

Then it gets into handling common scenarios like authorization, validation, content negotiation, custom JSON formatting (e.g. for dates), and OData capabilities, as well as showing the differences between hosting your services with ASP.NET hosting vs. self-hosting.

Back to Basics: Understanding Twitter OAuthentication (Level: 300)

Most people who provider Twitter Authentication use managed wrapper libraries around Twitter REST API. Some libraries are better than other libraries in certain areas, where they are more feature complete, faster, or easier to use for specific tasks. If you put some understanding of how the process of communicating with Twitter OAuth (and other APIs) works, and use the libraries with awareness instead of just letting them do their “magic”, this not only allows you to mix and match libraries and usages (like storing the user login in DB for background operations if your app requires this).

This presentation introduces how Twitter OAuth works from a client application perspective, and shows how different popular libraries encapsulate this and you have extra control on the process and storage of your users login tokens and how they can mapped to ASP.NET forms Authentication, and how you can reuse those tokens later with different library or different executable/service having the same application identity.

If you ever got confused trying to understand how Twitter OAuth process is like, or how to troubleshoot common issues with it, or even achieve a related advanced task, this session is for you.

As a sort of bonus, the presentation also shows quickly how to use FormsAuthenticationExtensions NuGet package to store extra information in ASP.NET forms Authentication ticket, as well as an introduction to Twitter XAuth, usually used for mobile (and desktop) apps.

LESS CSS for .NET Develoers (Level: 200)

When a developer writes CSS, they quickly notice the must-have features which CSS does “not” actually have, variables, functions, and calculated operations are most obvious examples. As the web evolves, developers have become more exposed to HTML5, JavaScript, and CSS3 on daily basis. So, they came up with a number of languages that come and fill in the gaps in them. Out of those languages, LESS is the one that looks most just like plain CSS.

LESS provides a number of handy extensions to CSS that developers especially love most. In this session, we go through those features and where they fit for modern web development. We also go through the .NET developer experience working with LESS, from IDE integration (using Visual Studio) to build integration and minification, and some bonus tips for large projects.

Introducing jQuery Plugin Development With jQuery UI (Level: 200)

Developing a JavaScript widget as a jQuery plugin can be tricky when it has to interact with more plugins and complex elements in the same page. The plugin needs to maintain a set of possible states of itself and maybe other plugins used, apply various operations based on different states, and maybe allow the users to call the same plugin to apply different operations applicable to each state. This applies to even the simplest operations like expanding/collapsing a collapsible widget, allowing more plugins to be notified of changes in visibility, etc…

jQuery UI introduces a core component called “Widget Factory” which can make developing flexible JavaScript widgets straight forward, and helps more to get more widgets to work together in complex scenarios.

This session shows how to simple jQuery plugins to use jQuery UI plugin widgets, as well as providing some tips for large applications implementing their components as jQuery widgets, and some bonus tricks around optimizing your jQuery code for better overall page performance.

Call To Action

Now it’s your turn, I again highly suggest you vote for the sessions you like here.

Also, once the announcements are made more widely about the already open registeration, tickets usually fly very quickly, so, to guarantee a ticket to DDD Sydney, you better register early from here (costs A$25).

Hope to see you there :-)

Hey, Readify is hiring all across Australia, from all over the world!

Too long to read?

Readify, the great consulting company where I work now, is hiring for Senior Developer (Consultant) and Senior Consultant positions all across Australia, and sponsors work visa for accepted international applications. You can apply here:

You can also just sit down and write an introductory letter about yourself why you think you may be a good fit for Readify, attach your resume, and send it TO CC (and I’ll ensure it’s processed, even though this normally not much needed).

And it’s all still current!

If you come here thinking “This must be outdated”. Don’t worry, Readify is always expanding and hence is always hiring too.

Except after this post was originally written, Readify was honoured several other awards as well:

Microsoft Worldwide Software Development Partner of the Year 2012

Microsoft Australian ISV Software Development Partner of the Year 2012

Microsoft Australian Software App Partner of the Year 2012

BRW Best Places to Work 2010, 2011 & 2012

Working at Readify, what’s it’s like


Through blog, twitter stream, and more, you probably saw me talk about how awesome it is to work here at Readify. Being in the same company with Tatham Oddie (the creator of WebformsMVC and tons of other things, and frequent speaker in MIX and other events), Richard Banks (the father of ALT.NET Sydney, and great Agile master), Krzysztof Kozmic (the Castle Windsor guy), Philip Laureano (the creator of LinFu dynamic proxy, used by default in NHibernate),, and .. the list is so long actually, and I have missed most of them…


Not just that, through my work at Readify, I have had the chance to play with a lot of technologies and frameworks. Windows Azure, OData, WebformsMVP, Windsor, Autofac, SQL Server 2008 R2, ASP.NET MVC, jQuery, jQuery UI, knockoutJS, HTML 5, CSS3, and have all sorts of geeky conversations about the newest hypes like Windows 8 and VS 11.

Note that some other technologies people use here include WCF, WPF, Windows Phone, and more…)



Readify is a consulting company. Working as a consultant is nice in that you always go to new customers and work with different projects all the time. It’s very unlikely that you stay at the same customer for more than 6-12 months, and it’s not so rare to have 4-12 weeks customer engagements.

If you like what you see, and want to be part of it, then I have some good news for you.

Want to know more?

Check out the official top 10 reasons why it’s awesome to work at Readify.

Readify is hiring, what, where, and how?

One of the nice things about Readify is rapid growth. Since Readify started, it has always been hiring and expanding in size (more than double sometimes) every year. This is a scary thing if it happens once or twice, but if happens every year, this is sure a great indicator.


All across Australia, accepting overseas candidates

So, it’s 2012, and Readify is hiring for the (still?) new year. in brief, we need Senior Developers (consultants), and Senior Consultants (like team leaders), to work for Readify in our various branches in different states across Australia.

You don’t have to be located in in Australia already to join Readify though (but happy to be). We actually are 4 Egyptians here distributed across Sydney, Melbourne, and Perth and expecting more to join soon.

See update 4 for information about different states to choose


How to apply

Just go ahead to:


First thing you’ll want to check what it means to be a Senior Developer or Senior Consultant at Readify, what the responsibilities are like, and what Readify expects from the candidates applying for each of these positions to decide which is best fit for you, and maybe navigate a bit across the website as a whole ( to learn more about the company as a whole.


Once you do that and feel comfortable, send an email to the recruitment address ( or use the online application in the selected position page.

Feel more than free to quote this post in your application, CC me and/or mention this post as your reference (such a pleasure, thanks!), or just send it normally (it’s the same from the process point of view).


I also highly recommend you check the recruitment process page, to know what expect after you apply:

As you probably guessed, you don’t have to mention this post in your application, but I’ll sure be more than happy fi you do!

Update 1: Can you CC me?

As some people asked, yes, it’s OK to CC in your application email to Readify. I will “not” make any difference to your application as Readify recruitment process is already optimized and begins pretty quick, but I wouldn’t at all mind if you CC me.

Actually, you “CAN” even CC my Readify email if you want:


Update 2: What about the visa for international candidates?

Another FAQ I have been getting is “what about the visa?”. Readify sponsors a 4 years temporary business visa for accepted overseas candidates and their family (partner, kinds), and provides lawyers to assist you in lodging and following up the visa application.

The final offer is obviously conditional based on the government approval of the visa.


Update 3: What if I fail? Or Can you review my resume first? etc.…

OK, first, Readify is trying to maintain a standard of hiring only top 5% of the world developers. You need to decide first whether this is a challenge you want to take.


Your CV won’t make a big difference as long as it doesn’t look horrible or unrelated to position. In most cases you’ll get back a coding puzzle to solve (and return Visual Studio solution), After that there is an HR interview (very friendly one), and then a technical interview and debugging test (given a problem in Visual Studio while the interviewer watches your screen online to see how you approach the problem s/he gives you, which is more important than the solution itself). The rest is more of an administration stuff really and people are unlikely to fail at.


But most importantly, if you fail at any step, you get back a nice feedback about which areas you need to improve to meet Readify’s (high) standards. It’s also all OK to work on those areas and re-apply after a year or even few months (going through all process again).


Update 4: What’s the difference between cities / states to live in?

The most common cities are Sydney, Melbourne (has the Readify head office), Perth, and Brisbane. Each of them has some benefit. Most Egyptians only heard of Sydney, Melbourne has a nice cultural nature (including Muslim university, various cultural places & events), Perth is “very” fast growing business city, moving quickly from a small city style to a mix of the good in both, and Brisbane is known to be a very beautiful city in general. I only live in Sydney, which is getting crowded now to be honest. I think for Egyptians maybe Perth and Melbourne are the best choices, while I pretty like Sydney and hope to visit Brisbane still,

You don’t have to decide now though. If you get accepted in first or second step, google those cities, see pictures and comparisons and decide which is best for you.

On DotNetArabi Podcast Again! Talking about Version Control Systems (In Arabic)

وصف الحلقة من دوت نت عربي:

الحلقة 21: محمد مليجي يتكلم عن برامج التحكم بالمصدر الموزعة
Distributed Source Control

يتكلم محمد مليجي عن حلول البرمجيات المستخدمة للتحكم بالشيفرة، و بالأخص منها الحلول الموزعة مثل جيت Git، و ميركيوريال Mercurial، ذكر محاسنها و عيوبها، و متى تستخدم. ،كما ذكر بعض النصائح المتعلقة بها و كيفية التعامل معها بالشكل الأنجح

تنزيل الحلقة: MP3 ,ZIP


So, for my Arab friends, the last episode of DotNetArabi  (which -as the name suggests- is a .NET focused podcast, a bit close in style to HanselMinutes and DotNetRocks, but in Arabic) has been released, and it’s featuring me, talking about Version Control Systems.

I have been on DotNetArabi back in 2009 talking about ORMs. In the new episode (recorded June 11, 2011), I discuss the current options of Source/Versioning Control Systems (VCS). Starting with classic ones like TFS/SVN to the Distributed Version Control (DVCS) ones like Git/Hg. Sharing some stories of myself and others working with various options, and giving some tips and tricks around not only choosing a VCS but facing some tough situations in branching and even work-politics (yeah) when it comes to using those.


Podcast Link:

Direct Download:



نادرا ما أكتب في مدونتي بالعربية، و إن كنت أستخدمها كثيرا على تويتر و فيسبوك. وبطبيعة الحال أكثر أصدقائي من مصر و دول عربية مختلفة، لذا سعدت لاستضافتي في دوت نت عربي منذ حوالي شهرين. وهي المرة الثانية بالنسبة لي إذ كانت الأولى في 2009 وتحدثت عن الـ Object Relational Mappers و نقل المعلومات بين قواعد البيانات و بين الكود.

الحلقة الثانية نشرت هذا الأسبوع، و فيها أتحدث مع عماد العشي عن الـ Source/Version Control Systems أو برامج الحفظ على الملفات و ترتيب النسخ و تبادلها (نعم، أتفهم أنكم تعرفون المصطلح الانجليزي أكثر)، أتكلم عن الخيارات المتاحة التي نعرفها جميعا ثم ننتقل في الحديث للنظم الموزعة Distributed Version Control و الفرق بينها و بين النظم المركزية التي نستخدمها جميعا، و ألقي بدلوي و ما فيه من قصص مع أنزمة مختلفة (لي و لغيري)، و بعض وجهات النظر في استخدام كل نوع.


أرجو أن لا تكون الحلقة مملة بالنسبة لكم، و أن تكون دردشة مناسبة لرحلة بالباص أو السيارة أو القطار مثلا لئلا أضيع لكم وقتكم.. رابط الحلقة:

للتحميل مباشرة:

DDD Sydney Registration Open – My Session Submissions

DeveloperDeveloperDeveloper Sydney 2011


If you are going to be around Sydney during beginning of July, there is a great technical event going around that will be going on July 2rd and 3rd.

DeveloperDeveloperDeveloper! Sydney is this year being hosted on 2nd & 3rd July. The developer conference, for developers by developers – with three tracks of great content covering a mix of ALM, Web, and general development topics from the best community and industry leaders!

On July 3rd we will offer you the opportunity to compete with others in building a proto-type application Windows Phone 7 Mango or the Kinect for Windows SDK and take out the prizes for the day.


The registration for the 2 days of the event is now open. You can choose to attend only one day if you like.

You can register for DDD Sydney at

Voting For Sessions

If you plan to attend DDD Sydney, you will love to know that you can help determine how awesome the event is going to be by voting for topics you want to attend from the pool of session submissions.

Remember, y the list of sessions available for voting before registering.


My Session Submissions

If you check the session voting page you’ll notice 2 session submissions by me. You van check the sessions and vote for them if they sound interesting enough to you.


Demystifying NuGet (Level: 200)


NuGet is the new standard way to get code libraries. In this session Mohamed goes from basic get-package examples to more to creating packages, local / intranet package stores, resolving version conflicts for packages you want to get or create, using PowerShell, Package Explorer, and NuGet gallery authoring options.


Through the session, Mohamed answers questions like: When to update the same version of the package or add another? How often should your NuGet package be updated and should you use source code trunk? How much documentation, samples, or configuration code should the package have (using config file transformations and code templates)? How to interact with projects (like creating pre/post build steps)? And when to use source code packages instead of packing assemblies? The session involves a discussion about particular popular packages scenarios, like SQLite, and NHibernate.


The Extreme Power of Razor View Engine (Level: 200)


The session starts by comparing Razor to different ASP.NET MVC view engine options like webforms and Spark, and stating which purposes each fits best. After knowing what the options are, Mohamed goes into the specifics of Razor, how to do markup templates in different ways, and, the unique constructs that Razor adds to the mix for mixing inclining text inside Razor code blocks other than simple &’text’ tags.


Mohamed will also discuss different options for packaging Razor code like helpers and functions, the pros and cons of each. Since the power of Razor isn’t just useful for HTML, Mohamed also shows how to use Razor for content types JS files, covering intellisense and routing for them, and the difference between using Razor in ASP.NET MVC and in ASP.NET Web Pages (Web Matrix and Visual Studio ASP.NET Razor projects).


If you like the sessions, you can vote for them on:


DDD Sydney Sponsors


See you there!