Internet: page 1
.net magazine article: Create a Google Talk bot with Node.js
I have written a two part article for this months .net magazine detailing how easy it is to write a Google Talk bot with the evented power of Node.js. “Programming a chat bot was once the domain of the hardcore hacker, tapping packets as they passed over the wire from proprietary client applications to closed source servers, but not any more!” note As of 6/2/2103 I have now published this article on my blog. Read more ⇒
Installing a MySQL UDF errors with Function already exists
When installing a UDF recently I got an annoying error message, which didn’t seem to want to go away. Deleting the function before attempting to remove it did not work so I used the following set of escalating commands to attempt to get it to install. But back to the error for a moment: bash > mysql -u user -p < installdb.sql Enter password: ERROR 1125 (HY000) at line 7: Function 'lib_mysqludf_ssdeep_info' already exists This can be solved really simply with the following options: Read more ⇒
Nodester environment variables for sensitive data and passwords
When I began using Cloudno.de recently to have a go at Node.js and CouchDB I stored my username and password in plain text in a configuration file. If you are also looking to get CouchDB going with CloudNo.de then my earlier Getting started with Node.js and CouchDB post may be of interest. The configuration file was fine for testing as nobody who came across the database login details could do any real damage, but as the project got more interesting I wanted to send it live and these details would need to be kept private. Read more ⇒
PHP extension writing: PHP Extensions Made Eldrich
PHP extension writing: PHP Extensions Made Eldrich Since writing my 15 Excellent Resources for PHP Extension Development post in September last year Kristina Chodorow of 10gen (MongoDB) has written an excellent four part article on writing PHP Extensions on her blog Snail in a Turtleneck. Read more ⇒
Getting started with Node.js and CouchDB
Node.js and CouchDB feel like they were made for each other right from the very first time I used them. With the cradle node package the integration becomes even easier. Whilst both Node.js and CouchDB are open source with packages for most operating systems it maybe easier for you to start out using a hosted solution such as CloudNo.de (has CouchDB now) or Nodester for example. As far as the CouchDB portion goes there is only one place to go and that is IrisCouch. Read more ⇒
New version of the Agavi framework support for NetBeans 7.0
necora-markus: Released a new version of the Agavi framework support plugin for the shiny new NetBeans 7.0. Still depends on implementation versions of the PHP-plugin, so if something doesn’t work, please let me know. Prebuilt NBM available here, source code here. UPDATE: Even newer version available for download here. Should fix a null pointer exception. Read more ⇒
PHP Hangs When Fed 2.2250738585072011e-308
PHP Hangs When Fed 2.2250738585072011e-308 A pretty horrible bug when you assign the number 2.2250738585072011e-308 to a variable PHP will hang on Linux or Windows 32bit builds of PHP. This does affect $_GET and $_POST variables as well and as such could be an exploit in some PHP sites. So the following code will break your PHP for example: $var = 2.2250738585072011e-308; Or if a page is given a GET parameter like page. Read more ⇒
FullOctane: Bike and Car Blog I have setup a site to post all my automotive related discoveries. Currently I have two posts up there about fuel degradation and storage. Putting motorcycles into storage or “winterizing” can be an involved procedure so I have decide to cover it in a series of posts beginning with the fuel system in the post entitled ‘Winter Motorcycle Storage: Fuel System’. Continuing the fuel theme the reasoning behind previous post is backed up by a technical article that addresses the question; ‘Why does fuel go stale? Read more ⇒
Logging global PHP objects and saving memory using a lazy loading proxy
Quite often when you are working with legacy code you will come across a mess of globals. Every single method will make use of the same global instance of the database class for example. So where do you begin to work with this massive impediment? Logging is a great way to see what methods and classes are being used by you application and where. To achieve this you would normally need to add a logging call to each and every method in the code base. Read more ⇒
Set up a new port forward on a Draytek Vigor over the telnet interface
I needed to add a new port forward to a router, but I did not have access to the web interface through a graphical browser. Attempts to get in using Lynx stalled as it seems the router will not serve up the frames in the interface independently of each other and it kept issuing 404 errors. Either way I had to use the telnet interface using the following command (replace 192. Read more ⇒