« Older Home
Loading Newer »

The Essential Guide to Open Source Web Design Part 0

Want to learn how to design professional websites using only freely available open source tools? I thought it might be an interesting topic and if you share this interest please don’t hesitate to comment with what you’d like to learn about (this will help me determine whether or not it will be worth while to continue posting on this topic). I’m planning to write about XHTML, CSS, and graphic design (to a much lesser extent). I’d be willing to cover more advanced topics like JavaScript, PHP, and MySQL but would rather discuss the use of the JavaScript and PHP frameworks MooTools and CodeIgniter respectively. Just let me know.

So what do you need to setup shop? Well some basics tools might help. Right?

Preparation (this is easy!)
An operating system is a must but I’m assuming you have that covered since you’re able to read this. Most of the tools I’ll list below are cross-platform compatible so it doesn’t really matter if you’re running Linux, Mac OS X, or Windows XP/Vista. However, if you wish to stay true to the spirit of open source I suggest installing Ubuntu Linux.

Web Browser (used for testing and previewing websites)
Firefox 3. Sometimes a little slow, I’ll admit, but I’ve found no other web browser that serves my purposes better. So what’s the big deal? Install the following two Firefox add-ons and I’ll explain how they’re godsends at a later date: Web Developer by Chris Pederick and Firebug by Joe Hewitt

Graphics Software (for image manipulation and creation)
The GIMP. You’ll be using this to create website layouts and mockups, you can use it to slice up images for the Web with the following menu option: Filters —> Web —> Pyslice.

Inkscape. Some people prefer vector graphics (like me).  This program can be used to make logos, interface elements, clip art, buttons, etc.

Of course, if you don’t mind shelling out the big bucks you could get a copy of Photshop and/or Illustrator, but if your pockets are tight and you’re willing to learn, I can assure you’ll be amazed at what can be done with The GIMP and Inkscape (especially the latter).

Text Editor (used for editing XHTML and CSS files)
Honestly, there’s a myriad of excellent tools out there and everyone has their preference; in fact there’s some out there (again, like me) who prefer to use a combination of editors. My personal favorites are TextMate and BBEdit but they’re Mac-only and not free or open source.

Anyway, for the Linux junkies we got some good editors: Quanta Plus, SciTE, and Bluefish. Though I’m quite sure many of you will be more comfortable with emacs, pico/nano, vim, or even gedit (all great tools in their own right).

You Windows users can try notepad++ or if you don’t mind freeware give NoteTab a try.

What now?
Comment away. I need to get a feel for what people want to read about. I can do a whole introduction to XHTML and CSS or do design theory or practical hands-on stuff. Just be sure to leave a comment.

How to setup Apache, PHP, & MySQL on Mac OS X 10.5 (Leopard)

Since I’m on winter break and have some spare time, I thought it would be helpful if I posted a little tutorial on how to setup Apache 2.2.6, PHP 5.2.4, and MySQL 5.0.45 on Mac OS X 10.5 (Leopard).

I recently purchased a very sleek MacBook from Apple.com, thinking to myself, why not end the year in style? Anyway, after I got all my old applications installed and some of my files moved over from my PowerMac G5 I proceeded to enable Apache2 and PHP5. Usually, I use lighttpd instead of Apache and compile everything from source but this setup was just so simple I decided not to bother with anything painstakingly long, which building from source can very well be.

Preparation
Please be warned that I’m assuming you have a clean install of Leopard, I doubt anything you do here can cause any serious damage but just be sure you have backups of everything important. If you screw up my directions there are copies of the Apache configuration files you’ll be editing in /etc/apache2/original so don’t despair.

Download and install Xcode. If you don’t want to wait for the latest version to download a copy of Xcode comes with every Mac OS X DVD in the Optional Installs folder.

Open up the Terminal application in /Applications/Utilities or if you prefer use iTerm.

I will be using the GNU nano text editor in my examples since it already comes with the Mac, but if you’d like to use TextMate or BBEdit just replace nano with mate or bbedit respectively and remove any nano specific options (e.g. +n or -w).

Whenever I ask you to type something into Terminal you have to hit return for the command to go through. Alternatively, for you lazy ones out there, you can just copy and paste these commands.

