Yes I know you can get the weather using your smartphone, smartwatch, smart TV, weather.com, or the desktop widgets in your computer, but if you are like me, you spend a lot of time in Terminal, this is for you.

Why not to get your weather forecast using a Ruby script, below is a code for that, remember to as executable.
Note that you need to have some gems pre installed

#! /usr/bin/ruby
require 'open-uri'
require 'json'
require 'colorize'
require 'csv'
require 'date'
require 'table_print'

This is indeed very simple, but I thought a lot of people faced this problem, so no harm to write about it.

In the old site I had Pathauto module installed to handle clean (or pretty) URLs patterns across different content types, so a post URL that was post/this-is-an-article became article/this-is-an-article which will result in a lot of 'page not found' and dead links in the site which extremely harms SEO, aside from annoying your visitors.

I needed a functionality in Drupal that handles the notifications for users based on role on new content in the website, so I looked around and considered Notifications Module which is great, but adds much more than I really need for a simply notify module.

Role Notify is a light-weight module to work as an alternative module for simple notifications. It basically helps you notify all registered users of a selected role when a new content is published in the site.

Any Facebook page admin will care to see how their posts are doing, what engagement is it driving and how much did it score from likes, comments, and shares.

If you have been using Facebook Insights heavily you would know that there are is a huge limit when you export Post Level Data (Maximum of 500), so if you use your page heavily you would have more than 500 posts a month.

At some point you will feel the need for a new cleaner website, so you build your new Drupal site with cleaner content types, and you want to migrate your old content to the new website.
Migrate module is the module for that, however, by itself you will not be able to do your migration, you have to build your migration classes on top of that module, so below are the migration steps.

Drupal 8 is in alpha now, so its a good time to dip your feet in it and notice the major differences Drupal 8 introduced after adopting some Symfony low-level components such as HttpKernel, Routing, EventDispatcher, DependencyInjection, and ClassLoader, for a higher level changes see Hector Iribarne's presentation on Drupal 8 changes.

In this blog post I will try to build a D8 module and walk through the basic steps.

The other day I was thinking - if I collected all movies in the world and categorize them based on genre, which genre would win.

So I grabbed the whole list of movies from IMDB's API  (total number of movies was 1,618,921 movies) analyzed it, then categorized it, below is what I would like to share with you.

Couple of days ago, I had an interesting converstation with a friend of mine - who is a civil engineer - about how do they plan and build stuff, one thing that actually grabbed my attention was the designs and what considerations they keep in mind before start doing real work, I noticed that they also build stuff that actually scale.


What is scalability?

In short, it's doing what you you are doing in a bigger way, it's allowing more users to use your web application, and maintain the application performance under the increasing load.

Based on a recent study on a sample of 750 Facebook post I conducted to understand, estimate and optimise Facebook posts reach here are some highlights, findings, and information worth sharing.

Before we dig in, let us go over some high level key points:
  • Facebook uses EdgeRank to determine what articles should be displayed into a users's news feed. Note that also Facebook is holding some other parameters that controls this but it's not available to the public.


Today, I have finished developing a first iteration of a website called Top 100 Arabs that was build on Drupal to list the top tweeps in the MENA region, the engine heavily relies on Twitter's and Klout's API to fetch and update the data on an hourly basis, however, I faced so many problems dealing with Twitter API particularly because of the limited number of requests you can do to call the Twitter API even if you are oAuthed, I also tried to get myself whitelisted but it seems they stopped doing that, so I had to improvise and unleash the imaginations to workaround that, and some other complex yet simple-looking requirements.