Archive for November, 2009

Use the tools around you

Friday, November 27th, 2009

In my opinion, far to many people continue to reinvent the wheel. There is nothing wrong with building a better wheel that is suited for your specific task, but don’t start from scratch just for the sake of starting from scratch. To continue my trend of hemorrhaging proverbs, suck it up and stand on the shoulders of giants. You will still be respected as alpha geek and your boss will be impressed because what really matters is doing it right, doing it well and getting it done. Chances are someone out there has already done what you are trying to do and they might have even done it better then you could yourself. This means that if you have the right tools and resources you don’t need to and should not sacrifice quality. Here are some tools we have used in various projects for a solid foundation to build from or even just use in our concepts and working demos. I have also included tools we use for debugging, development, design and other such tasks. I will continue to update this list as more come to mind: (more…)

Captcha Fail

Thursday, November 19th, 2009

Over the past couple of weeks we have been struggling with a rather intelligent spam bot (or person?) that has been hammering one of our clients forms. Currently we are using a non-image based representation of a set of digits you have to type in to successfully post the form. On top of that we have implemented a minimum time limit as well as a dummy form field that is positioned off screen so a user will not see or fill it out. If it is filled, we know it is a bot because in the markup, it is directly below the real input field… It worked for a couple days bit has now been broken =( We have a couple more tricks up our sleeves that we are working on and will report back on our findings. Now the question that comes to mind is, should I post the details of the new captcha if it is successful? Or would that just give the spammers the means to break it?

Here is a really cool CAPTCHA implementation from www.captcha.net and is based around the concept of tracing around a specific image from a set. It is called squigle-pix: http://server251.theory.cs.cmu.edu/cgi-bin/sq-pix . I would like to see a bot break that!! Only problem is, I can’t find an easy to implement version of this; it seems like it just exists as a proof of concept.

nginx and non document root phpmyadmin

Friday, November 6th, 2009

Recently we have been playing around with nginx for a couple of projects we have been working on and I think I have fallen in love with a web server. After using apache for so many years, I did not think that this could be possible, but it is!! For what we are using it for, it is superior in almost every aspect: installation, configuration, speed, memory usage, etc. Not to mention the fact that most of our apache deployments are often tainted by the beast that is cPanel/WHM… The reason I am writing this article is to hopefully alleviate the pain of trying to figure out how to setup phpmyadmin or other such applications in a non-document root setup when you are just learning the ins-and-outs of nginx configuration.

Just a quick tip because it is probably the main stumbling block when learning nginx configuration vs apache configuration; the root directive works differently in nginx. In nginx it will append the directory from the matching location block to the request. Taken from the docs: “so that a request for “/i/top.gif” will not look in “/spool/w3/top.gif” [but in /spool/w3/i/top.gif] like might happen in an Apache-like alias configuration where the location match itself is dropped. Use the alias directive to achieve the Apache-like functionality.” But I digress.

Most of the online documentation and tutorials explain how to get php running globally or how to get phpmyadmin to work from document root, but I had to dig deep to get it to work like www.domain.com/phpmyadmin/ . I didn’t want every .php script to be run as php and I did not want phpmyadmin installed at document root. Here is what I found:


location /phpmyadmin {
    root           /usr/local/nginx/html;
    index          index.php;
}

 location ~ ^/phpmyadmin.+.php$ {
    root          /usr/local/nginx/html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

(more…)

A not so brief history of base-10 design & development inc.

Monday, November 2nd, 2009

Not many people know how Base-10 started or where it came from, so I am going to give you a brief history lesson that will shed some light on our origins and how we came to be.

It all started back in 2003 almost 7 years ago… Ramin and I both trained in Kickboxing and attended Champions Martial Arts. Ramin was 19, I was 17 and we were not even good friends at the time, in fact I clearly remember Ramin picking on me. We had been training together for more then 5  years at the time and knew that we were both computer geeks. Ramin was into graphics and 3d rendering and I was into linux system administration; we were both into gaming. This is how we first connected, by fragging and ganking each other in Counter Strike and other such games. One day I was approached by Amin Sabounchi, another member of Champions, asking me if I knew how to make websites because he was interested in getting a new real estate site for his business. I told him what any 17 year old underachiever, wannabe computer hacker would say, “Of course I do!!”. To tell you the truth, I did not know how to make a website, especially a dynamic real estate website.. all I knew was some super basic HTML and the general concepts involved.. I had no programming experience and absolutely no design skills. Armed with nothing but an idea of where to start, I bought a book on Perl (Programming Perl!!) and called up Ramin with a proposition. (more…)