Archive

This is a Javascript version of the PHP function: current.

This is a Javascript version of the PHP function: key.

This is a Javascript version of the PHP function: next.

This is a Javascript version of the PHP function: pos.

This is a Javascript version of the PHP function: prev.

This is a Javascript version of the PHP function: pathinfo.

This is a Javascript version of the PHP function: extract.

This is a Javascript version of the PHP function: setrawcookie.

This is a Javascript version of the PHP function: str_shuffle.

This is a Javascript version of the PHP function: strrchr.

This is a Javascript version of the PHP function: strtok.

This is a Javascript version of the PHP function: strtr.

This is a Javascript version of the PHP function: vsprintf.

Everyone knows PHP can be used to create websites. But it can also be used to create desktop applications and commandline tools. And now with a class called System_Daemon, you can even create daemons using nothing but PHP. And did I mention it was easy?

This is a Javascript version of the PHP function: array_intersect.

This is a Javascript version of the PHP function: array_intersect_assoc.

This is a Javascript version of the PHP function: array_intersect_key.

This is a Javascript version of the PHP function: array_uintersect.

This is a Javascript version of the PHP function: strval.

This is a Javascript version of the PHP function: lcfirst.

This is a Javascript version of the PHP function: strcspn.

This is a Javascript version of the PHP function: array_diff_uassoc.

This is a Javascript version of the PHP function: array_diff_ukey.

This is a Javascript version of the PHP function: array_intersect_uassoc.

This is a Javascript version of the PHP function: array_intersect_ukey.

This is a Javascript version of the PHP function: array_udiff.

This is a Javascript version of the PHP function: array_udiff_assoc.

This is a Javascript version of the PHP function: array_udiff_uassoc.

This is a Javascript version of the PHP function: array_uintersect_assoc.

This is a Javascript version of the PHP function: array_uintersect_uassoc.

This is a Javascript version of the PHP function: arsort.

This is a Javascript version of the PHP function: asort.

This is a Javascript version of the PHP function: uksort.

This is a Javascript version of the PHP function: get_meta_tags.

This is a Javascript version of the PHP function: rawurldecode.

This is a Javascript version of the PHP function: rawurlencode.

This is a Javascript version of the PHP function: json_decode.

This is a Javascript version of the PHP function: json_encode.

This is a Javascript version of the PHP function: uasort.

This is a Javascript version of the PHP function: usort.

This is a Javascript version of the PHP function: natcasesort.

This is a Javascript version of the PHP function: natsort.

This is a Javascript version of the PHP function: strnatcasecmp.

This is a Javascript version of the PHP function: php_strip_whitespace.

This is a Javascript version of the PHP function: parse_url.

This is a Javascript version of the PHP function: doubleval.

This is a Javascript version of the PHP function: is_real.

This is a Javascript version of the PHP function: settype.

So I've been learning CakePHP the last few days. Bit by bit I've been trying to port a lecagy admininistration app to Cake. 'Secretly' linking menuitems to finished Cake parts as we go. And I must say: I'm pretty excited. I did run into a disturbing conclusion though. I estimated the legacy app will have over 300 Models & Controllers once finished. That could easily add up to (300 x 4 =) 1200 views. And here I am, creating a maintenance hell while trying to solve one!

This is a Javascript version of the PHP function: time_nanosleep.

This is a Javascript version of the PHP function: time_sleep_until.

This is a Javascript version of the PHP function: usleep.

This is a Javascript version of the PHP function: strncmp.

This is a Javascript version of the PHP function: vprintf.

This is a Javascript version of the PHP function: get_class_methods.

This is a Javascript version of the PHP function: get_class_vars.

This is a Javascript version of the PHP function: get_object_vars.

This is a Javascript version of the PHP function: import_request_variables.

Hello everyone. Two days ago Feedburner offered me to merge my account with Google. I thought: why not. But apparently now the URL of my feeds changed. This messed up my stats, and your RSS reader has marked all of my posts as unread. I'm very sorry for the inconvenience.

