php

Google Analytics to Twitter bot

The last week, I've been tinkering with Google's Analytics API. What I wanted to do was have daily reports on my website which then  tweets the difference from yesterday to today. The ideal situation was I would have it SMS me the results. The problem is that my phone carrier (Rogers) complicates things. For most carriers, you can email a carrier-supplied address (5555555@att.com for example) which in turn would send an SMS to that address. But, what Rogers does is once you receive a text, you have to respond back with REPLY to view it. Stupid huh.

To get around this, I subscribe to my bots account via text message and for every new tweet, I get a text message.

QRer - quick URL to QR code

I made this little tool the other week: it's a simple URL to QR code generator that uses AJAX so it's even zippier. Check it out here: http://qrer-snacsnoc.dotcloud.com

It uses the PHP QR Code library to generate the QR codes. I set it up so it caches URLs that have already been generated which make it faster to deliver the image.

WorkSimple 1.3.5 control panel and login fix

After playing around with WorkSimple 1.3.5 (and apparently not doing much  testing), login.php doesn't redirect on login and cp.php strips HTML.  Download the attachments below and replace cp.php and login.php with the new versions. Save the new versions as cp.php and login.php respectively and upload them to your WorkSimple install directory.

WorkSimple 2.0 roadmap

I've been making lots of new changes to WorkSimple, paving the way for WorkSimple 2.0. I'll be going over old code and re-implementing some things. I used Twig for templating instead of a custom made method since it seemed easier and more convenient. Templates now are much more customizable and flexible. Check out the screenshot for what it may look like (the colours suck, I know).

Pasteros update

Worked some more on Pasteros, cloud based text storage lately and added some more features. Now you can download a paste or view it raw. Also, it displays how long ago the paste was submitted. The design colours still suck of course. There's an API (of some sort) so feel free to check it out.

Pasteros: cloud-based text storage

I just had to create [another] text storage project, just for shits. Pasteros (temporary domain) is a text storage storage (think Pastebin, Pastie, etc) running on DotCloud. It uses Twig for templating and I just converted the MySQL innerworkings to PostgreSQL (juste pour le fun). I also made an API for public use as well. I'll be releasing the source code shortly. Any feedback is appreciated.

WorkSimple 1.3.5 released

After 6 months, WorkSimple 1.3.5 has been released. Nothing too major, though I suppose this may be the last version of WorkSimple to be released. There's not too much else to be done with it as it is; moving to to SQL would be much easier to maintain.

Templating with Twig

I've been working on this shitty video sharing site for a couple weeks now and thought I'd try out some new things. I' used phpass for the password management and ended up using Twig as a template framework. I've never used a template engine before so I was new to using one. Twig is actually quite easy to implement into any of your projects. In your PHP script add:

 

require_once 'Twig/Autoloader.php';
Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem('templates');
$twig = new Twig_Environment($loader);
$template = $twig->loadTemplate('index.html');
echo $template->render(array('value' => 'test');

And that's it. In the example, 'index.html' is the template file. The array passes the variables onto the template. So, your index.html would look something like this:

 

This is a {{ value }} 

That would echo 'test'. The documentation for Twig is alright but it doesn't show how one uses the core extensions. See the below example as a block is transated for Twig's use:
 

      $a = $s + ($limit);
       if ($a > $numrows):
       $a = $numrows;
       endif;
       $b = $s + 1;
       echo "Showing results $b to $a of $numrows";

Becomes:

{% set a = s + limit %}
    {% if a > numrows %}
        {% set a = numrows %}
    {% endif %}    
{% set b = s + 1 %}  
   Showing results {{ b }} to {{ a }} of  {{ numrows }}

 

How publicly released exploits helped WorkSimple

[Photo by Honza Soukup]

A couple years back when I released WorkSimple, my PHP knowledge was very limited. I went through a couple versions of WorkSimple adding features and such but without thinking of security. Then, about a year and a half ago, I came upon a zero-day exploit site [1][2] site. On the site, it chronicled the current exploits in WorkSimple. Now, of course I acted quickly and fixed the problems. At first, I was offended by this. Then, I realized the helping hand it had lent me. Not only did these sites show how one could use the exploit, but also how to fix it. The user login system used MD5 hashed passowords in a specified [plain text] file in a specified place. After, the hashes were salted and in a .php file as not to display the contents. 

 

WorkSimple 1.3.4 released!

WorkSimple 1.3.4 has been released! Numerous fixes are included with this release, along with the removal of the uploader module as it had security risks. Download here.

Syndicate content
Powered by Drupal, an open source content management system