Taking on 2011

In 2011, I have decided to take a step into the social media world. This includes posting some of my code snippets on this blog and keep it updated on my latest developments. Not only that, but I also plan on making contributions to any open source projects that I come across. I find that I’m constantly making improvements and hacking away at jquery/wordpress plugins and PHP code. This year I will make an effort to share these improvements with the open source community. I hope this will help in forming relations with other developers and designers.

My other goal is to successfully establish Sofus.mx as a web design entity. Sofus.mx will be the counterpart to Projectivemotion.com. I have focused my work now on web development. I will be on the lookout for a talented web designer to add to the design team.

Last month I finished a private implementation of the zencoder.com API for a private cms with Amazon S3 Support. I will post some code snippets and analysis soon on the following posts.

I’m currently developing Travel Agent CMS v.2 which has become a rather large project with some beautifully complex features.

Also.. I have a very interesting review on freelancer.com coming up soon.

Using LIBCurl with C++ Simple OOP Static Class ExampleUsando LIBCurl en C++ Ejemplo de OOP

This is a quick class in C++ that I slapped together from an example I found at http://www.luckyspin.org/?p=28.

I’ve been writing a php bot using curl for one of my favorite online games and I decided to make it public. This would be one of my latest public releases in a while. It turned out that PHP is not the best language to use due to poor portability. I played around with bambalam (PHP ‘compiler’) and also WinBinder, but both packages are severely outdated. All my code was written in PHP5, and bambalam only supports php 4. So, Now I’m going back to hardcore programming and coming up with a solution soon. I’ve already got libcurl, and boost hooked up and ready to go!

#include <iostream>
#include "curl/curl.h"

class MyCurl

// Write any errors in here

static int writer(char *data, size_t size, size_t nmemb, std::string *buffer_in)

// Is there anything in the buffer?
if (buffer_in != NULL)
// Append the data to the buffer
buffer_in->append(data, size * nmemb);

// How much did we write?
return size * nmemb;

return 0;

static std::string get(const char* url)
CURL *curl;
CURLcode result;

// Create our curl handle
curl = curl_easy_init();

char errorBuffer[CURL_ERROR_SIZE];
// Write all expected data in here
std::string buffer;

if (curl)
// Now set up all of the curl options
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errorBuffer);
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HEADER, 0);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1);
curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookies.txt");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, MyCurl::writer);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);

// Attempt to retrieve the remote page
result = curl_easy_perform(curl);

// Always cleanup

if(result == CURLE_OK)
return buffer;
return std::string();

Now available for new projects

I’m currently available for hire. If you would like to get a quote or a free estimate on your projects, please see the contact or free estimate page and I will get in touch with you then so we can discuss.

New ProjectiveMotion Design

I migrated the site from the old static html site to a wordpress installation with a custom theme. The site is now search engine friendly and makes it easier to posts updates. I also think it looks a lot more clean. On the right side of the page, there are links to my getafreelancer and linkedin profile (also new.)