Tuesday, 9 November 2021

Clear clutter from your Outlook Calendar

Are you tired of seeing a sea of (especially recurring) meetings that you don't care about and that are polluting your calendar? Do you long for the days where your Calendar is Free and only shows meetings you actually plan to attend?

Well, you could always delete the offending meetings, but where's the fun in that? (Plus, I like to keep those "Office Hours" invites handy just in case I may need them some day)

The answer? "Show as FREE". Here's how you do it:

  1. First, setup a filter to hide all meetings that are marked as "Show as free". See How to hide appointments showing time as free in Outlook calendar? (extendoffice.com))
  2. Now, all you have to do is go through your calendar and mark any meetings you'd like to hide as "Show as Free" and watch them go!
  3. If you prefer a more dramatic approach, start by marking the offending meetings first, then set the filter and watch them all disappear at once!
If, at any point, you want to see the hidden meetings, all you have to do is go to "View (tab) => View Settings => Filter => Advanced", select the rule that filters out "Show as Free" and remove it. Once you're done, you can add it back to hide them again.




Thursday, 2 August 2012

Post/Email-3: Events in .NET

Today, a friend of mine asked a question on facebook:
Any body knows why wouldn't the selectionChanged event be fired?
I'm trying to change the text of a textBlock once I scroll to the next item in a pivot page
When I came into the scene, so to speak, another person had supplied the fix for the issue like so:
hmm in xaml u have to call your function SelectionChanged="thisPivot_SelectionChanged" and your textblock gets changed...
<controls:Pivot
 Title="MY APPLICATION"
 SelectionChanged="thisPivot_SelectionChanged"
 Name="pivot">

Then I started talking to my friend, and here’s how our conversation went:

Saturday, 9 June 2012

Post/Email-2: Views, ViewModels and Composition


Recently a friend of mine asked me the following question on Facebook:

brother, hope i am not disturbing you. had a question. if i have mutliple tab items in one page in y silverlight app, while each tab serves different functionalities, would it be all right if i write separate view models for all of the tab items, and i expose this view models as properties from one view model and bind the page's datacontext to that main viewmodel?

Thursday, 7 June 2012

Post/Email–1: MVVM Light messaging, order of register and send is important

 
Recently a friend of mine asked me the following question on Facebook. I started writing a few sentences, which turned into a few paragraphs and before I knew it I was writing a very long reply. Then, something Scott Hanselman said on twitter came to mind:
"Every email you send is a blog post you didn't write. Stop writing emails.”
Because of this, I intend to write these “Post/Email” (or “Post over Email”) blog posts whenever someone asks me a question, so that other people would benefit from them :)
Here we go, with this question from my friend Saad Galib on facebook:
...is it at all possible to pass data between ViewModels using MVVM light messaging without ViewModelLocator? Because in a blog i read that that some class needs to register for a message before it is sent to receive it. Right now i have no locator. i send a message from ViewModel-1 bound to page 1 and then navigate to page 2 which in turn creates viewmodel 2 and in that viewmodel's constructor i register for that kind of messages(broadcasted from viewmodel1)....but its not working....:(
and this i definitely not satisfying the condition i read as i mentioned above. is there any work around?
The short answer is: no. The "no" here isn't because of the ViewModelLocator itself, but rather because of what you mentioned later about the order in which the subscription and broadcast are done.
The Messenger implementation in MVVM Light is simple and straightforward. When you register an object to some event, it adds it to a dictionary; and when that particular event is sent, it goes through the corresponding objects in the dictionary and notifies them (by calling the corresponding registered action). Therefore, when an object subscribes to a certain event, it only gets notified of those instances of the event which occur after it has subscribed. Which is the logical thing to do.
I'm not aware of anything in MVVM Light that would help with your particular situation, but there are other, maybe not so elegant, methods to transmit data between objects in a loosely coupled way. One of them, which I used myself but I'm not sure whether it's a good practice or not, is to have some sort of "buffer" where an object can put some data for other objects to take out at some point in time (in my particular scenario, I used a class "Pipe" with a static member "Data" that I set in one VM and consume in the other).
Hope this helps

Tuesday, 21 February 2012

What are Generics in .NET?

A little while ago, a friend of mine on Facebook asked me to explain to him what generics in .NET were. As I thought this might interest more than one friend, which it did, I decided to put it in a "note" on Facebook. That was before I started this blog, so now I decided to post it here, hopefully so that more people would find it useful.

