I am looking at Twilio API right now for a project and I am surprised how easy is to handle voice and SMS messages. Here is an example, written by me:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | <?php //get this from twillio website require "twilio.php"; class Twillio_SMS { var $ApiVersion; var $AccountSid; var $AuthToken; var $smsServer; function __construct() { $this->ApiVersion = "2008-08-01"; $this->AccountSid = "Axxxxxxxxxxxxxxxxxxxx"; //get your own after trial registration on Twilio.com $this->AuthToken = "axxxxxxxxxxxxxxxxxxxxx"; $this->smsServer = new TwilioRestClient($this->AccountSid, $this->AuthToken); } function sendSMS($to, $from, $whattosend) { $response = $this->smsServer->request("/$this->ApiVersion/Accounts/$this->AccountSid/SMS/Messages", "POST", array( "To" => $to, "From" => $from, "Body" => $whattosend )); if($response->IsError) echo "Error: {$response->ErrorMessage}"; else echo "Done"; } function __destruct() { unset($this->ApiVersion); unset($this->AccountSid); unset($this->AuthToken); } } $s= new Twillio_SMS; $s->sendSMS('4155992671','4155992671','this is a test'); ?> |
GitHub
If you are interested in this topic, or if you have some ideas, please join me at my test repo @ Github

Wilhelmus van Nassouwe
Ben ik van Duitsen bloed,
Den vaderland getrouwe
Blijf ik tot in den dood.
Een Prinse van Oranje
Ben ik, vrij onverveerd,
Den Koning van Hispanje
Heb ik altijd geлerd.
Hup Holland Hup!
Hup Holland hup
Laat de leeuw niet in zijn hempie staan
Hup Holland hup
Trek het beestje geen pantoffels aan
Hup Holland hup
Laat je uit het veld niet slaan
Want de leeuw op voetbalschoenen
Durft de hele wereld aan.
CAcert.org is a community-driven certificate authority that issues free public key certificates to the public. CAcert has nearly 150,000 verified users and has issued over 548,000 certificates as of January 2010
These certificates can be used to sign and encrypt email, authenticate and authorize users connecting to websites and secure data transmission over the Internet. Any application that supports the Secure Socket Layer (SSL) can make use of certificates signed by CAcert, as can any application that uses X.509 certificates, e.g. for encryption or code signing and document signatures.
To create higher-trust certificates, users can participate in a web of trust system whereby users physically meet and verify each other’s identities. CAcert maintains the number of assurance points for each account. Assurance points can be gained through various means, primarily by having one’s identity physically verified by users classified as “Assurers”.
If you want to join this web of trust, bring your passport and one more id, join the website, print THIS form and come and let’s Rock.
What’s up with Mozilla and Cacert? See this bug in Bugzilla.
If you need a lot of browsers, like me, to test some web stuff, this info can be useful for you.
I know, yes, I know. What a hell I need IE on Linux. Some of my clients still using this ‘most used browser’…
yum -y install wine* yum -y install cabextract
Get the package and install it. But before that, read the legal stuff from here. Yes, IE is FREE, but you still NEED a valid license for Windows to use it. WTF?!?
wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz tar zxvf ies4linux-latest.tar.gz cd ies4linux-* ./ies4linux
If you are wondering where Firefox stores the token from XAuth (all localStorage data), the answer is in webappstore.sqlite in your profile folder. The main idea of the XAuth is that the declared token will be accessible only from the XAuth.org domain and you don’t have the opportunity to see what exacly has been saved in your local storage.
I am always suspicious when I have to use an “Open Technology” from Google or other not so open vendors and I would like to see what EXACTLY is stored in My Computer.
So let’s explore the webappstore.sqlite. I need this Addon for that. You can download it from here.
It looks very usable:

Just Click on Database > Connect Database and choose webappstore.sqlite from your profile folder.
After that choose Tables from the sidebar tree, and Browse and Search from the main Window.
Let’s see what is inside about XAuth:
scope: gro.htuax.:http:80 // this information will be accessible from xauth.org only, using http protocol only and via port 80 only
key: talkweb.eu
value: {“token”:”1″,”expire”:1275110205930,”extend”:["talkweb.eu"]}
Everything looks fine for now !
Another example
if you want to see, what is stored from your domain in your local storage, you can use this script for that:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <html> <head> </head> <body onLoad="doShowAll()"> <script language="javascript"> function doShowAll() { var key = ""; var showme = "<tr><td>Local name</td><td>Local value</td></tr>\n"; var i=0; for (i=0; i<=localStorage.length-1; i++) { key = localStorage.key(i); showme += "<tr><td>"+key+"</td>\n<td>"+localStorage.getItem(key)+"</td></tr>\n"; } if (showme == "<tr><td>Local name</td><td>Local value</td></tr>\n"") { showme += "<tr><td><i>empty</i></td>\n<td><i>empty</i></td></tr>\n"; } document.getElementById('showme').innerHTML = showme; alert(localStorage.length); } </script> <table id='showme'></table> </body> </html> |
XAuth is an open platform for extending authenticated user services across the web.
Participating services generate a browser token for each of their users. Publishers can then recognize when site visitors are logged in to those online services and present them with meaningful, relevant options.
Users can choose to authenticate directly from the publisher site and use the service to share, interact with friends, or participate in the site’s community. The XAuth Token can be anything, so services have the flexibility to define whatever level of access they choose.
The main requirement for XAuth is you browser to support HTML5. XAuth essentially defines 3 different parties to the flow:
- Extenders are web services that a user is logged into that present some public API.
- Retrievers are web services that want to discover and consume one or more of the Extenders.
- XAuth.org is the final party. All communication of XAuth happens through an iframe and javascript This is just static hosting, all data is stored in the users browser.
You can just put the following line into your website and it will be XAuth enabled:
<script type="text/javascript" src="http://xauth.org/xauth.js"></script>
Let’s create the token and let’s save it to our browser:
1 2 3 4 5 6 7 8 | function doLogin(doneUrl) { XAuth.extend({ token: "1", //set the token expire: new Date().getTime() + 60*60*24*1000, // set the expire time extend: ["talkweb.eu"], //allow this script to work only on your own domain callback: location.replace(doneUrl) }); } |
Let’s retrieve the token and show it on a web page :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | function doRetrieve() { XAuth.retrieve({ retrieve: ["talkweb.eu"], callback: onRetrieve }); } function onRetrieve(data) { var numTokens = 0; var str = ''; if (data && data.tokens) { for (var token in data.tokens) { if (numTokens > 0) str += ', '; str += token + ': ' + data.tokens[token].token; numTokens++; } } if (str == '') { str = '(none)'; } document.getElementById('login_status').innerHTML = str; } |
We are launching Firefox 4 Business conference in late September in Bulgaria. This will be one day event full of case-studies, presentations and Q&A sessions, brought to you by Mozilla Bulgaria crew.
If you are a SME based in Bulgaria you can register for free very soon.
I will give more information soon, stay tuned ![]()
#f4b
P.S If you have any ideas, please share them with me. Let’s make the event better !