A New Sawt

Today, I’m glad to announce a new version of Sawt! The Arab indie and alternative music discovery service.

The new version keeps the simplicity of Sawt while providing a better and easier to use platform for Arab indie music discover. Some of the new features in Sawt are still under development and will be available soon. Keep following the project and its updates on this blog here, on Twitter, on Facebook, or by contacting me directly on hello at sawt dot io.

For the time being, happy listening :)

On Sawt and Why Social Change Through Music is Important

Regardless of what one thinks about the present status of affairs in the Middle East, we all have to admit that the whole region is going through a crucial time period. It’s critical to understand that this is not just the result of political change or turmoil, but also because of an ever expanding set of nitty gritty little details, including social and economical changes, which are unfortunately unapparent to the majority of us.

The thought process is what’s important here. As with all communities around the globe, people often have different kinds of disputes and disagreement, but what’s important to realize is that the method these disagreements are resolved is critical to the evolution of the society. Thus, and as a notion of social progress, social change could be one of the most important aspects to study and watch carefully. Specifically speaking, the systematic factor of social change is what we, as citizens with strong civic ethos, should care for and try to build on to improve our societies.

Civic communication is one of the tools that can resolve disagreements, because unrestricted and uncensored forms of emotional and self expression can cause a wave of improvement in the society and can give birth to unthinkable discussions in certain societies.

Internationally speaking, Music has been on of the things helping people express inexpressible feelings through the ages. Because of that, music is powerful.

Music can unify or separate people. It can create peace or war. It can be used to bless or curse. It can be used to change minds or make them remain the same. Music can communicate many ideas and feelings that are instantly understandable without having to go through typical forms of discussion. This is basically the main reason why I want to study the ability of music as a tool to alter order of a society in a measurable manner.

The independent/alternative music scene in MENA is uniquely interesting as it’s being used by many upcoming and young artists to express ideas and thoughts they consider important. Regardless of the message, it helped them bring out what’s in them, what makes them them, and to communicate that to their fellow citizens in an artistic manner.

The main aim of Sawt is to study the use of music as a tool to influence and alter social and cultural traditions and standards, which will be done by establishing Sawt as an online music streaming service that allows fans around the MENA region to find and discover Arab independent bands and musicians. Sawt City, a recording studio that works in combination with Sawt’s online presences, focuses on allowing aspiring musicians to record, produce and publish their music for free, treating it as a tool for change, and serves as a connection between Sawt’s online presence and the local indie music scene offline.

As a passionate web enthusiast and developer and because I’m immensely interested in Music and how a certain band can influence the decisions and habits of humans across the globe.

It’s said that a picture is worth a thousand words, but my hope with Sawt is to prove that music can speak louder than both.

Anunnaki: A bookmarking service idea

I've always been interested in working on a project that tries to solve a possible problem. To me, bookmarking is one of the things that has always seemed to be lacking. It's like it got stuck in time and all the big guys are scared of touching it.

For the past couple of months, I've been working on a solution that tries to solve some of the problems that I think exist with currently available bookmarking services: 

  • Asking the user to enter details that -to me- aren't always necessary: Titles, descriptions, and tags are things that a system can (and should) figure out on its own without hassling the user with having to enter them (or even approve them before saving) every time a bookmark is saved.

  • The fact that these services require taking a specific action for bookmarking is particularly frustrating as sometimes users might forget to bookmark certain web pages. Another thing is that users might not know when they need to bookmark something when they first see it.

  • To search bookmarks users have to go to the website of the service they're using and then search, which is a bit excessive I think. I find myself searching Google when I'm trying to find something I have bookmarked before, because it's faster and much easier to access. Changing the default search engine hampers the user's work flow.

These are just some of the things that bothered me with bookmarking over the years, and that led me to start a new project (calling it Anunnaki for now). I'm glad to announce the alpha version in this post.

Below you can find all the information that I have about Anunnaki so far. I'm also looking for testers who are willing to try it for a while. I would love to get your feedback on how it works and if it's useful for you as it's useful for me (and 40 other alpha testers using it now).

Key Features 

  • Passive Bookmarking: Automatic bookmarking based on configurable variables: time-period and/or scroll-position.
  • Search Engine Integration: Search results from bookmarks embedded inside Google's search results page (and later on, Bing).
  • Gmail-like dashboard with keyboard shortcuts, wide-screenshots, automatically generated tags, and filter options allowing users to drill down and browse their bookmarks.

You can find a more detailed list of features here: http://anunnaki.me/features/.

