Computer Upgrade

Four years ago, I built my desktop computer. Now it was getting a bit long in the tooth, so I decided to upgrade some of its parts.

  1. Motherboard: From Abit IP35E to Gigabyte GA-Z68XP-UD3
  2. Processor: From Intel Core 2 Duo E6420 to Intel Core i7-2600
  3. Memory: From 2x1GB PC2-6400 DDR2 to 2x4GB PC3-14900 DDR3
  4. DVD Drive: From PATA to a SATA DVD Writer

The computer’s now fast and powerful. My Harappa Ancestry Project analyses run much faster than before.

Ubuntu had no trouble running after the change. However, Windows XP refused to boot and I have to do a reinstall.

Google Urdu Tools

Google Translate can now translate from and to 57 languages, including Urdu.

Don’t know how to write in Urdu script? The translate page allows you to write in Roman Urdu, i.e. Urdu using the English alphabet. The same transliteration (from Roman Urdu to Urdu script) is available independently here. Of course, this transliteration is available for a bunch of languages including Russian, Hebrew, Arabic and lots of Indian languages.

Got some Urdu text in the regular Urdu script and can’t read it? You can always convert it to the English alphabet using Google’s script converter.

Google Voice

I had been lusting after a Google Voice account for a while and finally got it a few months ago. To my disappointment, there was no way to port my existing phone number to the service, so I had to get a new number.

At first, I was slow to give out my Google Voice number to people, but over time it’s becoming my default phone number.

Of the features of Google Voice, voice transcription is still a bit problematic as the speech recognition doesn’t work as well as it should. I love it that it can ring all my phones and that I can switch from my cellphone to landline during a call to save cell minutes. Also, I can have different call forwarding rules and voicemail greetings for different people (using groups) in my list of contacts. One pitfall there is that a phone number should only be in one group otherwise you can’t be sure which rules will be applied to it.

There used to be a couple of Google Voice apps for the iPhone and I had bought GV Mobile but when Apple rejected Google’s official Voice app, they also removed all the other previously approved apps from the App Store. (Yes, Apple is more evil than Microsoft!) So now I have to rely on the Google Voice mobile website on my iPhone.

I have also moved my cellphone voicemail to Google Voice. Yes, I like the visual voicemail on the iPhone, but Google Voice gives me a centralized voicemail (with SMS and email notification and voice transcription) and there is more potential there.

On my AT&T landline phone, I have also subscribed to Call Forwarding Busy Line and Call Forwarding Don’t Answer with Ring Control with my Google Voice number as the forwarding number. Thus, if my landline is busy or I don’t pick it up, the call is automatically forwarded either to my other phones or to my Google Voice voicemail.

Since I receive a lot of telemarketing and other junk calls on my home phone, I have set up Google Voice call screening so callers who are not in my contact list are asked to say their name the first time they call me. This has cut down on a lot of junk business calls I was receiving because my home phone number used to belong to a business a few years ago.

I also signed up with Gizmo5 (which has now been acquired by Google) and linked my Google Voice and Gizmo. So now I can receive my Google Voice calls on my computer with GizmoCall open in a Firefox PermaTab.

Finally, dear readers, through the magic of Google Voice call widgets, you can contact me by phone now on my contact page.

Now Watching Plugin

If you are wondering where I have been in the last three weeks, I have been busy. I had to transfer all the non-bloggy content of my website to WordPress.

Since I do book and movie reviews, I started using the Now Reading Reloaded plugin for book reviews and links to Amazon. However, I couldn’t find any similar plugin for movie reviews.

After getting permission from the developer, I forked Now Reading Reloaded 5.1.1.0 to make it work with movies and DVDs.

This plugin which I am calling Now Watching is now available on the WordPress plugin repository.

If you find any bugs or issues or have feature requests, please let me know.

Movable Type 3.34 to WordPress 2.8.4

As you can see, I have moved my blog over to WordPress. Actually, the whole domain, ZackVision.com, is powered by WordPress.

If you see any problems, please comment on this post or contact me.

I was using Movable Type 3.34 which came out in January 2007 and was now badly outdated. The reason why I hadn’t upgraded is because I was using a lot of hacks and had made my own modifications to the core code.