This is a Javascript version of the PHP function: get_declared_classes.

This is a Javascript version of the PHP function: timezone_abbreviations_list.

This is a Javascript version of the PHP function: is_callable.

If you've written a PEAR package, it's probably a good idea to submit some end user documentation. Here's how to do it.

With all the abstraction layers between code & database, and now with my recent CakePHP adventures: The need for writing SQL statements deminishes. But over the years I've developed my own way of formatting them. And before I'll have to wave queries goodbye forever ;) I just want to put it out there.

This is a Javascript version of the PHP function: timezone_identifiers_list.

This is a Javascript version of the PHP function: date_default_timezone_get.

This is a Javascript version of the PHP function: date_default_timezone_set.

This is a Javascript version of the PHP function: gmdate.

This is a Javascript version of the PHP function: localtime.

This is a Javascript version of the PHP function: strftime.

This is a Javascript version of the PHP function: getenv.

This is a Javascript version of the PHP function: putenv.

This is a Javascript version of the PHP function: setlocale.

Sorry folks, this article was based on flawed benchmark results, I will soon post an update!

Sometimes MySQL needs to work hard. I've been working on an import script that fires a lot of INSERTs. Normally our database server handles 1,000 inserts / sec. That wasn't enough. So I went looking for methods to improve the speed of MySQL inserts and was finally able to increase this number to 28,000 inserts per second. Checkout my late night benchmarking adventures.

Pictures say more than a thousand words. This is true for your data as well. With Google Chart you can now easily generate charts of your data. No expertise required. Just make sure you format your data correctly, add it to the Google Chart URL, and it will return a nice graph.

I had some difficulties playing Flash videos lately. Problems ranged from lagging sound, to ugliness, to idling black screens, to strange gray Play buttons that didn't do anything. The following solved my Flash issues on Ubuntu.

This is a Javascript version of the PHP function: array_multisort.

This is a Javascript version of the PHP function: classkit_import.

This is a Javascript version of the PHP function: classkit_method_add.

This is a Javascript version of the PHP function: classkit_method_copy.

This is a Javascript version of the PHP function: classkit_method_redefine.

This is a Javascript version of the PHP function: classkit_method_remove.

This is a Javascript version of the PHP function: classkit_method_rename.

This is a Javascript version of the PHP function: ctype_alnum.

This is a Javascript version of the PHP function: ctype_alpha.

This is a Javascript version of the PHP function: ctype_cntrl.

This is a Javascript version of the PHP function: ctype_digit.

This is a Javascript version of the PHP function: ctype_graph.

This is a Javascript version of the PHP function: ctype_lower.

This is a Javascript version of the PHP function: ctype_print.

This is a Javascript version of the PHP function: ctype_punct.

This is a Javascript version of the PHP function: ctype_space.

This is a Javascript version of the PHP function: ctype_upper.

This is a Javascript version of the PHP function: ctype_xdigit.

This is a Javascript version of the PHP function: date_parse.

This is a Javascript version of the PHP function: gettimeofday.

This is a Javascript version of the PHP function: gmmktime.

This is a Javascript version of the PHP function: gmstrftime.

This is a Javascript version of the PHP function: idate.

This is a Javascript version of the PHP function: restore_exception_handler.

This is a Javascript version of the PHP function: set_exception_handler.

This is a Javascript version of the PHP function: fclose.

This is a Javascript version of the PHP function: feof.

This is a Javascript version of the PHP function: fgetc.

This is a Javascript version of the PHP function: fgetcsv.

This is a Javascript version of the PHP function: fgets.

This is a Javascript version of the PHP function: fgetss.

This is a Javascript version of the PHP function: filemtime.

This is a Javascript version of the PHP function: fopen.

This is a Javascript version of the PHP function: fpassthru.

This is a Javascript version of the PHP function: fread.

This is a Javascript version of the PHP function: fseek.

This is a Javascript version of the PHP function: ftell.

This is a Javascript version of the PHP function: pclose.

This is a Javascript version of the PHP function: popen.

This is a Javascript version of the PHP function: readfile.