Generics in the .NET Framework is a programming technique that allows you to create a "generic" (meaning that it's not tied to a specific type) class, structure or method. The type, which is in this case "an argument", is specified when that element is used. What's interesting, and this is another advantage of Generics in .NET, is that you can restrict that type by specifying, for example, that it has to implement a certain interface or have a parameterless constructor.

This concept allows for more type safety (the type is known when the generic element is being used), while promoting reuse (you create an element that's not tied to a specific type).

Sunday, 19 February 2012

Is Silverlight Dead?


"To Silverlight or Not to Silverlight!" That my dear reader is a question I've grown accustomed to hear! Here's part of a little chat I had with a friend on Messenger a couple of days ago:
 
"Friend" says:
yes that's exactly what i meant !
btw , is Silverlight dying?
"Me" says:
nah, it's having a headache that’s all
(from all the people who are saying it's dying )
"Friend" says:
haha, i see 

Thursday, 22 December 2011

Microsoft gives YOU an opportunity you shouldn’t miss!

I have great news! It seems my series is going to be put to work at last! It’s rather fortunate that I got it done just in time for this AWESOME opportunity ;)

Are you a student from the MEA region who’s graduating this year (well, even if you’ve recently graduated, I think you should go for it. Worked for me ;) )? Are you ready to have the exact same opportunity I had? DO YOU WANT TO WORK FOR MICROSOFT?! Of course YOU DO ;)

Anyways, enough with me rambling, and let’s cut to the chase. Here’s the announcement:

What fuels your passion?

Deciding where to start your career can be as nerve-wracking as it is exciting. Maybe you don’t know exactly what you want to do. Maybe you don’t even have a technology background. Fortunately, Microsoft will help you to build a career that evolves along with your interests and passions.

Jump right in to the deep end

That’s a phrase we hear a lot from people during their first week at Microsoft. And with good reason. From day one, you’ll plunge headfirst into engaging, meaningful projects. Your team members and managers will help you get up-to-speed in no time. It’s a thrilling way to start your career—and it’s only the beginning. Now take the first step.
Visit our website at www.microsoft.com/university
to learn more about our
Full-Time & Internship Software Development and Software Development in Test Positions
Apply by January 15 to be considered for our
Dubai Interview Event
March 5-8, 2012
 

Important information:

  • Information on applying, Microsoft Benefits, including complete relocation, US work visa sponsorship and other perks are available at www.microsoft.com/university
  • University recruiters at Microsoft review resumes with the following topical areas in mind:
    1. Academic Record, 
    2. Relevant Work Experience,
    3. Leadership 
  • Please note we are seeking Software Development Full Time & Intern candidates. NOTE:Full Time candidates must be graduating Dec. 2011 – August 2012. Candidates with graduation dates after August 2012 would be considered for internships.
  • Travel & Accommodations will be covered by Microsoft

Update:

So, many people keep asking the same question: “How do we apply?!”, which, I have to admit, is a very valid question. Here’s the answer:
  1. Go to the website: http://www.microsoft.com/university
  2. Explore the opportunities under
  3. Click “>> APPLY NOW” which is in the “orange box” in the left side.
  4. Follow the steps to complete your application.

Wednesday, 21 December 2011

Landing a Job At Microsoft, Part3: The In-Person Interview, Impress Them!

I know it’s been a while since the first 2 posts, but I’m finally getting around to writing the 3rd part of this series, which I hope is helping you, dear reader, to prepare yourself to get your dream job ;)

So, after writing your rock star resume, and after making a great first impression in your phone interview, you should be asked to do an in-person interview, or rather in-person interviews (as I had 4 of them ;) ). This is what you’ve been working for in the first two steps of the process. An opportunity to tell your story in your own words, to demonstrate your skills, to meet the people involved and to ask any questions YOU have.

Wednesday, 9 November 2011

Landing a job at Microsoft, Part2: The Phone Interview, Make a Very Good (first) Impression!


So, I’ve recently posted about the offer I got to work at Microsoft. Then, I started a 3 part series to talk about my experience getting the offer. The first one was about writing a good resume. In this one, I’m going to talk about the second step in the process: The Phone Interview.

In the previous blog post, I mentioned that writing a good resume is essential since it’s usually your first interaction with the company, and allows them to filter interesting profiles that match their requirements. However, as big companies get tons of resumes regularly, they usually have a second filter, and that is, usually, a Phone Interview.

A phone interview takes usually about 30 minutes, where the interviewer would call you by phone or using Skype. They introduce themselves, tell you how the interview is going to take place, then start going through the interview questions (more on that shortly). In the end, they’ll ask if YOU have any questions (more on that later).

Sunday, 23 October 2011

Landing a job at Microsoft, Part1: The Resume, Catch Their Attention!

In a previous post, I talked about the job offer I got to work at Microsoft. This is the first of a 3 post series where I share my experience and some tips & tricks and resources that could help YOU do the same ;)

So, The first step is your resume/CV. You have to submit a great one, since it’s the first thing they’ll get to see of you (and of your work, since it’s something YOU produced).

