dstar html5

[](/code/dstar_html5/levels.js)wanted to play around with html5, so came up with this html5 version of dstar.  it’s less than 100 lines of code (not including the levels and simple html).  it’s based on the ti and hp48 versions of the same game.  this version only has 2 levels.  graphics by @somaiagabr.

source code could be better, but you can find the non-minified game logic here and the levels here. if i were to try to optimize this, i would start at the levels, since each level could be represented as 27 bytes (+2 bytes metadata) instead of 108 bytes.

click here to play!

search quran with alfredapp on osx

if you don’t already use alfred on osx, you really should!  it’s a great application launcher for osx.  i switched to alfred shortly after quicksilver development stopped (although it is now back again).  anyhow, alfred is awesome!  the application itself is free (and there’s an option to buy some additional features via the powerpack).  according to alfred, on my laptop, “@alfredapp has been shown 2,319 times. Average 13.4 times per day.”

to install the quran search plugin, just click here.  also, make sure to check out the alfred tips page for many more cool custom searches.

quran android 1.3

al7amdulillah, quran android 1.3 has been released!  new features include improved ui and graphics, better page scrolling, multiple translations, basic search, and more!

download it from the android market or check out the code on github!

updating osx for egypt's dst changes

as people in egypt know, dst was cancelled in egypt:

”…Egypt’s interim cabinet decided on Wednesday to cancel daylight saving time after a poll posted on its website showed the majority of Egyptians would approve the cancellation.” (via almasryalyoum).

so, what do us apple users do until apple releases a fix?  @vodafoneegypt suggested that people switch to the Harare time zone.  not my cup of tea.  thinking about manually changing your time?  bad idea if you have a twitter client.

so how do you properly fix it?  here’s a set of instructions that i adopted (based off of this post from argentina and this post from new zealand) to properly solve the problem in egypt.

**updating osx **

as people who have dealt with timezones before know, the timezones are updated via the zoneinfo database.  you can see more information on the database on wikipedia.

1.  download the latest tzdata file from here (currently, this links to 2011 version g, updated as of 4/25/2011, however, check here to see if there is a newer one).

2.  run the following commands:

mkdir a
cd a
tar xzf ../tzdata2011g.tar.gz
sudo zic africa

by the way, just for fun, open the africa file and search for egypt - you’ll notice all the different times egypt’s timezone rules changed :)  anyhow, at this point, your command line (terminal) time should be correct - verify it by typing date.  you’ll notice, however, that your system clock is still wrong.  let’s fix it…

3.  so the time in osx is not just affected by updating the zoneinfo database - you also need to update the icu database so that it also uses the latest zoneinfo database. ** if you have xcode and want to build manually**, download icu from apple (i am using 400.40, but you can check here if there’s a later one).  otherwise, jump to step 4b.

4a.  if you have xcode, run the following commands:

tar xzf ICU-400.40.tar.gz
cd ICU-400.40
cd icuSources/tools/tzcode
# ./icuSources/tools/tzcode/readme.txt tells us that placing a tzdata
# file in the tzcode directory will compile with that zoneinfo database

# copy the tzdata file from step 1 here
cp ~/Downloads/tzdata2011g.tar.gz .
cd ../..

# compile
./runConfigureICU MacOSX --with-data-packaging=archive
# if you want, backup your current icu file first
cp /usr/share/icu/icudt40l.dat ~

# replace the data file only
sudo install -o root -g wheel -m 0644 -Sp data/out/icudt40l.dat /usr/share/icu/icudt40l.dat

4b.  if you don’t have xcode, you can download my icudt40l.dat file from here and install it by doing:

bunzip2 icudt40l.2001g.bz2
mv icudt40l.2001g icudt40l.dat
sudo install -o root -g wheel -m 0644 -Sp icudt40l.dat /usr/share/icu/icudt40l.dat

reboot your system and you should be good to go!