This is a Javascript version of the PHP function: realpath.

This is a Javascript version of the PHP function: rewind.

This is a Javascript version of the PHP function: register_shutdown_function.

This is a Javascript version of the PHP function: assert.

This is a Javascript version of the PHP function: assert_options.

This is a Javascript version of the PHP function: get_cfg_var.

This is a Javascript version of the PHP function: get_defined_constants.

This is a Javascript version of the PHP function: get_required_files.

This is a Javascript version of the PHP function: getlastmod.

This is a Javascript version of the PHP function: ini_alter.

This is a Javascript version of the PHP function: ini_get.

This is a Javascript version of the PHP function: ini_get_all.

This is a Javascript version of the PHP function: ini_restore.

This is a Javascript version of the PHP function: ini_set.

This is a Javascript version of the PHP function: php_ini_loaded_file.

This is a Javascript version of the PHP function: php_ini_scanned_files.

This is a Javascript version of the PHP function: phpversion.

This is a Javascript version of the PHP function: set_time_limit.

This is a Javascript version of the PHP function: atan2.

This is a Javascript version of the PHP function: expm1.

This is a Javascript version of the PHP function: log1p.

This is a Javascript version of the PHP function: uniqid.

This is a Javascript version of the PHP function: gopher_parsedir.

This is a Javascript version of the PHP function: aggregate.

This is a Javascript version of the PHP function: aggregate_info.

This is a Javascript version of the PHP function: aggregate_methods.

This is a Javascript version of the PHP function: aggregate_methods_by_list.

This is a Javascript version of the PHP function: aggregate_methods_by_regexp.

This is a Javascript version of the PHP function: aggregate_properties.

This is a Javascript version of the PHP function: aggregate_properties_by_list.

This is a Javascript version of the PHP function: aggregate_properties_by_regexp.

This is a Javascript version of the PHP function: aggregation_info.

This is a Javascript version of the PHP function: deaggregate.

This is a Javascript version of the PHP function: preg_grep.

This is a Javascript version of the PHP function: sql_regcase.

This is a Javascript version of the PHP function: runkit_class_adopt.

This is a Javascript version of the PHP function: runkit_class_emancipate.

This is a Javascript version of the PHP function: runkit_function_add.

This is a Javascript version of the PHP function: runkit_function_copy.

This is a Javascript version of the PHP function: runkit_function_redefine.

This is a Javascript version of the PHP function: runkit_function_remove.

This is a Javascript version of the PHP function: runkit_function_rename.

This is a Javascript version of the PHP function: runkit_import.

This is a Javascript version of the PHP function: runkit_method_add.

This is a Javascript version of the PHP function: runkit_method_copy.

This is a Javascript version of the PHP function: runkit_method_redefine.

This is a Javascript version of the PHP function: runkit_method_remove.

This is a Javascript version of the PHP function: runkit_method_rename.

This is a Javascript version of the PHP function: runkit_superglobals.

This is a Javascript version of the PHP function: convert_uuencode.

This is a Javascript version of the PHP function: localeconv.

This is a Javascript version of the PHP function: nl_langinfo.

This is a Javascript version of the PHP function: quoted_printable_decode.

This is a Javascript version of the PHP function: quoted_printable_encode.

This is a Javascript version of the PHP function: str_getcsv.

This is a Javascript version of the PHP function: str_word_count.

This is a Javascript version of the PHP function: strcoll.

This is a Javascript version of the PHP function: substr_compare.

This is a Javascript version of the PHP function: substr_replace.

This is a Javascript version of the PHP function: get_resource_type.

This is a Javascript version of the PHP function: is_binary.

This is a Javascript version of the PHP function: is_buffer.

This is a Javascript version of the PHP function: is_resource.

This is a Javascript version of the PHP function: is_unicode.

This is a Javascript version of the PHP function: var_dump.

If you are in IT professionally (coding or sysadmin) you will be staring at monospaced fonts for many many hours a day. So it's probably justified to spend 2 minutes picking a very good one. It can make your work (typing ; ) just a little bit more pleasing.