Visit Anunnaki: http://anunnaki.me

Sing up here or just email me at me[at]beshr[dot]com.



Search Engine Integration

Bookmarks Dashboard

Getting Django URL Patterns to Play Nicely with Angular's $routePrvider

I'm currently in the process of writing a Django project that relies heavily on AngularJS. I haven't found many tutorials on tips on how to take on such a task, but I haven't had any problems so far, at least until I wanted my URL Patterns in Django to work nicely with Angular's Routes.

The main problem with this task specifically is that both Django and Angular provide their own way of working with URLs. You'll need to satisfy Django's URL/View patterns if you're planning on having any server side logic controlled by your views, even if it's only to provide some data from your db. But you might also want to enjoy the greatness of Angular's routes, and partial HTMLs that are loaded instantly, something like Asynchronous HTML and HTTP but with real permanent links and working back button.

Note: You might want to take a look at django-pjax to get similar features only with jQuery.

So, here's the way I did it.

This is basically the code code I'm using for Angular's $routeProvider.

app.config(['$routeProvider',  function($routeProvider) {
    .when('/', {
      templateUrl: 'views/main.html',
      controller: 'MainCtrl'
    .when('/about', {
      templateUrl: 'views/about.html',
    .when('/help', {
      templateUrl: 'views/help.html',
    .when('/post/:id', {
      templateUrl: 'views/postRouter.html',
      controller: 'PostCtrl'
      redirectTo: '/'

Before I go through each one of these routes individually, take a look at the code I'm using in django's URLs.py for the urlpatterns.

urlpatterns = patterns('',
    url(r'^$', 'myproject.views.home', name='home'),
    url(r'^views/main.html/$', 'myproject.views.main_view'),
    url(r'^views/post.html', 'myproject.views.post_view'),
    url(r'^views/(?P[-\w]+.html)/$', 'myproject.views.angular_views'),
    url(r'^(?P.*)/$', 'myproject.views.angular_redirector'),

As you can notice, I'm using quite a few tricks to make this happen.

  • The 2nd and 3rd URL Patterns are also templates that Angular is using to satisfy the 1st and the 4th routes, but each one has got it's own view function because each one needs some data from database and some backend processing. The idea of the first one (views/main.html) for example is that it's loading latest posts from the db, figuring out some info about the user logged in, comments, etc..
  • But things are a bit different for the 3rd URL Pattern because this one is supposed to load data dynamically from the DB according to the post the user is loading. To share variables between Angular's routes and Django's views I bundled the values I need with the request URL of the * post * route as GET variables, this way I could load them in the view and pull the request data accordingly. The trick to do this is to route the url of "/post/:id" to a temporary html (postRouter) which has a very simple line of code:

The value of templateUrl in this template is going to be assigned in the controller PostCtrl with something like this:

app.controller('PostCtrl', ['$scope', '$routeParams', function($scope, $routeParams) {
    $scope.templateUrl = 'views/post.html?id='+$routeParams.id;

What this is essentially doing is that it's loading "views/post.html?id=postid" and passing it through Django behind the scenes, thus allowing the view function postview to do what ever it wants with the content and pass it to the actual post.html template rendering all of its django template language and loading the content according, then pass it again to Angular to view it in the assigned ng-view block.

I've tested this and worked pretty much exactly the way I wanted it to. If you've spotted anything wrong, or if you're doing it differently, please do share in the comments!

  • If you're curious about the 5th urlpattern and the angularredirector view are doing, it's just a very basic way to route coming requests to go through Angular first by adding the #/ before the url path._

The Rise of Civic Engagement Among Syrian Youth

This is an op-ed I wrote for Syria Deeply that appeared on December 6th, 2012.

Whether one is a supporter of the opposition, the regime, or the people, we all recognize that Syria is on the verge of a drastic change. This change extends beyond the political upheaval we’re experiencing today. It is shaping a new level of civic participation among Syrian youth.

As with other uprisings across the region, “social media” became a prominent medium in the Syrian conflict. The buzz was sometimes too much to bear, considering how quickly these mediums could spread incorrect information. Still, it’s valuable to note that Syrian youth is using these tools to spread information beyond real-time news.

Towns and cities are being destroyed, and basic logistics—such as trash pick-up—are no longer viable. Those Syrians not dying from bombs are struggling just to live. Social networks have become a way to raise awareness of the difficulties affecting people on a daily basis.

Damascus Civil Emergency Broadcast is one of these campaigns. The Facebook page started on July 19th of this year and has around 2,775 likes so far. According to the page, the owners support neither “the revolution” nor “the system”; instead, they support “jasmine” and “loaves of bread”.

The page publishes tips on how to survive the disaster in Syria on a regular basis. From cautionary advice on how to protect oneself from mortar shells, and tips on how to avoid fire shots, snipers, bomb shards, splinters, or fragmentations, to how to deal with wounded civilians in the state of shock, and ideas on how to keep oneself composed during stressful times.

Other campaigns are responding to emerging situations. For example, due to the lack of security, kidnappings from both sides have increased. Project: Safety prepared a documentexplaining how to deal with these kidnappings, from negotiating on the phone to the actual delivery process.

Another guide to survival was prepared by Freedom Days, a campaign that claims to promote peaceful civil resistance. This document explains the harmful effects of constant exposure to violent execution scenes, dead bodies, and the aftermath of bombings or massacres, which are usually uncensored on sources like YouTube.

Many more campaigns exist on Facebook, trying to help Syrians survive through this—what seems like—never-ending conflict.

Speculating the future of Syria is difficult, but these online campaigns are offering a new hope: they are preparing Syrians for heightened civic engagement. They are putting people before politics.

These online campaigns may seem small, but they have the potential to counteract the negative forces that drag the Syrian community to isolation. When a new Syria emerges, it will be with a strong civic ethos.

Beshr is a software developer based in Beirut. He founded TweetWeekSyria, a localization of the Curators of Sweden project based on the concept of #RotationCuration. He's passionate about open source, algorithms, and indie music."

B, for Hyde

There's nothing much to say here really. I extracted the Hyde theme I created for my site (was using it before switching to Ghost) and published it on github.

My intention was to design a clean, readable and responsive theme to replace my tumblr. I really liked Hyde because of its simplicity and cleanliness.


Grab the source from Github (Licensed under a Creative Commons Attribution 3.0 Unported License.)

Save the Pixels

I've always been a big fan of indie games and the indie game making culture, this increased tremendously after watching Inde Game the Movie. Simple, yet challenging gameplay was the goal, so I came up with the concept of Save the Pixels. You can read a review about it on the Indie Games Weblog or watch the game play demo on YouTube.


You can download the game from http://beshr.com/stp.


Grab the source from Github (MIT Licensed)

RotationCuration and Why You Should Get Involved!

#RotationCuration is not just a model the TweetWeekSyria is based on, it’s a ground-breaking movement in the world of social media specifically and social change in general. 

Why Social Media?

Social media has given us a great new way of communicating with each other and is continuously allowing us to form powerful networks that can be harnessed in different ways for the benefit of humanity.

James Surowiecki, journalist and staff writer at The New Yorker, argued in his TED talk titled “The Turning Point for Social Media” that people, acting in mass, could be smarter than we think. James is also the author of The Wisdom of Crowds, which proposes that in some circumstances, large groups exhibit more intelligence than smaller, more elite groups.

Why #RotationCuration?

RotationCuration gives a platform, on social media, for different people (somewhat average) to speak their minds. No matter what the cause or the focus, #RotationCuration has proved itself as a movement and different adaptations of this model started to emerge. 

A project started by the Swedish Institute, called Curators of Sweden, was the starting point. The project hands over the official country’s account on Twitter (@Sweden) to be managed by a new Swede every week.

In an age of mass communication and increasing globalization, a country depends largely on how it is perceived abroad. Political objectives, trade, investments, visitors, exchange of talent and creativity are all heavily dependent on the view of the outside world. Sweden’s development and future prosperity depend on strong relations with the outside world and a more active exchange with other countries in many areas. This is only possible, if more people are familiar with Sweden and become interested in the country and what it has to offer. (*)

Other projects had different aspirations. @TweetWeekUSA, an unofficial account and an adaptation of the #RotationCuration Model defines its purpose as: 

... to afford US citizens and residents the opportunity to exchange their perspectives and opinions and to provide a forum where other citizens of Planet Earth may engage them as well.(*)

Why TweetWeekSyria?

#RotationCuration is a very democratic experience at its heart. There might be many reasons why such a program is important to Syrians and Syria in general, but the most important one of them is that since Syrians are at the verge of drastic political and social change, we believe that offering a platform to which many people pay attention (Syrian and global citizens) and many Syrians can use to cast their voices and speak their ideas will hopefully be of tremendous value, through social media channels that are becoming mainstream.

If you’re Syrian and have anything that you’d like to say, or know of anyone who’s ideas you want to be heard, click on Nominate a Curator and submit a nominee.