TweetDeck’s "Interactions" Column Is Brilliant

In Twitter’s own website, there’s now a “Connect” tab next to “Home” once you log in. In this tab, you see all the your new followers, others retweeting you, and your twitter mentions.

I’m usually interested in this kind of information, not just mentions but any interest in what I have on my twitter account. I used to setup email notifications for some of them, even though I don’t always read them promptly as it’s common to have a few more followers at the same day some days.


Recently I discovered that TweetDack has this very feature. You can add an “Interactions” column, and it will show all your:

  • Mentions (as expected)
  • New Followers (ungrouped, unlike the twitter website)
  • Retweets
  • Favourites (of your tweets, by others)

This is the normal evolution of the “Replies” / “Mentions” column. I thought that other advanced twitter users would be interested in that sort of thing as well.

By the way, this is tested in TweetDack Chrome application. I have set Chrome to open this app in its own window using its own icon (just right click the app icon in any new tab and you’ll find the option). Since even the desktop version of TweetDack is just a Chrome frame, I didn’t even bother install it. It started horribly after moving to being a web version, but I think it’s really nice now again, almost as good as the old native TweetDack!

Twitter OAuth, Persistent OAuth, TweetSharp: Presentation & Code Nuggets

This is a PowerPoint Presentation (and extraction of the contents) I made as per a couple of friends’ request (@EmadAshi and @AmrEldib) to show how OAuth works along with Twitter and how easy it is to cache OAuth credentials.

As I was doing related work for TweetToEmail. I felt a PowerPoint presentation will be even better than a blog post for this one, but here you get the two.

The Presentation

The Contents

Application Registration

  • A Twitter user creates a Twitter Application
    • If the application is web based, it needs to provide a URL. “Localhost” is not accepted as a domain for this URL
  • A Twitter Application gets two pieces of information
  • Consumer Key
  • Consumer Secret
  • A Twitter Application will use these in all coming requests.

Initializing The Process

  • User comes to the application and it decides to authenticate against Twitter
  • Application makes a request using Consumer Key and Secret to obtain “Oauth Request Token”, which consists of two parts
    • Token
    • Token Secret
  • Application makes authentication URL including the “Oauth Request Token” parameter, and optionally a “Call-back URL” (if different than default URL in first step)

User Authentication

  • The user is redirected to Twitter, the URL contains the “Oauth Request” to identify application authentication session
  • Assuming the Twitter User being logged in and authorizes the Application
    • If the application is a desktop application, Twitter gives the a user a number “Verifier” to manually write back to the application
    • If the application is a web application, the user is redirected back to the application call-back URL with a complex “Verifier” parameter in the URL

Obtaining the Access Token

  • The Application makes a request to Twitter including the “Oauth Request Token” and the “Verifier”
  • It obtains an “Access Token”, likewise it consists of two-parts:
    • Token
    • Token Secret
  • The application needs to send the Consumer Key and Secret and Access Token in every future request that needs the Twitter User privileges

Caching Credentials

  • The application needs at least one authorization process as before
  • The Access Token returned can be saved in session/DB/whatever and then re-used later
  • The application can later use the Access Token directly along with the Consumer Key / Secret to communicate with Twitter without going through any of the previous steps

Sample Code (TweetSharp v 2.0)

Request Token & Redirect


Getting Access Token


Hints for Web Applications

  • The method GetAuthenticationUrl() has an overload that accepts a call-back URL for the user to be redirected to after obtaining verifer
  • The important part in RequestToken is the Token part, not the secret.
  • All parts of AccessToken are important and required
  • When the user is redirected back from Twitter to your application, you get the following QueryString parameters sent to you
    • oauth_token: The Token part of the Request Token
    • oauth_verifier: The verifier required to obtain the Access Token later

Using Cached Access Token


Related Links

On the arrival of Mr. Adam Meligy

Image007000 - Copy

Today (technically yesterday, since it’s 3:26 AM already while I’m starting this), Mr. Adam Mohamed Meligy finally arrived home, after staying 9.5 days in nursery. This –dear audience- given Mr. Adam arrived to our world only in October 5, 2009, a date that the entire world will (sooner or later) always remember!

Mr. Adam is now taking a personal cover, pretending to be a normal baby, while he is pretty professional, he cannot sometimes hide his special natures, being relatively quiet compared to normal babies, and highly responsive to touches and (believe it or not) spoken notes/requests.