IDs are often numbers. Unfortunately there are only 10 digits to work with, so if you have a lot of records, IDs tend to get very lengthy. For computers that's OK. But human beings like their IDs as short as possible. So how can we make IDs shorter? Well, we could borrow characters from the alphabet as have them pose as additional numbers.... Alphabet to the rescue!

Looking back at a great CakeFest in Berlin, I learned a lot about CakePHP and met many nice and inspiring people. Here are some conference notes I took that where particularly useful or new to me.

PHP 5.3 is a big leap forward for PHP and brings of a lot of neat features. However, big leaps can also mean big changes and potentially big breakage when it comes to backwards compatibiltiy. I did some experimenting with running a big legacy application and a CakePHP application on PHP 5.3 and would like to share my findings with you. Here are a couple of tips to prepare your code for PHP 5.3

If you store application data in memcache, you may want to invalidate it once you deploy a new version to avoid corruption or weird results. There are several ways to do this but I recently tried one using nothing but BASH, and I like it.

Today I've moved all of my SVN repositories over to GitHub. 5 private reps and 4 public ones. Two of which you may know: PHP.JS and System_Daemon.

This is a Javascript version of the PHP function: array_replace.

This is a Javascript version of the PHP function: array_replace_recursive.

This is a Javascript version of the PHP function: bcadd.

This is a Javascript version of the PHP function: bccomp.

This is a Javascript version of the PHP function: bcdiv.

This is a Javascript version of the PHP function: bcmul.

This is a Javascript version of the PHP function: bcround.

This is a Javascript version of the PHP function: bcscale.

This is a Javascript version of the PHP function: bcsub.

This is a Javascript version of the PHP function: class_alias.

This is a Javascript version of the PHP function: error_get_last.

This is a Javascript version of the PHP function: error_reporting.

This is a Javascript version of the PHP function: trigger_error.

This is a Javascript version of the PHP function: user_error.

This is a Javascript version of the PHP function: escapeshellarg.

This is a Javascript version of the PHP function: forward_static_call.

This is a Javascript version of the PHP function: forward_static_call_array.

This is a Javascript version of the PHP function: i18n_loc_get_default.

This is a Javascript version of the PHP function: i18n_loc_set_default.

This is a Javascript version of the PHP function: get_extension_funcs.

This is a Javascript version of the PHP function: get_include_path.

This is a Javascript version of the PHP function: restore_include_path.

This is a Javascript version of the PHP function: set_include_path.

This is a Javascript version of the PHP function: version_compare.

This is a Javascript version of the PHP function: stream_context_create.

This is a Javascript version of the PHP function: stream_context_get_default.

This is a Javascript version of the PHP function: stream_context_get_options.

This is a Javascript version of the PHP function: stream_context_get_params.

This is a Javascript version of the PHP function: stream_context_set_default.

This is a Javascript version of the PHP function: stream_context_set_option.

This is a Javascript version of the PHP function: stream_context_set_params.

This is a Javascript version of the PHP function: stream_get_contents.

This is a Javascript version of the PHP function: stream_get_line.

This is a Javascript version of the PHP function: stream_is_local.

This is a Javascript version of the PHP function: metaphone.

This is a Javascript version of the PHP function: money_format.

Hi. Have you met KvzHTML? It's a standalone PHP Class for generating HTML. It's been hiding deep inside the caverns of my secret GitHub repo: kvzlib - a collection of code snippets too small or unfinished to deserve their own repository. But I find working with this class so pleasant, I thought I'd share the fun.

When migrating projects over to GitHub, I found there were still some passwords inside my SVN repositories. Obviously it's not good practice to store your passwords in a code repository - let alone at a remote location, so I wanted to replace all passwords. Not only in the current version, but in all commits that have been made over the past 3 years. Luckily with Git - you can.

The core of our new project runs on Node.js. With Node you can write very fast JavaScript programs serverside. It's pretty easy to install Node, code your program, and run it. But how do you make it run nicely in the background like a true server?