A few months ago, I ran into major problems with spam comments. That got me thinking about an upgrade. I was, however, able to solve the spam issue with MT-Akismet.

I downloaded Movable Type 4.2, the latest version, and played around with it. I liked it, but I realized that none of the plugins I was using had an upgrade for MT4. Also, I could find very few amateur bloggers on Movable Type. Professional websites and blogs were mostly using Movable Type, but the rest of the bloggers had switched to WordPress long ago.

I had already been using WordPress for a private blog and so I decided to take a look at the latest version of WordPress and how I could migrate my blog to it.

There were a few things I had to give up: No more MathML or serving all pages as application/xhtml+xml; no OpenPGP signed comments.

I also had to modify the Movable Type export script and WordPress’s import script so I could keep the same post IDs and slugs (basenames) as well as import tags and convert the content based on the text filter used in Movable Type.

Here are changes required in Movable Type 3.34’s lib/MT/ImportExport.pm file:

--- ImportExport.pm.orig        2009-09-23 11:25:12.975789000 -0700
+++ ImportExport.pm     2009-09-23 11:25:12.764003000 -0700
@@ -529,27 +529,27 @@
     $tmpl->text(<<'TEXT');
 AUTHOR: <$MTEntryAuthor strip_linefeeds="1"$>
 TITLE: <$MTEntryTitle strip_linefeeds="1"$>
+BASENAME: <$MTEntryBasename$>
 STATUS: <$MTEntryStatus strip_linefeeds="1"$>
 ALLOW COMMENTS: <$MTEntryFlag flag="allow_comments"$>
 CONVERT BREAKS: <$MTEntryFlag flag="convert_breaks"$>
 ALLOW PINGS: <$MTEntryFlag flag="allow_pings"$>
+POSTID: <$MTEntryID$>
 -----
 BODY:
-<$MTEntryBody convert_breaks="0"$>
+<$MTEntryBody$>
 -----
 EXTENDED BODY:
-<$MTEntryMore convert_breaks="0"$>
+<$MTEntryMore$>
 -----
 EXCERPT:
 <$MTEntryExcerpt no_generate="1" convert_breaks="0"$>
 -----
 KEYWORDS:
-<$MTEntryKeywords$>
+<$MTTagName$>
 -----
 
 COMMENT:
@@ -558,7 +558,7 @@
 IP: <$MTCommentIP strip_linefeeds="1"$>
 URL: <$MTCommentURL strip_linefeeds="1"$>
 DATE: <$MTCommentDate format="%m/%d/%Y %I:%M:%S %p"$>
-<$MTCommentBody convert_breaks="0"$>
+<$MTCommentBody$>
 -----
 
 

And here are the changes required in WordPress 2.8.4’s wp-admin/import/mt.php:

--- mt.php.orig 2009-05-05 12:43:53.000000000 -0700
+++ mt.php      2009-09-23 11:49:00.182602000 -0700
@@ -375,6 +375,15 @@
                                        $post->post_title = $title;
                                else if ( 'ping' == $context )
                                        $ping->title = $title;
