September 2009 - Posts

Yesterday I changed my twitter username from @Mohamed_Meligy to just @Meligy.

 

Why?

I have been thinking about this step for a long time, as my tweets are relatively long, and when I want to to allow people to re-tweet. With my old username, I used to have to write at max 120 characters per tweet to allow re-tweet (leaving 20 characters out of the real 140 characters limit to “RT @Mohamed_Meligy: ”). With my new twitter username I can use up to 128 characters (leaving 12 for “RT @Meligy: ”). I know I ‘m a person who can make nice use of those 8 extra characters, but is this worth doing? For sometime I thought: No.

 

My old username has some nice features. First, it includes my full name, so, that’s nice for people who don’t know me very well. Second, it has been around for over a year and over ~2390 tweets! That’s something!! People got used to using this twitter username when replying to me (mentioning me) and I did my best to put it everywhere in my Google and Facebook profile and blog and everywhere, and also used it with many twitter applications that require entering username/password.

 

Few days ago, one of my friends brought up the topic and encouraged me to do the change. I tweeted asking my friends whether they would promote the change, and encouraged me even more, so, I switched twitter username to @Meligy.

 

How

Some friends may wonder, how did I change my twitter username and still kept all my previous followers and reserved the old username also still on twitter. What part of it is a feature of twitter, and what part is something I did?

So, here is the story:

  1. I created a new twitter account with username @Meligy, and same password.
  2. I changed the @Meligy username to @Mohamed_Meligy2.
  3. In another browser I went to my old @Mohamed_Meligy account, changed username to @Meligy. Now I have @Meligy and @Mohamed_Meligy2.
    I noticed When I go to twitter replies in twitter website, it shows all replies that came to me, even those including @Mohamed_Meligy. This is good.
    The bad part is that when I click on @Mohamed_Meligy link in those replies/mentions, it goes to @Mohamed_Meligy not @Meligy.
  4. I changed the new account @Mohamed_Meligy2 back to @Mohamed_Meligy.
  5. I deleted the old @Mohamed_Meligy account from tweetdeck, and added both @Mohamed_Meligy and @Meligy (as default).
    I couldn’t just add the @Meligy account even with same password in both – I had to delete the old one.
  6. I used tweetdeck to tweet from both accounts “Changed twitter username from @Mohamed_Meligy to @Meligy. Followers needn't change anything except using @Meligy in future replies/mentions”.
  7. I started trying to remember all the websites and applications I logged with the old twitter username and change it to @Meligy.
    Having the same password on the other @Mohamed_Meligy account, I’ll be monitoring it for a while in case I forget some application or so.

Note that any link to previous tweets (in the format: twitter.com/{username}/status/{tweetID}) before changing username will still be broken.

 

Follow Me!

If you already followed me back with the old username, you should still be able to receive my updates.

If not, follow me on twitter via @Meligy.

 

Some of you who use Firefox (FF) might know about a Firefox plug-in called “IE Tab” which allows you to view a page/tab using the Internet Explorer (IE) rendering engine INSIDE Firefox (so, if some page displays better in IE, you don’t have to leave FF and go open an IE window).

 

Now, Google is doing something similar, but the other way around!

Google has recently released “Google Chrome Frame”, a plug-in for IE that allows you to view a page/tab using the Google Browser “Google Chrome” rendering engine INSIDE Internet Explorer.

 

This is interesting in two ways, first, it may decrease IE problems with crashes and such, and second, that Google maybe later will drop support for IE rendering engine in its products (like Google Mail, Reader, Video, Youtube, etc..), so that you have to use Firefox, Safari or Google Chrome (or Google chrome Frame) to use these applications.

Interesting enough, this is the case already with one of Google’s new products, called Google Wave!

They say the reason is supporting IE6!! They did much effort to get it to work with it but it didn’t. Of course the Chrome Frame plug-in is supported under IE 6, so, is supposedly solves their problem!

 

Google Chrome Frame Homepage:

http://www.google.com/chromeframe

Related News:

Google’s Plan to Kill Internet Explorer? Google Wave

Google Has A Solution For Internet Explorer: Turn It Into Chrome

 

Firefox IE Tab Extension:

http://ietab.mozdev.org/

 

This was originally an email I sent to .NET team in my company, then decided to share as a blog post.

The problem:

  • Let’s say you have a complex application, and this application (or part of it) runs very slowly. No bug s in results, no errors or exceptions, but it just so slow! Now you want to know which part of your code is the reason, which method(s) you need to go and modify., which methods take so long to execute or consume so much memory/CPU. How would you know that?
  • Let’s say you want to improve the performance of your application in general (say add caching or such), so, you want to identify which parts of your code deserve your attention and will really make difference (so that you don’t waste your time on optimizing something that will not have big effect in performance), for  example, you might want to identify which methods are called more than others from different parts of your code. How would you do that?

How to solve it, or, what is a profiler (v. short):

It is an application that you can run along with your own program. It’ll track all method calls and how any method call other method and most importantly how long each method call will take, and how it consumes resources.

 

There are many .NET profilers out there.

 

So, what about EQATEC:

Quoting from homepage:

Spot slow code

Are you a .NET developer? Would you like your application to run faster? Then use our free profiler to spot you app's slow code.

Point and go

No source code changes are needed. Just point the profiler to your app, run the modified code, and get a visual report.

Speedup any .NET app

As the only code profiler in the world, our profiler can even handle Compact Framework applications.

Language

Version

Platform

clip_image001 C#

clip_image001[1] VB.NET

clip_image001[2] Managed C++

clip_image001[3] F#

clip_image002 C or C++

clip_image002[1] Java

clip_image001[4] .NET 3.5

clip_image001[5] .NET 3.0

clip_image001[6] .NET 2.0

clip_image001[7] .NET CF 3.5

clip_image001[8] .NET CF 2.0

clip_image002[2] .NET 1.1

clip_image001[9] WinXP, Vista

clip_image001[10] Windows Mobile

clip_image001[11] Windows CE

clip_image001[12] XP embedded

clip_image001[13] PocketPC, PDA

clip_image002[3] Linux

To use it with ASP.NET application, all you need to is:

  • to put the path of the “bin” folder of your website as “App Path” (no need for source code or debug files), then it shows a list of all assemblies in it so you choose the DLL(s) you want to profile, and click “Build” at the right corner of the screen:
    EQUATEC
  • Click “Open output folder” on the bottom left corner, copy the DLLs from there to your website “bin” folder
    • Alternatively you can click “App Options” and set the output folder to “$(AppDir)” so that the generated files replace the old one
    • You need to repeat these previous steps if you build the website again using Visual Studio
  • run the website and start using it for a while
  • go to EQUATEC “Run” tab and click “Take Snapshot
  • go to the “View” tab and start reading the results

It might be important also to spot the limitations:

Known limitations

This is a list of known limitations and problems in version 2.0.

  • Blocking methods, such as Read(), will be counted as the total time, including the time the thread spends being descheduled and waiting for the call to complete. For now, you will have to recognize and judge situations like this manually.
  • No debug information is available for the profiled assemblies. It means that you cannot debug the profiled versions - but you would probably not like to do that, anyway.
  • No Visual Studio integration yet. We are looking into providing an add-in that will make it even easier to enable profiling your solution's assembly files.
  • No full method signature is displayed yet. So if you have several overloaded methods by the same name, or use generic methods, you cannot easily distinguish them as their signature (the method's parameter list) is not displayed anywhere.
  • Only defined methods are currently profiled, not referenced ones. So all the methods that your application itself defines will be profiled, but not System.* etc.

I hope this is useful for some of you as it was a real saver at times to me. Thank you very much!

More Posts