first customer with bBlog

recently handgestrickt installed the first bBlog for a customer on deepdemocracyinstitute.org. this installation includes all handgestrickt plugins plus a lot of fixes. very new features are the ultimate WYSIWYG-plugin, which integrates tinyMCE, FCKeditor and EditArea into bBlog. goodies are the addthis- and the feedburner-feature and the highslide-gallery-system.

read more/write a comment

Saturday, 21. July 2007 • jobs1 comments/trackbacks

new service: eyeOS-applications!

after an intense study of the apps_introduction-pages in the eyeOS Wiki, handgestrickt netzwerk now provides a new service: applications for eyeOS. after being really into PHP/AJAX-developing, this service is the current zenith of our work. we are very proud to provide the ability to make window-based, desktop-mimic applications in the web-browser possible.

read more/write a comment

Tuesday, 12. June 2007 • general0 comments/trackbacks

jsL10n and shorthand $L

yesterday handgestrickt netzwerk launched the new basic documentation and website for jsL10N, an internationalization and localization project for AJAX. the aim is to provide ISO 639, ISO 3166, UN M.49, ISO 3166-2, ISO 15924, ISO 4217 and POSIX informations in 264 different locales to AJAX-developers.

for further informations visit the official homepage of jsL10N and shorthand $L.

read more/write a comment

Tuesday, 12. June 2007 • general0 comments/trackbacks

configuring your estate in VRML and AJAX

for more than half a year i worked on a big project now. the aims:

  1. choose a flat, that was preconfigured by architects.
  2. set your own walls, doors, colours and textures.
  3. walk through the result in 3D.
  4. save your settings to reload them later.

my solution is based on the following techniques and 3rd party scripts:

  1. VRML and X3D. there are a lot of plugins out there for VRML and X3D. most of them use DirectX or OpenGL. some of them have anti-aliasing, lights, shadows and more visual effects for a better experience.
  2. AJAX. i used Prototype.js, Scriptaculous, an MD5-algorithm for JavaScript, PHP-serializer and Date.format together with JSMin and a gzip-compressor. on server side i used PHP and MySQL together with Services_JSON.
  3. WYSIWYG. for the user forms i used tinyMCE, which is highly AJAX-ready.
  4. I18N, L10N and skins. the system is already prepared for different languages and skins.

a lot of people would ask now: "why not do it in FLASH?". my answers:

  1. FLASH is proprietary. handgestrickt tries to use open...

read more/write a comment

Sunday, 03. June 2007 • jobs2 comments/trackbacks

addendum for perl and ls

today handgestrickt wrote about PHP, Perl and systemcalls. later we found a slightly faster Perl script:

here we mix perl with a systemcall to ls, telling it to list all subdirectories recursively and sort by modification time descending. in Perl we just chop the output into pieces.

test.pl

#/usr/bin/perl
$dir = '';
foreach(`ls -Rat1`) {
        if(/:$/) { $dir = substr($_,2,-2); }
        elsif(/\.(?:jpeg|jpg|jpe|gif|png)$/i) { print $dir.'/'.$_; }
}

this does the same task as todays Perl script. the result is now:

perl and ls took: 0.0277252197266 seconds

which is a little bit faster than yesterdays solution in Perl. additionally the code is shorter. unfortunately even this example is slower than the PHP solution.

read more/write a comment

Sunday, 03. June 2007 • general0 comments/trackbacks

PHP, Perl & systemcalls 2

in handgestrickts earlier post on Tuesday, 29. May 2007, we described the big time differences between different code. we used systemcalls, PHP and Perl to solve a problem. PHP took nearly 14 times and Perl 1.5 times more than the systemcalls. today we tried another problem. this time PHP is superior.

the task: we wanted to list all directories in a given directory. inside of these directories we wanted to get all image files sorted by last modification descending. in the end we compare all results for differences and calculate the resulting times every process consumed. here is the code:

test.php:

<pre>
<?php
list($usec,$sec)=explode(' ',microtime());
$now1 = ((float)$usec+(float)$sec);

$files1 = explode("\n",trim(`find . -iregex ".*\\.\(jpeg\|jpg\|jpe\|gif\|png\)\$" -printf "%T@ %p\n" | sort -rn | sed -n "s/^[0-9]\+\\s\\.\\/// p"`));