+                       } else if ( 0 === strpos($line, "BASENAME:") ) {
+                               $postname = trim( substr($line, strlen("BASENAME:")) );
+                               if ( '' == $context )
+                                       $post->post_name = $postname;
+                               else if ( 'ping' == $context )
+                                       $ping->post_name = $postname;
+                       } else if ( 0 === strpos($line, "POSTID:") ) {
+                               $postid = trim( substr($line, strlen("POSTID:")) );
+                               $post->import_id = $postid;
                        } else if ( 0 === strpos($line, "STATUS:") ) {
                                $status = trim( strtolower( substr($line, strlen("STATUS:")) ) );
                                if ( empty($status) )

I also added the following to the .htaccess file to handle the redirects needed from my old URLs to the new ones:

RewriteEngine On
RewriteBase /
# Old Monthly archives
RewriteRule ^weblog/archives/([0-9]{4})/([0-9]{2}) weblog/$1/$2/ [R,L]
# Old single entry links
RewriteRule ^weblog/archives/000([0-9]{3}).html$ ?p=$1 [R,L]
# Another old single entry links
RewriteRule ^weblog/archives/entry/000([0-9]{3}).html$ ?p=$1 [R,L]
# Old category archives
# Change underscores to hyphens
RewriteRule ^weblog/archives/([^_]*)_([^_]*)_([^_]*)_(.*)$ weblog/category/$1-$2-$3-$4/ [R=301,L]
RewriteRule ^weblog/archives/([^_]*)_([^_]*)_(.*)$ weblog/category/$1-$2-$3/ [R=301,L]
RewriteRule ^weblog/archives/([^_]*)_(.*)$ weblog/category/$1-$2/ [R=301,L]
RewriteRule ^weblog/archives/([^0-9]*)$ weblog/category/$1/ [R,L]
# To handle the old MovableType feeds.
RewriteRule ^weblog/atom\.xml$ feed/atom/ [R,L]
RewriteRule ^weblog/index\.xml$ feed/ [R,L]
RewriteRule ^weblog/index\.rdf$ feed/ [R,L]
# To handle old Movable Type permalinks.
RewriteRule ^weblog/([0-9]{4}/[0-9]{2}/.*)\.html$ $1/ [R,L]

I liked the iNove theme and installed it with some modifications done via child theme.

I have also installed the following plugins:

  1. About Me widget
  2. Akismet
  3. AmazonFeed
  4. AVH Amazon
  5. Collapsing Archives
  6. Contact Form 7
  7. Easy AdSense
  8. Efficient Related Posts
  9. Google Analyticator
  10. Google XML Sitemaps
  11. Lifestream
  12. NextGEN Gallery
  13. Now Reading Reloaded
  14. Page Links To
  15. Recommended Reading: Google Reader Shared
  16. Rich Text Biography
  17. JanRain RPX – Authentication from Facebook, Twitter, Google, Yahoo, Windows Live ID and OpenID
  18. Search & Replace
  19. Search Meter
  20. Sociable
  21. Thread Twitter
  22. WP-Syntax
  23. XML Google Maps

I am also working on a fork of Now Reading Reloaded. It will be for movies and will be called Now Watching. Once I have tested it, I’ll release it here and on the WordPress site.

While the blog itself has been completely moved over to WordPress, I am still working on migrating the other static pages. Also, my list of books read and movies watched is still not back yet.

iTunes U and Podcasts

Since I got my iPhone, I have started listening to podcasts and courses put online by universities.

Specs listed the podcasts she listens to and Razib also mentioned a podcast recently, so I thought I should list the stuff I have been listening to on my iPhone and may be Razib and others can chime in with some suggestions.

Here’s my current list of podcasts:

In addition, here are some courses and lectures on iTunes U and as podcasts that I have been listening to or that are in my listening queue:

What do you recommend?

ہفتہ بلاگستان: اردو بلاگنگ

ہفتہ بلاگستان کے سلسلے میں آج ہم اردو بلاگنگ کے حوالے سے گفتگو کریں گے اور یہ دیکھیں کہ اردو بلاگنگ آج بھی اتنی غیرمقبول کیوں ہے۔

ہفتہ بلاگستان کے سلسلے کی یہ تیسری قسط ہے۔ جیسا کہ خیال تھا شگفتہ یہ آئیڈیا پیش کرنے کے بعد سے گم ہیں اور ان کے اس سال بلاگنگ کے منظر پر واپس آنے کا کوئ چانس نہیں۔ شاید ایک دو صدیوں میں وہ اس ہفتہ بلاگستان کو بھی منا لیں۔

آج میں نقل مارنے کے ارادے سے آیا ہوں اور اردوویب بلاگ پر اپنی ایک تحریر کا زیادہ حصہ (مختلف اضافوں کے ساتھ) یہاں بھی نقل کر رہا ہوں۔

پہلی اہم بات یہ ہے کہ جب آپ کوئی پوسٹ لکھیں تو اخبار یا بلاگ کو حوالہ دیں اور اس خبر یا پوسٹ کو لنک کریں۔ یہ خیال رہے کہ لنک اخبار یا بلاگ کے ہوم پیج کا نہ ہو بلکہ سیدھا اس صفحے کی طرف جاتا ہو جو آپ کے زیرِ بحث ہے۔ اسی طرح اگر آپ کسی ویب سائٹ یا کسی بلاگر کا ذکر کرتے ہیں تو ان کا لنک بھی اپنی پوسٹ میں شامل کریں۔ یاد رہے کہ آپ کی سائڈبار میں موجود لنک بہت کم لوگ فالو کرتے ہیں مگر پوسٹ میں لنک زیادہ‌تر قارئین فالو کرتے ہیں۔

اسی طرح جب آپ کسی بلاگ پوسٹ کا جواب لکھیں تو لنک کے ساتھ ساتھ اس کا ایسا اقتباس بھی اپنی پوسٹ میں شامل کریں تاکہ گفتگو سمجھنے میں آسانی رہے۔ یہی نکتہ اخبارات کی خبروں کے لئے بھی ہے۔ پوری خبر یا پوسٹ کبھی شامل نہ کریں بلکہ صرف اقتباس دیں۔ اس اقتباس کو اپنے بلاگ پر اپنی تحریر سے نمایاں کریں۔ اس کا آسان طریقہ یہ ہے کہ آپ اس اقتباس کے گرد <blockquote> ٹیگ ڈالیں۔ اگر آپ ایسا نہیں کرتے تو یہ سمجھنا مشکل ہو جاتا ہے کہ آپ کی تحریر کونسی ہے اور کسی اور کی کونسی۔

ایک اور چیز ہر پوسٹ کے ساتھ اس سے متعلقہ پوسٹس کے روابط ہیں۔ اس کے لئے ٹیگز اہم کردار ادا کر سکتے ہیں۔

اپنے بلاگ پر آپ کسی قسم کا ہٹ کاونٹر ضرور لگائیں۔ اس کے لئے میں سائٹ‌میٹر تجویز کرتا ہوں۔ اس کی پرائیویسی سیٹنگ ایسی رکھیں کہ تمام قارئین اس کا سمری پیج دیکھ سکیں۔ اس طرح عوام یہ جان سکیں گے کہ آپ کا بلاگ روزانہ کتنے لوگ پڑھتے ہیں مگر تفصیلی ڈیٹا صرف آپ ہی دیکھ سکیں گے۔ یہ بھی یاد رہے کہ سائٹ‌میٹر میں اپنے وزٹ اگنور کرنے کی بھی آپشن ہے۔ یہ ضرور سیٹ کریں تاکہ جب آپ اپنے بلاگ پر جائیں تو وہ شمار نہ ہو۔

اپنے بلاگ کی مقبولیت بڑھانے کے لئے اس کے علاوہ بھی کئی چیزیں ہیں۔ ایک تو یہ کہ باقاعدگی سے بلاگ پر لکھیں۔ میں نے نوٹ کیا ہے کہ دو تین بلاگرز کو چھوڑ کر باقی اردو بلاگر مہینے میں دو تین سے زیادہ بار نہیں لکھتے۔ دوسرے بلاگز پر تبصرہ کریں اور ان کی تحریروں پر اپنے بلاگ میں لکھیں۔ جب کسی دوسرے بلاگ پر تبصرہ کریں تو اپنے بلاگ کا لنک یو‌آر‌ایل فیلڈ میں ضرور دیں۔ دوسرے بلاگز کے ساتھ گفتگو بلاگ کی دنیا کا ایک اہم حصہ ہے اور اس کے لئے ضروری ہے کہ آپ صرف اردو بلاگز ہی تک محدود نہ رہیں بلکہ انگریزی اور دوسری زبانوں کے بلاگز پر بھی تبصرے کریں خاص طور پر پاکستانی انگریزی بلاگز پر تاکہ گفتگو کا دائرہ بڑھ سکے۔ اگر آپ کسی بلاگ پر باقاعدگی سے تبصرے کرتے ہیں تو ممکن ہے وہاں سے کئی قارئین آپ کے بلاگ پر آئیں اور یہ بھی کہ وہ بلاگر آپ کی کسی پوسٹ کے بارے میں لکھے۔

اپنے بلاگ پر ایک صفحہ اپنے بارے میں ضرور شامل کریں جس میں کم از کم آپ کے بارے میں ایسی معلومات ہوں جس سے قاری کو آپ اور آپ کے بلاگ کو سمجھنے میں آسانی ہو۔ ضروری نہیں کہ یہاں آپ اپنی سوانح حیات اور اصل نام ہی لکھیں مگر اپنے بارے میں لکھیں۔ ساتھ ہی خود سے رابطہ کرنے کا کوئی طریقہ بھی فراہم کریں۔

دو سال پہلے کی طرح آج بھی میرا یہی خیال ہے کہ اردو بلاگنگ ابھی کہیں نہیں جا رہی۔ چھ سالوں میں شاید چند سو بلاگ ہیں۔ اس کے مقابلے میں کل بلاگ ہر چار پانچ ماہ میں دوگنے ہو جاتے ہیں۔ پاکستانی انگریزی بلاگ لے لیں یا فارسی بلاگ یا انڈین بلاگ سب ہی انتہائی تیزی سے بڑھے ہیں۔ ان سب کی exponential growth ہے جبکہ اردو بلاگز کی linear growth ۔ یہ بات پریشان‌کن ہے۔ لیکن اس سے زیادہ پریشان کرنے والی بات یہ ہے کہ اردو بلاگ یا فورمز کے قارئین بہت کم ہیں اور بہت سستی سے بڑھ رہے ہیں۔ ایک اندازے کے مطابق ایک عام اردو بلاگ کو 20 سے 30 قاری روزانہ پڑھتے ہیں اور زیادہ اردو بلاگز کو پڑھنے والے وہی لوگ ہیں یعنی تمام اردو بلاگز کے قاری اکٹھے کئے جائیں تو شاید چند سو سے زیادہ نہ ہوں۔ ایسی صورت میں نئے اردو بلاگز کہاں سے آئیں گے؟ اس اعداد و شمار کا مقابلہ بڑے بڑے بلاگز کی بجائے عام پاکستانی انگریزی بلاگ سے بھی کیا جائے تو شرمندگی ہی ہوتی ہے۔

اگرچہ پچھلے کچھ سالوں میں اردو بلاگز کے موضوعات میں اضافہ ہوا ہے مگر آج بھی زیادہ سیاست، مذہب، ادب اور ذاتی ڈائری ہی پر بلاگنگ عام ہے۔ کدھر ہیں معاشیات، معاشرتی علوم، فنون لطیفہ، سیاحت، فوٹوگرافی، بےبی بلاگ، مخلتف مشاغل پر بلاگ؟ اور اس سے بڑھ کر یہ کہ ان متنوع موضوعات کی کمیونٹیز کہاں ہیں؟

ایک بات خوش‌آئیند ہے کہ حال میں اردو بلاگرز کے درمیان گفتگو میں اضافہ ہوا ہے۔ اب بلاگرز ایک دوسرے کی تحریر کا جواب اپنے بلاگ پر دے رہے ہیں۔

اردو بلاگستان کی جب بھی بات آتی ہے تو لوگ ضابطہ اخلاق کی بات کرتے ہیں۔ تمیز اور انسانیت انتہائ اہم ہیں مگر بلاگنگ کے ضابطہ اخلاق کی بات کچھ عجیب لگتی ہے۔ یہ ضابطہ کوئ کسی پر لاگو نہیں کر سکتا۔ ہاں ہر شخص کو اپنی آن‌لائن اور آف‌لائن زندگی میں اچھے اخلاق کا مظاہرہ کرنا چاہیئے۔ اگر آپ بلاگنگ کا ضابطہ اخلاق ہی چاہتے ہیں تو کوئ اردو بلاگنگ کا شہزادہ ان دو ضابطہ اخلاق کا ترجمہ کر دے۔

نیٹ پر اردو لکھنے اور پڑھنے والوں کی طرف سے نستعلیق فونٹ کی طرف شدید رجحان یہاں تک کہ وہ نسخ میں اردو پڑھنا لکھنا ہی گوارا نہیں کرتے آج تک میری سمجھ میں نہیں آیا۔ لوگ اس وجہ سے آج تک انپیج استعمال کر کے اردو تحریر کا امیج آن‌لائن پوسٹ کرتے ہیں۔ اب تو خیر چند نستعلیق فونٹ بھی میدان میں آ گئے ہیں۔