These are things that the world will remember once Mr. Adam finishes his first big achievement in the field he will take up for living (God Willing). Some other small details matter more to the family, both his grandparents –for example- note him as their first grandchild. I –personally- recognize him as my extra chance in life! If I fail to manage to be another Anders Hejlsberg/Martin Fowler, Scott Guthrie/Brad Abrams, or Scott Hanselman/Rob Conery/Phil Haack (still trying), Mr. Adam has a bigger chance; else wise, he’ll be digging his road as a notable figure in some different field (God Willing).

I feel that I was blessed with not just two more legs and hands, one more tongue and a couple of stronger eyes, extra more years to live, but also with an extra brain and superpowers. You can always upgrade your thinking methodologies, even reinvent the way you think completely, but you are always limited to your physical brain constraints that -although can be always stretched more and more- have their limits. Now I have an extra brain that can do pair thinking with me and reinvent the way things happen by the experiences he will be having on his own (God Willing).

So, this is to log that Mr. Adam (temporarily until he decides to replace that with “Eng.”, “Dr.”, and/or “Prof.”) has just finished implementing phase zero,  coming to existence!

Few More Facts About Mr. Adam’s Arrival

  • The exact time of arrival to world is October 5, 2009, 10:30 AM Abu Dhabi Time, that’s 8:30 AM Cairo Local Time (CLT), 6:30 GMT.
  • Although born in Kornesh Hospital, Abu Dhabi, UAE, Mr. Adam holds the Egyptian nationality, just like his parents. He also inherits the Islam religion, which he will be (God Willing) discussed about as soon as starts making conversations, so that he practices it for the sake of belief, not inheritance!
  • Mr. Adam reached our world after hiding in a secret cafe for slightly less than 35 weeks, reaching our world at the weight of 2.25 Kg.
  • Mr. Adam has his email, Facebook and twitter accounts created on the day of arrival and moderated by parents. Soon (God Willing) he will be running those himself, and creating his own LinkedIn account on his own once he finishes his first school and starts a professional expert career simultaneously.
  • Mr. Adam has come with the message to make the world a a better place to live for humans, not to dominate the entire world ;-).
  • Since arrival, the protocol requires using the prefix “Mr.” when mentioning Mr. Adam’s name in conversations. Only tweets/categories, etc… are allowed exceptions due to technical/official nature. This prefix is temporary as per the relevant note above.

On behalf of the family, I congratulate the world on having Mr. Adam with us. I’ll be following up with his significant news until he starts blogging (hopefully soon, God Willing).

Re: Should the team be allowed to drop the retrospective?

Few minutes ago, I saw @mShady, my dear friend (Real life friend, not just on twitter) tweeting:

RT @ASGEgypt: RT @scrum_coach: Should the team be allowed to drop the retrospective? #scrum #agile #lean #xp #kanban

I checked the post and found the options are:

  1. Yes, It’s their process why not?
  2. No, explain to them and work through why the retrospective is so important.
  3. Maybe, if they are no longer a team then why continue with Scrum?
  4. Only do retrospectives once a quarter and build up a good list of things to change.
  5. Yes, the process will take care of itself we don’t need to watch it that closely. After all it’s common sense!

Interesting question! Not the most important topic in Scrum but like the way Agile works in general, if you play with it wrong, it is an indicator you have something else wrong as well before that, so, it gives you an alert.

See the rest of the blog post. I find the options my main interest, and wanted to share with you here how I answered this question:

I’d say have a really short one if the team members have been working together for sometime it can go really quick (an hour or so) just before the planning for the next sprint. We used to do so in a previous company and it was pretty successful.
It was like it’s one meeting divided into 2, one hour or so for previous sprint retrospective, and probably rest of the day (or most of it) for the planning for next sprint.

If they cannot have a quick meeting like this quickly then something else is wrong and they need to work on their team skills. Time boxing would be one option: The meeting will be needed “more” if they do not communicate well, Time box it to 2 hours or so and make it clear and strict since beginning, and consider investigating (assuming you are scrum master or team leader) what other issues the team may be suffering from.

However, I find myself going with (1) and (5) at the same time, “it’s their process” and “After all it’s common sense!”.

What do you think??

I changed my twitter username to @Meligy

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



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.



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:{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.