However, and before going deep into how to present your resume, I would like to touch on something of the utmost importance. If you want to have a great resume, you need to HAVE a great resume. Confusing? not really. You can’t impress them with what you would/will do, and certainly not by faking it, so you better make sure to invest in yourself, and pack up a good deal of experiences and skills. This will also have the benefit of giving you more confidence in your interviews (more on that later).

Wednesday, 19 October 2011

Microsoft gave me an offer I couldn’t refuse!

So, I received some AWESOME news recently! An offer from Microsoft for an SDE (Software Development Engineer) position in its Online Services Division :D and as the title suggests, I couldn’t refuse ;)

As a result, I wanted to share with you, the different stages I went through in order to get this offer, along with some tips & tricks and resources that could help YOU land a job at the company of your dreams.

First, let me give you some context, and summarize the process, then I’ll try to give more details along with the tips & tricks in the following posts.

In the beginning of September, it came to my knowledge (through Facebook, oddly enough :P) that Microsoft was having a recruitment campaign in the MEA (Middle-East and Africa) region, and that there will be an event in Dubai from October 3rd to the 6th. The news mentioned the website “http://www.microsoft.com/university”, so I just went there and took a look around at the different “graduate” offers. It looked (very) interesting (duh!), so I decided to give it a try. I wrote a resume and submitted my application in the website. And waited …

Saturday, 17 September 2011

Bug Hunt: Chasing an obscure AccessViolationException (Silverlight)

So, I’m working on my graduation project, using Silverlight 4, Prism and the MVVM pattern.

Bug Hunting

Now, for some context on my bug:

Sunday, 21 August 2011

Baby Steps: CodeRush Plugin Development

    I mentioned in my previous post that I’ve grown quite some interest in CodeRush from DevExpress, and part of that is because of the plug-in model they have in place, which is pretty powerful, yet simple to tap into and develop refactorings, code-providers, etc.

    In this post, I’m going to talk about the first CodeRush plugin I’ve ever wrote! It has a funny story, actually, where I was watching this recording of a CodeRush Feature Workshop, and at some point in the webinar, an attendee asked a question about how would a particular refactoring be implemented. Rory, started talking about that, and how easy it would be, then Mark Miller said: “Well, I almost wanna right that right now! It's like, so easy to do”. I thought to myself: “why not?!, this is my chance! :D”, and I just stopped the recording right away, opened Visual Studio and started developing my first Plugin! :) Just to be honest, as Mark suggested, this is very basic, and simple. But, heck, it got me hooked! 

Tuesday, 16 August 2011

DevExpress CodeRush

So, recently, I’ve been having more and more interest in DevExpress’s CodeRush add-in for Visual Studio. I’ve had CodeRush Xpress installed for some time, but couldn’t use it well because of a certain performance issue. After fixing that issue, by disabling a couple of features that were slowing it down: I’ve been in contact via twitter with Rory Becker from DevExpress, and he gave me a lot of help with CodeRush, like using its powerful templates and so on. Since then, I found CodeRush to be very powerful productivity tool, and actually kind of fun also, and it helped me save a lot of time.

OK, enough with the not-very-important talk. Why am I talking about this anyway? Well, that’s because I’m going to try and post about the cool stuff I find out and learn about CodeRush. Also, since I’m following some DevExpress Webinars, especially some of the ones about writing CodeRush Plug-Ins, I’m going to try and post about that, and comment on some examples showing the development step-by-step. CodeRush plug-in development doesn’t seem to be very hard, yet it’s very enjoyable.

Important links:

Make sure you follow @RoryBecker the DevExpress Community guy, @MillerMark the DevExpress Guru, and of course @AbdouMoumen the CodeRush novice (aka: me :) )

Wednesday, 22 June 2011

A Lazy blogger is back!

Hello there! (is anybody's there at all?! :P)

So, I've been out of the game for a LONG time! A lot of stuff had to do with that, but it's mainly because I've been lazy! I like my posts to be very well written and well thought of, and that calls for a considerable amount of work. On the other hand, I love bloggin! and it feels good and exciting to see my posts pick up interest and have more and more visitors (to whom I hope my posts would be of some help :) )

I've had my blog up at "sos.cs-esi.com", which is gone now :P, and since I got my own domain name (cool! :D ) thanks to my dear friend "Waleed Boutemine", I've been planning to start blogging again. And since "the best time to plant an oak tree was 20 years ago, and the second best time to do that is RIGHT NOW", as the saying goes, I just woke up this morning, opened a new post and started typing :)

I intend to write about stuff that I find interesting, mainly about technology. This includes, but is not restricted to, talking about new AWESOME technologies, explaining things that I'm learning and deemed to be worth sharing and also maybe some problems that I struggled with along with how I solved them. I haven't yet decided on whether to put "personal" stuff in here or have that in a separate subdomain, but I'll leave that to its time ;)

I think this might be enough for a first post (my laziness seems to be creeping in again :P ), so have a nice day, and don't forget to follow me on Twitter ;)