list($usec,$sec)=explode(' ',microtime());
$now2 = ((float)$usec+(float)$sec);
echo 'find, sort and sed took: '.($now2-$now1)." seconds\n";
list($usec...

read more/write a comment

Sunday, 03. June 2007 • general0 comments/trackbacks

bugfixes and patches for Contenido 4.6.15

handgestrickt had to install a Contenido on a new root-server, so we gave version 4.6.15 a try. for a long time we used an old version and patched a lot, but did not post our patches to the forum, because they were based on an old version. patching old versions is usually not a good idea, because the chance, that things have already changed or have been solved, is high. another reason for waiting was the fact, that we earn our money with programming. so every development must pay off. after that we go on with development.

finally we installed the new version and started patching. we fixed some bugs and restructured the category-system and the tinyMCE-integration.

posts:
tinyMCE-integration improvement (german)
urldecode-bug in include.systemsettings.php (german)
3 bugs in messageBox.js.php (german)
syntax highlighter edit area integration (german)
multi-category-configuration (german)
script kiddie code-injections (german)

read more/write a comment

Wednesday, 30. May 2007 • general0 comments/trackbacks

PHP, Perl & systemcalls

recently handgestrickt tried to get index information from our iTunes library XML file, which is 30MB big. we did not want to use an XML-parser, because this one usually ends up somewhere in the nirvana and you can cook a pot of tea, until it is finished. just for the interest we tried several ways of grabbing information quick and dirty.

  1. using the systemcalls echo, grep and sed.
  2. using PHP
  3. using Perl

here are the test files:

test.php:

<pre>
<?php
$library = '/Users/stefan/Music/iTunes/iTunes Music Library.xml';
list($usec,$sec)=explode(' ',microtime());
$now1 = ((float)$usec+(float)$sec);

//first system calls
`echo "\$dict_indexes = array(" > result1.php`;
`grep -b "<dict>" "$library" | sed -n "s/:.*$/,/ p" >> result1.php`;
`echo ");" >> result1.php`;

list($usec,$sec)=explode(' ',microtime());
$now2 = ((float)$usec+(float)$sec);
echo 'echo, grep and sed took: '.($now2-$now1)." seconds\n";
list($usec,$sec)=explode(' ',microtime());
$now1 = ((float)$usec+(float)$sec);

//next...

read more/write a comment

Tuesday, 29. May 2007 • general0 comments/trackbacks

Packer friendlier JavaScript

recently handgestrickt wrote about JSmin, a JavaScript minifier. this minifier takes care of the problem of automatic semicolon insertion. after a little investigation on the internet we found the article "Packer friendly JavaScript" by Andrea Giammarchi, who explains in detail, how to make JavaScript code more clean, so it can be packed more efficient. after a little bit of testing with JSmin, we found ways to make code really be on one line. examples:

//normal code, always semicolon
var a=0;
//one liners must end with semicolon
if(foo == bar) while(foo) a += bar;
//switch, for, while always with semicolon
switch(foo) {
        case bar: a=0; break;
};

for(var a=0;a<foo;a++) {
        bar += a;
        if(bar > 100) bar = 100;
};

for(var foo in bar) {
        bar.search(/\s/,'_');
        window.alert(bar);
};

while(foo) {
        a += bar;
        bar = foo;
};
//several examples of if, else if and else constructs
if(foo == 0) {
        foo = 1;
};

if(foo == 0) {
        foo =...

read more/write a comment

Thursday, 19. April 2007 • general0 comments/trackbacks

Event Delegation and MSIE

in a recent post handgestrickt described the problems that the Internet Explorer makes, when two events that are delegated by one parent are fired very near in the timeline. this happens because the Event-Handlers for the onmouseout-behaviour are strictly fired, even if the onmouseout has the opposite effect. for example you have a plane. this plane is cut into tiles. every tile marks the whole plane with a border. when you leave one tile and go to the other, the border flickers or blinks for a moment, because onmouseout is fired, then onmouseover is fired. example code for Internet Explorer:

flickers or blinks in Internet Explorer:

<div id="delegation" onmouseover="$('delegation').style.border = '1px solid red';" onmouseout="$('delegation').style.border = 'none';">
 <div class="tile"></div>
 <div class="tile"></div>
 <div class="tile"></div>
 <div class="tile"></div>
 <!--...more tiles-->
</div>

the trick we found: the Internet Explorer provides the 2 non standard Event-Handlers onmouseenter...

read more/write a comment

Wednesday, 18. April 2007 • general0 comments/trackbacks

page navigation