Unfortunately, every other day is equal to another iPhone horror story for me. Developing an Asterisk IVR (Interactive Voice Response) system means interpreting DTMF tones from a wide range of devices. Now, if one of them happens to be an iPhone... then all hell breaks loose.
While testing, we weren't exactly sure why the keypad input from one of our phones was always garbled. After a few minutes of testing and testing, we figured it must be a phone problem. And it was. The phone in question is (of course) an Apple iPhone 3G. *My* iPhone 3G.
Digging through the apple support forums, this is what came up: the iPhone only knows how to send "long" DTMF tones. Because phone line quality is lousy by default, line noise and interruptions cause these long tones to sometimes (almost always) get broken into two or more "short" tones. Hence, the keypad input nightmare begins.
Empirically we discovered that turning off the 3G service on the iPhone alleviates the problem, but it's not guaranteed to work, and it's not documented anywhere.
Did I mention I have a love-hate relationship with my iPhone?
Fogbugz is orders of magnitude better than Redmine. Period. Also a lot more expensive. But it's worth every penny.
Just needed to say that.
Oh, and if you're a startup or a student, you should try their Fogbugz Student and Startup Edition (DUH).
Labels: bug tracking, project management
Redirect Non-www Domain to www for Better SEO
1 comments Posted by Sorin Stoiana at 3/30/2009 11:46:00 PMSearch engines consider http://domain.com and http://www.domain.com different websites. As a result, you are effectively splitting the potential benefit of valuable link popularity, as well as risking to be penalized by Google for duplicate content.
Using a permanent redirect you can effectively consolidate all of your link popularity to a single URL.
This Search Engine Optimization will serve to increase your website's chances of obtaining and maintaining top rankings.
First of all, you need to decide which version you intend to keep: the "www" or "non-www" URL for your website. Depending on which version you intend to keep, you need to use the following code in your Apache configuration files:RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
Some hosting providers are more permissive than others. If you have access to your httpd.conf file, you can insert the code there. If not, you can always use the .htaccess file in your site's document root. See the post
How to Disable Directory Listing/Browsing in Apache Web Server for more details.
Also, you need to ensure that your hosting provider has the Apache Rewrite Module turned on; this is a definite requirement for this fix to work. You can enable the Rewrite Module using the following line in the configuration files:LoadModule rewrite_module modules/mod_rewrite.so
Labels: Apache, http, SEO, web analytics, web server
How to Disable Directory Listing/Browsing in Apache Web Server
0 comments Posted by Sorin Stoiana at 3/21/2009 09:43:00 PMApache's Web Server, HTTPD, is arguably the most popular choice for a website, with more than 66% of the busiest websites using it (according to Netcraft's March 2009 Web Server Survey). By default, it comes configured with the Directory Listing option enabled. This option allows users to see all the files and sub-directories under a particular directory when index files set by DirectoryIndex (e.g., index.html, index.php etc.) are not found in that directory.
This is not advisable on a production website, because it may expose sensitive information to prying eyes. Moreover, if you do not define entries in robots.txt properly, search engines can reach and index these directories. Therefore, it is necesary to make these directories invisible in order to protect your data from being compromised.
How can we disable the Directory Listing in Apache Server?
There are two ways to achieve this:Options directive inside a <Directory> tag. Either remove the Indexes option from the line that begins with Options if it’s there, or change Indexes to -Indexes.<Directory "/www">
The only disadvantage with this method is that you need to have access the Apache configuration file,
Options Indexes FollowSymLinks
</Directory>httpd.conf..htaccess file: open the .htaccess file (create a new one if it’s not there) under the target directory, look for Options Indexes. If Options Indexes exists, modify it to Options -Indexes, or else add Options -Indexes as a new line.
This method requires the AllowOverride directive be set to "Options" or "All" for the target directory. When this directive is set to "None", then .htaccess files are completely ignored. In this case, the server will not even attempt to read .htaccess files in the filesystem.
Remember to restart your Apache Web Server, and the Directory Listing feature should be disabled by now.
Labels: Apache, http, web server
Zend Studio for Eclipse 6.1.1 for Mac OS X - problems & solutions
2 comments Posted by Sorin Stoiana at 3/15/2009 10:30:00 PMI recently reinstalled Leopard on my laptop, not because of an OS problem, but because my hard-drive quit on me. This was the perfect opportunity for me to try out version 6.1.1 of Zend's IDE. This, and the fact that version 6.1.0 that I used before was not available anymore.
To my displeasure, I was confronted with a handful of problems with this version of the IDE.
After enthusiastically downloading and installing the ~300 MB package (shame on you, Zend, for not providing links for the older versions of your products), I was greeted by a not-so-familiar face. All of the fonts looked really messed up, large and clunky. This was annoying for a number of reasons. First off, the larger fonts used up a large amount of real-estate on my 13" display. More importantly, it was plain ugly :(
I took to the Preferences dialog to try and modify the fonts, but to no avail: there were parts of the interface that stubbornly refused to comply with my settings. Thinking that maybe there was a problem with my Java installation, I downloaded and installed Eclipse, and noticed that it was NOT affected by the font problem. After a couple of hours of comparing Eclipse and ZSE configuration files, I discovered the cause. The line -Dorg.eclipse.swt.internal.carbon.smallFonts
was missing from /Applications/Zend/Zend Studio for Eclipse - 6.1.1/ZendStudio.app:MacOS/ZendStudio.ini
The same comparison helped me figure out how to change the ugly low resolution icon that appeared for ZSE when pressing switching apps by using ⌘+Tab. Adding the line -Xdock:icon=../Resources/mac.icns
to the same file as above made OS X use the high res version of the icon.
The next problem reared it's ugly head when I tried updating ZSE. Whatever options I'd chose when trying to install new features or update, the following message would appear in the Search Results dialog:RSE Feature Patch (3.0.2.v20090119-1307w311_122_) requires feature "org.eclipse.rse (3.0.2.v200812041720-7H3788qfeqHMeUOEQ2IKjVLIiQ8)".
Fortunately, the solution to this problem was easily discovered on Zend's site in a Knowledge Base article.
In spite of all these minor problems, ZSE still is, in my opinion, the best PHP IDE out there. However, Zend should take a little more care when packaging new releases of their products.
Labels: Apple, Leopard, OS X, php, Zend Studio for Eclipse
After almost three months of non-stop work and a lot of interesting technical challenges, trafic.ro got a major redesign. But it's not all about the looks. The interface is cleaner and a lot of functionality has been updated to provide better usability.
And, judging from the initial feedback from our users, the new AJAX user interface for ranking system is a BIG hit!
Launched in September 2000, trafic.ro is the audience monitoring and website ranking tool used by most Romanian websites.
Check it out for yourself!
Labels: AJAX, CSS, HTML, javascript, php, trafic.ro, web analytics
It's been a long time since I've been here!
Good news is that starting January 15th I'm a WAA Professional member.
Labels: geek, WAA, web analytics