Setting up PHP
Enter the following into the command line/shell (Terminal):
sudo nano -w +114 /etc/apache2/httpd.conf
Whenever you put sudo in front of a command you will need to enter your root/administrator password when prompted to do so.

Your cursor will now be at the beginning of line 114, which should look like this:
#LoadModule php5_module libexec/apache2/libphp5.so
Uncomment that line by removing the pound/hash sign (#).

Before you close the httpd.conf file you should hit control w and search for:
DirectoryIndex index.html
Add index.php to the end of the line like so:
DirectoryIndex index.html index.php

When you are finished hit control x to exit, then type y, and hit return to save your changes.

Now, you should type the following into Terminal:
sudo cp /etc/php.ini.default php.ini

I’ll let you choose how you configure your php.ini file but I’d suggest you make sure PHP reports all errors, so in shell type:
sudo nano -w +305 /etc/php.ini
Change line 305:
error_reporting = E_ALL & ~E_NOTICE
To:
error_reporting = E_ALL
Close and save (unless you have any other changes to make of course). If you’re lazy you can just download php.ini-recommended and overwrite php.ini with that.

Setting up Apache
If you’re like me and use rewrite rules in an .htaccess file for those nice clean search engine-friendly URLs you’ll need to make sure mod_rewrite is working properly. For this you will need to know your computer’s short name, on this one it is ariadoss, so replace ariadoss with whatever yours happens to be, you can easily tell what it is from the Terminal cause it’s the name right before the dollar sign (e.g. danilo-stern-sapads-macbook:~ ariadoss$). If you still can’t figure it out it doesn’t matter since there is only one file in /etc/apache2/users, which should be yourname.conf.

Go to the Terminal and type in everything except the bold part unless you know what goes there, hit tab to autocomplete the missing bold part with your info before hitting return:
sudo nano -w /etc/apache2/users/ariadoss.conf

You should now see something like this on line 1:
<directory "/Users/ariadoss/Sites/"></directory>
Directly underneath line 1, you should change lines 2 and 3 to look like this:
Options All
AllowOverride All

Close and save.

We’re not exactly done yet but let’s go ahead and test that Apache and PHP are running.
Go to System Preferences, click on the Sharing icon, then select Web Sharing and make sure it’s checked, the light will turn green and it will say Web Sharing: On. Now open up your favorite web browser and go to:
http://localhost/

If you want to see the contents of your Sites directory go to: http://localhost/~ariadoss
Again, make sure you replace ariadoss with your short name.

Personally, I hate typing in ~ariadoss every time I need to test a site so I made some further changes to my httpd.conf file, which you probably only want to implement if there are no other users on your computer. We could setup Virtual Hosts to make short memorable URLs like http://ariadoss/ instead of just pointing /Users/ariadoss/Sites to http://localhost but that’s outside the scope of this tutorial.

So here’s what you do, back to Terminal:
sudo nano -w /etc/apache2/httpd.conf
Once open, replace the two occurrences of /Library/WebServer/Documents with the full path to your own Sites directory (e.g. /Users/ariadoss/Sites). To easily find the path to your particular directory open another Terminal window (command n) and enter:
cd ~/Sites
pwd

Once you finish finding and replacing all that jazz, restart Apache using the command below:
sudo apachectl restart

You’ll want to restart the Apache service either from System Preferences or the command line whenever you make a change to a configuration file.

Okay, now I know that was a lot to absorb and we haven’t even gotten to building and installing MySQL yet, so get a drink of water, stretch, even walk around a little bit, just make sure to clear your head before proceeding to the next section. You may want to go to http://localhost/ and make sure it’s displaying the contents of your Sites directory - if not make sure you clear your cache and refresh the page before assuming you did something wrong and double check your index.html file’s contents so you know what to expect.

Compiling and Installing MySQL
At this point in time there is still no MySQL installer for Leopard so you will have to build and compile it yourself. I wouldn’t mind explaining how to do this but Dan Benjamin over at Hivelogic already did a thorough job of it:
Installing MySQL on Mac OS X

You want to follow Dan’s directions until you reach the heading titled, Baking-In the MySQL Bindings, which is really only needed if you’ll be developing with Ruby on Rails.

To be able to use localhost as your database hostname instead of 127.0.0.1, open up Terminal and enter:
sudo nano -w /etc/php.ini
Search (control w) for:
mysql.default_socket =
And replace with:
mysql.default_socket = /tmp/mysql.sock
Then search for:
mysqli.default_socket =
And replace with:
mysqli.default_socket = /tmp/mysql.sock
Save and close then restart Apache using one of the two previously described methods (I prefer sudo apachectl restart).

Congratulations you now have a perfectly functional development environment, go write the next Facebook or Digg or some other brilliant web app.

Chitika eMiniMalls versus Yahoo! Publisher Network

I recently did a comparison of the Yahoo! Publisher Network (YPN) and Chitika eMiniMalls, as I did once before with the Yahoo! Publisher Network and Google AdSense. As some of you may know Chitika has been getting a lot of hype lately, but I honestly don’t think it’s warranted. Those bloggers that so aggressively promote it are hoping that their readers click their referral link and sign up for the program, which gives them 10% of whatever you earn through Chitika (same will happen if you click the link I provided above - that is of course if I’m still a member of the program when you do).

What kind of pay-out can I expect?
My own experience with Chitika showed that it made about twenty-five times less revenue than YPN. The average Click-through rate (CTR) was pretty much the same as YPN, but Chitika’s average Cost Per Click (CPC) was only a pitiful $0.02 making it the lowest paying ad network I’ve been a part of - this includes Google AdSense and Value Click Media.

How can I make money off eMiniMalls?
My final evaluation of Chitika eMiniMalls is that it doesn’t work unless you have ads directly related to your content, this might mean you’ll have to write reviews of certain products and then make sure your ad code has that specific product listed or just rely on their contextual option. I’m sure if I spent the time to target higher paying keywords I could make more money with Chitika, but I wasn’t too keen on having such intrusive ads appear on my sites in the first place, so I think I’ll just stick with text-based ads for now. For those of you currently using AdSense you can use Chitika eMiniMalls alongside it for extra revenue as long as the contextual option is not on, though this might change in the future depending on Google’s policies.

What are some niches or keywords you’d suggest?
If your website falls under any of the following categories you can expect a decent pay-out: Cell Phones, Finance Software, Medical Software, Spyware Removal, Electronics Rentals, and Dieting. Generally, the aforementioned topics pay well on any ad network though.

Best Web Browsers for Mac Users

I’ll be up front about this, I prefer the Mac OS to Linux and Windows (and obviously all the other operating systems I neglected to mention), so a lot of these web browsers are Mac-only. Below is a list of web browsers I tested on my Apple Power Mac G5 running Mac OS X:

  • Amayaw
  • Atlantis
  • Beonex
  • Camino*
  • Firefox*
  • Flock
  • Hot Java
  • iCab
  • Internet Explorer (discontinued)
  • MadFox
  • Mozzilla
  • NagaraBrowser
  • Netscape*
  • OmniWeb*
  • Opera
  • RAFBrowse
  • Safari*
  • SeaMonkey
  • Shiira
  • SunriseBrowser*
  • surfDude
  • WaMCom
  • Wazilla

*The asterisk indicates browsers I would personally recommend for Mac users. Here is a short review of them:

  1. Safari - Very fast browser, shows little lag even with more than twenty tabs open. Again, it lacks the customization of Firefox. (Note: This is only my favorite browser as of Safari 3 - the moveable tabs go a long way.)
  2. Firefox - Great browser, love the extensions. It tends to slow down when I have more than twenty tabs open at once. It is my first choice on Linux. As far as extensions go I would recommend my Encyclopedia of Speculative Fiction Search Engine (bit biased about this of course), the Web Developer Toolbar, SearchStatus, User Agent Switcher, and Leet Key. Firebug is also very useful but can be very buggy.
  3. OmniWeb - This would probably replace Safari (as of version 2) for me, except one problem, it is not free, though lately I have been seriously debating whether or not to pay the $30 for the full version (but I don’t like paying for things that have free or open source alternatives). I love how the tabs are organized in this web browser. The default interface is a lot nicer than Firefox and Internet Explorer 7 Beta for Windows, and it is virtually just as fast as Safari. That said, Firefox could learn a lot from this browser.
  4. Camino - The third fastest of the lot, very similar to Firefox minus the plugins, extensions, and compatibility with certain media.
  5. Netscape - This is the reason it took me so long to switch to Firefox originally, especially on Windows this is an excellent, fairly secure browser. Firefox extensions converted me. Be warned it uses considerably more RAM than the other browsers listed here.
  6. SunriseBrowser - Fastest browser I have ever used. Unfortunately, at this point it does not have tabbed browsing. It does have a nifty transparency feature, which I use to watch movies while surfing the net, pretty nifty stuff.

For all you Windows users out there, Firefox is still a wonderful choice. However, if you are not too concerned about security and want something that resembles IE, try Avant.

Finding a web host has never been easier

Last week I was scouring the net in search of a web host for one of my clients. I tend to always have problems finding a good hosting provider, but this time I stumbled upon this nifty site called Web Hosting Search. Their cheap web hosting top list and their page concerning Linux hosting proved really helpful in my decision making process.

Street Kids in the Philippines: Inside Society’s Canvas

If you’ve read my about page you may have noticed that I’m half Filipino - not that it’s important to understanding my reason for posting this, as human suffering is something that should affect us all in some way. I recently spent a couple weeks in the Philippines and as always I was greeted by the extreme hardships the children of poverty are forced to endure day after day. While the Philippines has many beautiful places, the video below gives you a glimpse of the indigence that ravages the third world. It’s in Tagalog with English subtitles and I must say may be potentially disturbing for some.

Google AdSense versus Yahoo! Publisher Network

After reading many articles that suggest that the Yahoo! Publisher Network (YPN) has a lower Click-through Rate (CTR) than Google AdSense I decided to take it upon myself to test this out on one of my entertainment sites geared towards mature teens. My experience with these two ad publishers did not follow this trend that suggests AdSense has a higher CTR.

Click-through Rate
I’ve found that the average CTR for both YPN and AdSense were relatively similar. There are other factors that may effect these results such as my ad placements or audience but due to YPN’s higher Cost Per Click (CPC) it has been more profitable for me than AdSense. The average CTR was about 300 clicks per 1,000,000 impressions.

Relevance of Content
AdSense delivered better targeted ads but by setting categories for my highest trafficked pages I was able to further increase my CTR with YPN. Also, YPN showed mostly main brand ads my visitors were familiar with (not sure if this is good or not).

Comparative Data
So which made me more money? YPN averaged about $0.50 per click while AdSense averaged about $0.22 per click, and as I mentioned above the CTR was about the same. Below I listed some numbers I got from my comparison of the two ad networks:

Month 1
Earnings - Yahoo! made 38.6% more than Google
Y - Clicks: 308 | Impressions: 1,053,573
G - Clicks: 305 | Impressions: 1,072,797

Month 2
Earnings - Yahoo! made 39.8% more than Google
Y - Clicks: 322 | Impressions: 898,625
G - Clicks: 287 | Impressions: 1,069,110

Month 3
Earnings - Yahoo! made 17.6% more than Google
Y - Clicks: 462 | Impressions: 1,374,128
G - Clicks: 378 | Impressions: 1,212,344

This may not of been the best way to organize this data or compare both companies but it should give you a rough inclination that for the type of website these ads were on YPN was the better choice. Please forgive me if the calculations seem a little off, I feel I posted enough to give you all a general comparison. AdSense could totally work better for some of you than YPN, you’ll just have to try it out for yourself!

Neat little tool to preview how ads from various publishers will look:
Contextual Ads Preview and Comparison Tool

Decoding eval gzinflate base64_decode str_rot13

This is sort of a supplement to the the blog post I made with the PHP snippet on decoding code encrypted via eval(gzinflate(base64_decode('encoded text'))); over at:

Decoding eval gzinflate base64_decode

The following code snippet is a simple PHP class found at the post
by macosbrain entitled Decode
Function: eval gzinflate base64_decode str_rot13

Contrary to this post's title, the class is cabable of decoding
the following functions that are commonly used for protecting PHP
code:

  1. eval(gzinflate(base64_decode(
  2. eval(gzinflate(str_rot13(base64_decode(
  3. eval(gzinflate(base64_decode(base64_decode(str_rot13(
  4. eval(gzinflate(base64_decode(str_rot13(
PHP:
  1. <?php
  2. /*
  3. This code was taken from http://wordpress.macosbrain.com/2006/08/17/decode-function-eval-gzinflate-base64_decode-str_rot13/
  4. Directions:
  5. 1. Save this code to a PHP file (e.g. decode.php)
  6. 2. Copy the encoded PHP code and place it in encoded.php
  7. 3. Execute this script by visiting decode.php in your browser
  8. 4. You will be prompted to download the decrypted file (e.g. decode_test.php)
  9. Notice:
  10. Do not use this to violate copyright. This is intended for educational and security purposes only.
  11. */
  12.  
  13. class decode
  14. {
  15.     function __construct($file)
  16.     {
  17.         $this->org_data = file_get_contents($file);
  18.         $this->result = $this->org_data;
  19.         $this->done = false;
  20.         $this->file = $file;
  21.     }
  22.    
  23.     function strip_php_tags($str)
  24.     {
  25.         $str_del = Array('');
  26.         return str_replace($str_del,'',$str);
  27.     }
  28.    
  29.     function strip_what_to_execute()
  30.     {
  31.         $possible_code = substr($this->result,0,strpos($this->result,"'"));
  32.         $possible_code_end = strrpos($this->result,"'");
  33.         if($this->test_possible_code($possible_code) && count($this->execute)> 0)
  34.         {
  35.             $possible_code_start = strlen($possible_code)+1;
  36.             $this->result = substr($this->result,$possible_code_start,$possible_code_end-$possible_code_start);
  37.         }
  38.     }
  39.    
  40.     function clean_string($str)
  41.     {
  42.         $str = trim($str,"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f");
  43.         $str = trim($str,"\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff");
  44.         $str = trim($str);
  45.         return $str;
  46.     }
  47.    
  48.     function test_possible_code($str)
  49.     {
  50.         $str = $this->clean_string($this->strip_php_tags($str));
  51.         //echo $str."\n";
  52.         $functions = explode('(',$str);
  53.         $this->execute = array();
  54.         if(!in_array('eval',$functions))
  55.         {
  56.             $this->done = true;
  57.             return false;
  58.         }
  59.         foreach($functions as $function)
  60.         {
  61.             if($function!='' && $function!='eval')
  62.             {
  63.                 if(!function_exists($function))
  64.                 $this->error('sorry but i can not access the function:"'.$function.'"');
  65.                 else
  66.                 $this->execute[] = $function;
  67.             }
  68.         }
  69.         return true;
  70.     }
  71.    
  72.     function execute()
  73.     {
  74.         $cmd_str = '';
  75.         $cmd_end = '';
  76.         foreach($this->execute as $cmd)
  77.         {
  78.             $cmd_str .= $cmd.'(';
  79.             $cmd_end .= ')';
  80.         }
  81.         $eval = $cmd_str."'".$this->result."'".$cmd_end;
  82.         eval ("\$this->result = ".$eval.";");
  83.     }
  84.    
  85.     function error($msg)
  86.     {
  87.         die($msg);
  88.     }
  89.    
  90.     function decode()
  91.     {
  92.         $this->strip_what_to_execute();
  93.         if($this->done==false && count($this->execute)> 0)
  94.         {
  95.             $this->execute();
  96.             $this->decode();
  97.         }
  98.         else
  99.         {
  100.             //i think this is the "decrypted", you may see two little errors, correct them.
  101.             $this->download();
  102.         }
  103.     }
  104.    
  105.     function download()
  106.     {
  107.         header('Content-Disposition: attachment; filename="decrypted_'.$this->file.'"');
  108.         header('Content-Type: application/php');
  109.         header('Content-Length: '.strlen($this->result));
  110.         die($this->result);
  111.     }
  112. }
  113. //put your encoded PHP code in encoded.php
  114. $decode = new decode('encoded.php');
  115. $decode->decode();
  116. ?>

If you do manage to decode something with this class please leave a comment, if you have any issues please leave a reply here or comment on the author's original post. Please note that I have received permission from macosbrain to include his class in this article.

Microsoft adCenter and Windows Live versus Google and Firefox?

Windows Live

Some of you may have noticed Microsoft's new adCenter as well as the Windows Live search engine.  Are these really a competition for Google? 

Well, this will be my own opinion on the matter, all statistics aside.  I have told Microsoft on countless occasions by means of their AdCenter Feedback and Windows Live Feedback forms that they will never even start to pose a threat to Google if they continue to disregard web standards and other obvious compatibility and usability concerns.

For instance I am a Mac user and employ Safari as my primary browser for simple web surfing.  Windows Live will not work with Safari; it simply displays a search box and the Windows logo. I have also tested it with a screen reader for the visually impaired and it is absolutely terrible.  Do you expect someone who actually requires the aid of a screen reader such as JAWS to be able to "click" on a button to conduct a search?  Google on the other hand runs quickly and smoothly in any browser, even on a PDA, cell phone, or Sony PSP.

Microsoft adCenter

Now on to Microsoft adCenter, check out the message I get in all my browsers: "Microsoft adCenter does not currently support the web browser you are using. Please sign in using Internet Explorer 6+. More about system requirements." The "More about system requirements" link did not work in Safari. In case you were wondering why I have so many browsers installed, it is to prove a point, Microsoft does not care about anyone but themselves, and even then the support they provide is pathetic. I should mention the site still did not work in the now defunct Internet Explorer browser for Mac.  So why would I even want to sign up for AdCenter when Google and Yahoo both offer excellent advertising solutions?  Well, Microsoft is a large company that wants to make lots of money as well as compete with Google's dominance over online advertising.  Simply put, I wondered if adCenter could make me more money than my current advertisers. On a side note on my websites Yahoo Ads seem to have a higher Cost Per Click (CPC) while AdSense has a higher Click-through rate (CTR).

After sending a very angry letter to Microsoft via adCenter's feedback form, I attempted to sign up for adCenter on my roommate's PC.  His anti-spyware application kept popping up saying this page was trying to compromise my computer's security settings.  The next day at work I tried again on a Dell laptop, on which Microsoft's Active-X technology was disabled under Internet Explorer 6's security settings.  I enabled it and then when I tried to signup I got a pop-up stating that the security certificate does not match up with the web address of the site I am on, I click OK.   While filling out the form I noticed that some of the drop down menus were empty and I was not able to click on the check boxes.  I gave up for few weeks. Then today I was finally able to complete the sign up process using my beloved Firefox!  I downloaded the User Agent Switcher 0.6.8 Firefox add-on by Chris Pederick, switched my user agent to "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)", and was able to sign up without a hitch. 

So does Microsoft stand a chance? Probably, they definitely have the means to compete, but little things like this are a huge turn-off for some people such as myself. They need to start worrying about compatibility issues; even though Microsoft would have it otherwise, people do use other software.

adCenter sign up using Mozilla Firefox with User Agent Switcher

For a list of web browsers I used to test adCenter please read my Best Mac Web Browsers post.

54 Bahai’s Wrongfully Imprisoned in Iran

Yet another gross violation of human rights has occurred against the followers of the Bahá'í s faith. Fifty-four youth were arrested in Shiraz, Iran while engaged in a humanitarian effort for UNICEF. Though the reasons for the detention are still unclear, all non- Bahá'í s involved and a Bahá'í junior youth have been released.

This is just one of many actions that the Iranian government has taken against religious minorities in the past month. In a highly confidential letter addressed to the “the Ministry of Information, the Revolutionary Guard and the Police Force, states that the Supreme Leader, Ayatollah Khamenei, had instructed the Command Headquarters to identify persons who adhere to the Bahá'í faith and monitor their activities. The letter goes on to request the recipients to, in a highly confidential manner, collect any and all information about members of the Bahá'í faith.” (Jahangir)

In addition to this Iranian media – including newspapers and radio stations – have engaged in a constant repertory of anti-Bahá'í propaganda. This has given rise to a greater level of unfounded suspicion and contention towards the members of the Bahá'í faith in Iran.

Please take action against these despicable crimes against religious minorities in Iran; we must fight against social cleansing! I cannot bear to hear another story of another Bahá'í youth being put to death for his or her beliefs (see A Dress for Mona).

Update available on Bahá'í World News

Sources and further reading:



bubble

OK

Close
E-mail It