Add extra validation rules to Laravel ForgotPassword

I wanted to add a captcha to the Forgot Password form, so I ended up doing this to the default ForgotPasswordController:

use Validator;
use \Illuminate\Http\Request;
class ForgotPasswordController extends Controller {
protected function validateEmail(Request $request)
            'email' => 'required|email',
            'captcha' => 'required|captcha', // extra param to be validated

Only relevant bits are shown there.

React Native: Application is not registered

- This is either due to a require() error during initialisation or failure to call AppRegistry.registerComponent.

I had been struggling with this for some time and the answer was right there… I had to make sure I called AppRegistry.registerComponent with the right params/appname – I had renamed my app and forgot to update the class name and also the name passed to registerComponent.

And, one way to rename a project is by renaming in package.json and then running react-native upgrade.

HTTPS and GA referral exclusion

After converting a site to be served over TLS, we noticed the drop off rates increasing on some pages. This was because: user was being redirected to a payment page on another domain that was also served over TLS. As, now both sites were served over TLS, Google Analytics was picking up the referrer (HTTPS -> HTTP would pass no referrer, HTTPS -> HTTPS does) and was counting the payment page/domain as a new source. Thus, counting the redirect as an exit. Fix was simple, I excluded the payment domain in the referral list.

Google Analytics referral exclusion

missing scheme in email body url

Some mail service providers (Yahoo Mail exhibits this at the moment), do not like links that do not have a scheme(http/https for instance) and will make the link non-clickable by removing the href. The fix is simple:

<!-- link is not clickable -->
<a href="">Google</a>
<!-- link is clickable -->
<a href="">Google</a>

how to not run a cron job between certain datetimes

Say, I have a cron job entry and do want the job to run between 2013-02-01 9PM (Feb 1st 2013) and 2013-02-02 11AM (Feb 2nd 2013), this is one possible solution (in crontab).

* * * * * [ $(/bin/date "+\%Y\%m\%d\%H") -lt 2013020109 -o $(/bin/date "+\%Y\%m\%d\%H") -gt 2013020211 ] && /PATHTOMYSCRIPT/myscript

rsync only certain files

Create a file on on the origin server and use the –files-from option

cd /
rsync -anvi --files-from=/tmp/only_these_files . to-server:/
cat /tmp/only_these_files

Starting KVM guest after memory change

After a memory module was taken out the system, the KVM guest was failing to start complaining about insufficient memory. Editing the domain XML file (in /etc/libvirt/qemu on Debian) to use less RAM and then trying to start the guest did not work.

I had to do this:
libvirt-bin restart

for the the updated XML file to be read and for the guest to start.

WordPress + Nginx + Permalinks Rewrite rules

The following works for me:

  location /blog/ {
          index  index.php;
          # WordPress pretty URLs: (as per
          if (-f $request_filename) {
          if (-d $request_filename) {
          rewrite ^/blog/(.+)$ /blog/index.php?q=$1 last;
          # Enable nice permalinks for WordPress: (as per
          error_page  404  = /blog/index.php?q=$uri;

I have my blog here:
and my permalink structure is: /%postname%/

myisamcheck running out of tmp space

Recently I was running myisamcheck on an entire database housed inside a vserver. And, by default vserver mounts a 16MB ramfs on /tmp. This obviously is not an ideal solution when you are running a DB server that has a few tables that are around 20GB. So I had to specify a different directory for storing temporary files – that was on a partition with enough space – while running myisamcheck. To do that I had to make use of the –tmpdir parameter defined here.

Also, the way to increase the /tmp size inside a vserver seems to be this. I have not tested that solution yet.

Getting rid of MySQL Warning: Truncated incorrect DOUBLE value

If you come across a cryptic warning like this:

| Warning | 1292 | Truncated incorrect DOUBLE VALUE: 'xxxxxxx'

on running a MySQL query, it could be caused by using a numeric value against a CHAR/VARCHAR column.

---assuming `name` is a CHAR/VARCHAR column
---the following query might cause warnings
SELECT * FROM `t1` WHERE `name` IN (1, 2, 3);
---replace the above with this
SELECT * FROM `t1` WHERE `name` IN ('1', '2', '3');
--and the warnings are quite likely to go away