Whenever we think about integrating sms in our application, the only company that comes to comes to is twilio. Twilio is a really good service however they are relatively expensive to their competitors especially if you know where your target audience is from.

In my case I was working for startup in Spain which operated in the Spain/Portugal region.For a while we were using twilio, but soon the number of sms we were sending grow to huge amount and we were spending a significant amount of money on it.

We came across another provider smsgateway.to .Compared to Twilio it wasnt a very popular provider but its pricing was much better.We gave this a provider a try and tested sending SMS through them.Their delivery rate was pretty high and we decided to switch to them.We came across another issue, they didnt have a ruby client so I wrote a quick one and was ready to use it production.

We are now using the service in production for 2 months and we have had no issue so far.More over we reduced the cost of our sms by more than 3 times.

The library is available at https://github.com/h0lyalg0rithm/sms_gateway_to

Lately there are many services which track open email, like sidekick from hubspot.The way they work is very straight forward.Any time you open an email sent using sidekick it loads a unique transparent image from sidekick’s server thereby letting sidekick know that you have opened the email.This is not a problem if you are using unibox, a mail application that doesn’t open images automatically.But Gmail on the other hand loads all the images

Gmail had added a new feature couple of years ago, where it would cache images that are sent in bulk/mass email campaign, making the request anonymous (since google is making the request to the server).However many of these service now generate unique urls for these images.

So the only way to stop the tracking is to stop automatic loading of images.Luckily gmail has the option to disable image loading.gmail

To turn off image loading

  1. Click on the settings/cog icon on the right hand corner of gmail.
  2. Scroll down until you see the images section.Then click on Ask before displaying external images.

Recently I bought an old mac from my friend.This mac is pretty old, it has two GFX cards one integrated and one discrete.Switching the cards was really important since the machine would heat up while using the dedicated GPU.

I found this tool online on gfx.io.This tool lets me easily switch the GPU using a statusbar application.



Last night my friend wanted help with custom PHP cms which he was built for his client.The code was really a mess.You would not know where the code actually began and there was clearly no separation between the model and the views.

I didn’t want to spend considerable amount of time in understanding the code.I started debugging the code using the die function.Yeah ‘die php die’.

die() is a pretty awesome function it is similar to the raising an exception but instead of causing a crash it  just stops code execution for the consecutive lines.You can also pass arguments to the die function.

I was really not sure how the user session was stored/created.So i used the die function by passing the var_dump($_SESSION) as the argument, this returns the all the session information.

The php array was returned with a bunch of keys which didn’t make sense at all.

The good part about the whole experience was I spent less than 2 minutes in the ugly PHP land.

You might have heard a lot of people claiming that privacy on the internet is dead.Yes that might be partially true.NSA thanks for reading this post.As for those of you who still want to say away from the preying eyes of the ads agencies, you might want to take a look at the following plugins/tools.

Here are the plugins that I use to keep trackers away.
Continue reading

Last week I got a keyboard off of Souq which is a local Amazon competitor.I found a really good deal on it for a genuine apple keyboard for 3 times less the original price.The only gotcha was that the keyboard had both Japanese and English characters on it.It didn’t make a lot of difference to me since I was learning some Japanese in my spare time.

The only major issue with the device was the way it was detected on my mac.By default the apple macbook would set the keyboard layout to international pc  which worked well with the keyboard but when I didnt use the keyboard the laptop keyboard would get messed up unless I change it back to US Keyboard. 

My colleague showed me a tool on  the mac called Keyboard Maestro which would automate tasks on my laptop like expanding text or sending tasks to omnifocus.Continue reading

Last week my colleague at TURN8 informed me that his browser was infected with adware.

As eminent from the previous blog post Adware Medic came right to my mind.

So i launched adware medic and it immediately detected the malware in the ` /Users/username/Library/ScriptingAdditions ` .There was folder which contained the malware waiting for me to delete and delete it just what I did.

But after a couple of minutes my colleague asked me I got rid of the malware.So I took a look at the folder and the malware had somehow restored itself.Continue reading

LastPass is a really awesome password manager.It takes care of generating a password,saving and syncing it with all your devices.

But yesterday they sent an email explaining that they were hacked.Hacking really popular these days,on an average there are about 9 defacements that happen everyday.But after going through the email.I was happy.

You might be wondering ,why is he so happy.The reason I was happy was due to the architecture LastPass had built to perform all the above mentioned features.

The way LastPass works is it uses a really secure encryption algorithm pbkdf2.As part of this algorithm the content can be encrypted multiple times like a chain.Lastpass made use of this technique really well.

They set the iteration count to 100000, which meant that if you want to decrypt it you have to perform it 100000 times to receive the decrypted content.

Moreover all of the keys that used for encryption is derived from your pass phrase.so if you have a really long and random password, it will make it near to impossible to decrypt the passphrase.They don’t save the keys on their server.
Having said all of this,I am not gonna change my password,the hacker can have my encrypted blob and hope they are happy cracking it on their ASIC devices

Today one of the startups in our accelerator were infected with an adware.After some digging around it looked like the adware has infected the whole system not just the browser.Chrome, Safari and even Firefox were infected.

After a couple of Google searches I came across Adware Medic.Its a free , donation driven application which working detects adware using signatures similar to antivirus.

The application was very easy to use and within a couple of minutes the application detected all the files that were infected and cleaned it.

The application is highly recommended even for those who are yet to be infected by malware.

Android studio is probably the best IDE for Android.Even with its slow grade tasks and occasional unresponsiveness,Google has added a lot of new features to make life easy

Just a couple of days ago I was working with a team to fix an issue they were facing with their android app.

The issue was very vague, the developer was trying to upload a base64 string to the server.The string was generated from an image.But while testing locally on his machine he faced an issue.

I then asked the dev what he was doing ,he said he was using logcat to copy the base64 string.He would then copy the string from the logcat and run it through the online convertor.

So I sat down with the developer to test the code.I put a breakpoint on the string.The debugger showed the obscure string really easy,I then copied the string and pasted it to a online convertor and voila things worked.Although I had to use http://www.miniwebtool.com/remove-spaces/ to remove extra space set by Android Studio.