**ios? although technically speaking, the same steps for osx apply, the icu file is a different version (icu46l.dat) - i built icu4c-4.6.1 and pushed the dat file to my iphone, but unfortunately, it didn’t fix the problem.  unfortunately, i don’t have solution for this one yet :( **

java developer?

if you are a java developer, you’ll notice that java’s time is also wrong…  this is because java also has its own timezone database that needs updating.  although, sun oracle provides a tool for fixing this, it is only up to 2011e (rather than 2011g) as of the time of this post.

you can verify that the time is wrong by running a program like this:

import java.util.Date;
import java.util.Calendar;
import java.util.TimeZone;
import java.util.GregorianCalendar;

public class Test {
 public static void main(String[] args){
 Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("Africa/Cairo"));
 cal.setTimeInMillis(new Date().getTime());
 System.out.format("%1$tT (%1$tB %1$td %1$tY)", cal);

sure enough, one hour off.   when the package is updated for the 2011g changes, you’ll download the latest version, extract it, and then run:

sudo java -Djava.vendor="Sun Microsystems Inc." -jar tzupdater.jar -v -u

if you were to do this now, you’d update to 2011e, which still doesn’t include the fix.

quran android 1.2

in case you haven’t seen it, check out version 1.2 of quran android (released on december 23rd).  you can see screenshots and a more detailed change log on hussein’s blog.

more features and improvements are in the pipeline.  feel free to check out the code on github and let us know if you have any suggestions, thoughts, or contributions!

so i left the country...

uh… yeah.

so egypt (like many other countries apparently) requires military service from it’s citizens.  as a dual citizen, you are exempt from egyptian military service.  i won’t get into details of how to prove this and get your military pardon, but let’s just say that it’s a fairly long winded and arduous process (which until now, i am still unable to complete).

there was some uncertainty as to what would happen if i stayed longer than 6 months - some people said, “you need to get your passport restamped (or leave the country) if you are planning on staying longer than 6 months.“  others said, “you don’t need to do anything.“  i almost followed the latter, until someone advised me to go check just in case, otherwise you could have problems later on.  so i went to the passport office in alexandria.

the lady said, “as long as you’re here less than 6 months, there is no problem.  once you are here for 6 months, you need to give us your id card and your military status.“  i said, “but i am having trouble getting my military status sorted out, what happens if i can’t bring these papers?“  she said, “then we won’t let you leave.”

i was like, “seriously?“  but i guess it matches up with something a friend had mentioned to me, so i could believe it.  i imagined that, given that situation, i could call the embassy and say, “they won’t let me leave,” but i also have to remember that theoretically, i entered the country as an egyptian, so they could say, “we can’t help you.”

to save myself the unnecessary hassle, i booked a flight and left…  i guess i’ll have to do this every 6 months until i get these papers sorted out…

searching the quran on ios

just for fun, here’s an ios universal version of the quran search application.


  • ipad:  1 (shown above) and 2.

  • iphone: 1 and 2.

you can find the source code here (update: added a link to a tar download and removed the code from github since i am not really maintaining this - june 26th, 2011).

searching the quran on android

just for fun, i hacked together a simple prototype of quran search on android. in reality, it’s more close to the autocomplete transliteration demo that i did some time back. for now, it’s only transliteration search, but later on, it can be expanded to search other languages. ultimately, it should probably be integrated into quran android.

you can find the source here.  (update: added a link to a tar download and removed the code from github since i am not really maintaining this - june 26th, 2011).

اللغة العربية في عصرنا الحديث - الجزء الثاني

here’s the second edition of the list. see if you can translate these to english, and look out for the answers to this list and the first edition of the list soon insha’Allah!

  • tareeq al bawaba - طريق البوابة

  • 3al-lem el dekka - علم الدكة

  • bedoon welaya - بدون ولاية

  • merta7 3al akher - مرتاح على الأخر

  • 3asifat al mokh - عاصفة المخ

  • o2af ganb - قف جانب

  • no2tet kasr - نقطة كسر

  • lematha al nesba al thahabeya - لماذا النسبة الذهبية

  • noskha fa7meya 3amya2 - نسخة فحمية عمياء

  • nas ba7eb - نص بحب

  • elbes sa3b - إلبس صعب

  • belyard etisalat - باليرد إتصالات

  • al khat al mayet - الخط الميت

  • shoghl berwaz - شغل برواز

  • seyaset naql al kalam al majnoon - سياسة نقل الكلام المجنون

  • el sa3b al sahl - الصعب السهل

  • ahlan ya tareeq - أهلاً يا طريق

  • wedn al-mu7ar-rik - ودن المحرك

  • ton na3na3 we7esh - طن نعنع وحش

  • 3ala el debanna - على الذبابة

  • etefa2 regala - اتفا رجالا

  • anessa wa2fa ta7t - انسة واقفة تحت

  • 3amood be 6aboor - عمود بطبور

  • innahu thahaba bondo2 - إنه ذهب بندق

a taxi driver and du3a2

i got in a taxi to go a short distance a few days ago. while driving, the man said to me:

you know, today, something strange happened. i just dropped off my nephew to the airport where he’s traveling to qatar. i am subscribed to a “du3a a day by sms” service by etisalat, and i got the du3a while driving him to the airport. so i told him, “read me the du3a,” since i was driving. he read the du3a (which said something along the lines of “astawda3 Allah” (or put as a trust with Allah) my self, my family, my deeds, and so on).  the taxi driver continued, “i was shocked - the timing was incredible! it’s as if Allah had that message come today just for him specifically!”

he then asked me to listen to a clip of a story from a sheikh on his phone. the sheikh mentions a man whose wife was pregnant and he had to go and travel. the wife didn’t want him to go and tried to insist that he stay and not go. “how can you leave me while i am pregnant,” she asked? so he put his hand on her stomach and said, “oh Allah, astawde3ak ma fee batniha” - that “oh Allah, i leave as a trust with you whatever is in her stomach.”

so he left. he came back after he was done with his travels and found young kids (from his family or relatives or what not) telling him that, “your wife has passed away.” so he said, “inna lillahi wa inna ilayhi raji3oon.”

they then told him that they found something strange - that every night, some sort of smoke would come out from the place that they buried this lady. so he went there and dug up the grave, and found his wife sitting in the grave with his son alive and between her feet.

sub7anAllah… as the taxi driver added, had the man made the same du3a and added the mother in the du3a as well, he would have come back and found his wife as well.