dracoblue.net

Moving GTAT Database Server

Hello,

Now I'll move the database server to a new host. GTAT.org may not be available until 23:00.

  • Draco

In GTA:Tournament by DracoBlue @ 2010-03-29 | 19 Words

Escaping without NO_BACKSLASH_ESCAPE in Mysql

While working with Node.JS and dbslayer today, I was facing a weird issue with escaping strings.

Best thing would have been, if I could have forced my server to use NO_BACKSLASH_ESCAPES as sql-mode and then just escape the ' to ''.

But since this server is also used by other programs and NO_BACKSLASH_ESCAPES option cannot be set by option for dbslayer I had to turn it off again.

I ended up with this tiny escape string method:

var db_escape_string = function(string) {
	return string.replace(/([\\\n\r])/g, "\\$&").replace("'", "''", 'g');
};

It replaces ** (backslash), newline and carriage return with \, \n and \r. Since also single quote needs to be escaped, I finally replace all ' with ''.

You may wonder why I do not escape ". The issue is, that a " appearing within a string in between ' does not need to be escaped.

'this is a test"2' => 'this is a test\"2'

That's why I sticked to the rule to put strings within single quote and do not escape those question marks at all.

In JavaScript, mysql, node.JS by DracoBlue @ 2010-03-21 | 178 Words

Operation failed. File system input or output error

A while back I explained how to mount sftp/ssh folders in eclipse.

When working with eclipse or zend studio on remote systems, there are times when I get the message "Operation failed. File system input or output error" very often.

Even though several posts in zend forums suggest, that you should restart your IDE in this case, I tried to track down what causes the issue.

I ended up with the following: The ssh-host has already closed the connection, but eclipse thinks it's still available. So it tries to use the connection, but fails.

Whenever I get this issue now, I go into "Remote Systems"-View, right-click the Connection and choose "Disconnect" from the context menu. Right after that, I open that context menu again and press "Connect". Problem resolved.

In Eclipse by DracoBlue @ 2010-03-14 | 130 Words

What means T_PAAMAYIM_NEKUDOTAYIM?

This is an PHP-Tokenizer error, which just wants to tell you that there are two colons. ;)

In php by DracoBlue @ 2010-03-10 | 17 Words

Chain + Group Callbacks for NodeJS

If one develops with Node.JS and wants to use the full event-loop power, you got to use callbacks for everything.

That said, it looks ugly to do that:

posix.rename("/tmp/hello", "/tmp/world").addCallback(function () {
  posix.stat("/etc/passwd").addCallback(function (stats) {
    sys.puts("stats: " + JSON.stringify(stats));
  });
});

The

api advices to use:

posix.rename("/tmp/hello", "/tmp/world").wait();
var stats = posix.stat("/etc/passwd").wait();
sys.puts("stats: " + JSON.stringify(stats));

but this is a problem, too. Why? Because you can't do that too often (just ~10 times) at the same time.

That's why I created two little helper methods:

chain and group.

Continue reading ...

In JavaScript, node.JS, open source by DracoBlue @ 2010-02-17 | 473 Words

Page 20 - Page 21 - Page 22