Add this blog to Del.icio.us, Digg or Furl | Create Watchlist for this blog

Archive for the ‘Admin’ Category

UI Brainbreaker

Wednesday, June 11th, 2008

Since a while I am thinking about a better possibility to present a link-matrix to my users. Currently it’s just a matrix where I have the topics as lines and a geographic location for each topic as column.
Now, if the user searches for “gewerblicher Rechtsschutz München” she navigates to the line “gewerblicher Rechtsschutz” and to the column 8 (what is the region code for München).

There are several drawbacks:

(1) Too many links on this one page
(2) Too much visual impression confuses the user
(3) Too hard to point to the small href links inside the matrix’s cells

Now - I am thinking about a solution with jQuery…
Anyone any idea? Thanks.

Favorite current project

Wednesday, June 4th, 2008

My favorite current project is opentimesheet.org.
It’s about efficient online time registration and recording.
Last 14 years as freelancer I was using a horrible number of time capturing systems. Actually I am using about three at a time now. There are so many of them, and most companies invent their own - starting with excel - ending up in a very special time consumptive “solution”.

Break the rule - join the new open source project!

Back in the dawn of the internet

Tuesday, May 20th, 2008

When I googled my name today, I found really interesting posts that are 12 years old. Thanks to google for awakening those sweet memories.

It’s about FFT transformations and I found it in Google Groups.

For those of you who are not grandfathers… before www got popular, we were communicating via usenet - groups :-)

Man, 12 years old … and still in the google cache!

A German Disclaimer

Friday, May 2nd, 2008

When you run a website in Germany, you’re worried by laws. Some think you need a disclaimer or “Haftungsausschluss”, some think you don’t.
I found a lawer’s text that’s free for copying. So If you need, or need not, a disclaimer for your Page running in Germany (whatever “in” means) take this free disclaimer.

Installing Drupal 6 “upgrade save”

Friday, April 11th, 2008

Drupal is upgrading very frequently. Specially nowadays as V6 is out for a view weeks. If you don’t want to get mad upgrading Drupal every other day - here are some hints to follow when installing Drupal6.

Most important: If you have more sites running on one server: Do a multisite installation!

Assuming you have your Apache root at /srv/htdocs do the following:

  1. Download Drupal 6.1 and tar xvzf it in /srv
  2. Now you have /srv/drupal-6.1
  3. Create a symlink like ln -s drupal-6.1 drupal
  4. Now you also have /srv/drupal (pointing to /srv/drupal-6.1)
  5. Now create a symlink for apache: I.e. ln -s /srv/drupal /srv/htdocs/drupalweb and let your virtual domain (or where ever Drupal will run) point to /srv/htdocs/drupalweb as httdocs root.

Your ready with your update-prepared ionstallation.

When an upgrade to Drupal 6.2 appears (it did view days ago), do the following:

  • mysqldump your drupal database (just for security and possible rollbacks)
  • copy cp -r -p /srv/drupal-6.1 /srv/drupal-6.2 the 6.1 to the new 6.2 installation (so you can rollback if necessary)
  • in /srv/drupal-6.2 preserve your sites directory by renaming it, i.e. mv sites sites_old
  • now, in /srv untar the 6.2 distribution tar xvzf drupal-6.2.tar.gz
  • remove the new sites dir and move back your preserved: rm -r sites, mv sites_old sites
  • now relink your master: rm /srv/drupal; ln -s drupal-6.2 drupal
  • and browse to update.php of your site.

Keep in mind to check, if there’s something important new in settings.php…
And with this kind of installation you are perfectly prepared for multisite! And for sure it doesn’t work with MS scrappy OS’s.

And have fun!

SUN to buy MySQL AB

Wednesday, January 23rd, 2008

As Mr. Schwartz, CEO of SUN Microsystems wrote here, SUN is going to acquire MySQL AB for about 1 Billion Dollars.

What does this mean to Oracle, Sybase, DB2 and MSSQL Server?

It’s out of the question, that MySQL is the most used Database worldwide. The main reasons are, that MySQL runs with poor hardware, it’s easy to install, to administrate and to use. And it’s for free. When I look back at my jobs in the trading area of investment banks, I remember lot’s of Solaris/Sybase installations. Now, I foresee problems for Sybase here. When I look back at my jobs in the backoffice area of retail banking, I remember lot’s of Solaris/Oracle and AIX/DB2 installations. Will SUN MySQL be as reliable as Oracle or DB2 is? Then I foresee problems here as well.

Why should one pay for Oracle or DB2 when MySQL comes from SUN and is for free?

I am sure MSSQL will keep it’s place in the low-range small office area - just because of the MS certified staff that’s working here. But I foresee huge problems (see here also) for the big systems Oracle, Sybase and DB2.

All the IT world is moving to open source !!!

And that’s a good way

New MIMEMailPHP Version 2.1.3 released

Tuesday, January 8th, 2008

Users told me they had problems with some online mail clients (like gmx and gmail) viewing mails sent with my MIMEMailxPHP4_V2 PHP class when cid (base64 coded inline) images are contained.
There was a bug initially found by Patrick Kränzlin. This bug is fixed now, you find the current (2.1.3) Version for download (it’s open source) here.

According to the RFC2111:

Note: in Internet mail messages, the addr-spec in a Content-ID [MIME] or Message-ID [822] header are enclosed in angle brackets (<>). Since addr-spec in a Message-ID or Content-ID might contain characters not allowed within a URL; any such character (including “/”, which is reserved within the “mid” scheme) must be hex-encoded using the %hh escape mechanism in [URL].

I forgot the angle brackets in version 2.1.2

Sorry for that!

When will dmoz power off

Monday, November 26th, 2007

I recently wanted to check my entries in dmoz and found some of my sites were kicked out. Why did they do this? Didn’t get any explanation for sure. They did some work like reorganizing the structure - or whatever. Well, I’m a little bit angry currently - but it doesn’t make sense anyway anymore (except for backlinks - is dmoz a huge link-farm?).

Do you know a single person that uses a directory to browse the internet? Don’t think so.. but if yes - she will not use dmoz more then two times. In the “rich subject tree” you’re everytime a dozen clicks away from your goal - and the choice is subject to ‘editors’, and what’s the relation to AOL? That’s exactly not what the democratic web2.0 is for.

Google claims a few hours to add an interesting new site to its index - the dmoz wants some weeks or months. So maybe we miss some important happening when using dmoz?

Thanks a lot to all the hundreds of thousands of editors that were building the biggest directory of the universe - I am afraid it’s out-dated now - you can not take the challenge of the rapidly growing web anymore.

Yahoo already gave up - when will dmoz power off?

New Drupal company site on air

Tuesday, November 13th, 2007

Website der proxiss GmbH MünchenLast weeks I was working on a new Drupal driven company site. This time I wanted to create my theme from scratch (calles “ANewCompany”) and wanted to use heavy taxonomy for cross linking.
The site is on air now and promises professional web2.0 programming (German).

On the site I use following modules:

Blog, Book, Forum, Poll - for content creation
Comment, Contact - for visitor interaction
Drupal - for site registry
Locale - for string translation and adjustment
Menu, Path - for site navigation
Taxonomy - for cross linking and navigation
Search - for site wide full text search
Statistics - for access statistics
Akismet - for spam protection
Comment mail - for admin notifications
Service links - for social network linking
TinyMCE - as wysiwyg editor
Views - for some data mining and block representation
Fivestar, Voting API - for content voting

I developed a new page.tpl.php template where I’ve foreseen the regions as follows

  function ANewCompany_regions() {
      return array(
	  'header' => t ('header'),
          'content_top' => t('content top'),
          'content' => t('content'),
          'sidebar_left' => t('sidebar left'),
          'sidebar_right' => t('sidebar right'),
          'content_bottom' => t('content bottom'),
          'footer' => t('footer'),
          'super_footer' => t('super footer')
      );
  }


For the sidebars I use a table-less floating CSS layer concept for reasons i.e. stated here.
In my template.php file I overwrite theme_links for primary_links (to achieve rounded tabs as primary navigation) and the book navigation theme_book_navigation($node) to make it more nice. Special theming for blog and book content is done by node-blog.tpl.php and node-book.tpl.php files.

Next days I will working on a generalization of the theme to contribute it to the drupal theme repository.

Drupal localization and string adjustment

Monday, September 17th, 2007

Sometimes when setting up a drupal site, the situation appears, that I need a “special translation” for a standard module. I.e. I need a blogging functionality - but I don’t want to call the system a “blog”.
That’s when I need a customized translation of the blogging module. This article is about how to customize drupal strings with the localization feature.

Find the strings to translate

What you need first the the GNU gettext package (it’s contained in every linux distro). From this package you need the program “xgettext”. This program is able to extract the strings from the module code that can be translated (if the module is programed very well, this should be all strings in the code).
Now go the the module’s location (usualy /modules/blog) and type:

xgettext.exe --keyword=t -L PHP blog.module

The L tells xgettext, that this code is PHP code, the keyword tells xgettext, that function “t()” is used for gettext translations. The output of xgettext is by default a file called messages.po. This file contains all translateable strings of blog.module.

...
#: blog.module:137
msgid "Post new blog entry."
msgstr ""

#: blog.module:140
msgid "You are not allowed to post a new blog entry."
msgstr ""

#: blog.module:178
msgid "RSS - blogs"
msgstr ""

#: blog.module:222 blog.module:257
msgid "Blogs"
msgstr ""

#: blog.module:239
msgid "@username's blog"
msgstr ""

#: blog.module:261
msgid "My blog"
msgstr ""

#: blog.module:277 blog.module:286
msgid "Recent blog posts"
msgstr ""

#: blog.module:285
msgid "more"
msgstr ""

#: blog.module:285
msgid "Read the latest blog entries."
msgstr ""
...

Translate the strings

Keep each string in messages.po that you want to translate, delete the one’s you don’t want to translate, rename the file to i.e. myBlogStrings.po. Now put your translation of each string into the “msgstr” field.
I.e.

#: blog.module:222 blog.module:257
msgid "Blogs"
msgstr "Articles"

#: blog.module:239
msgid "@username's blog"
msgstr "@username's articles"

#: blog.module:261
msgid "My blog"
msgstr "My articles"

Then save the file myBlogStrings.po.

Activate the drupal localization module

Go to Administer / Site building / Modules and activate the “Locale” menu.

Import your “translation” of the blog.module

Go to Administer / Site configuration / Localization and choose “importing a translation”.
Use the file selector to choose your “myBlogStrings.po” file, choose to import to your current language (most times it’s english (en)). And check “Strings in the uploaded file replace existing ones, new ones are added”. Then import the strings with button “import”.

You’re done, your blog is now a article collection.

Things to watch out

The character-set of your file must be correct (i.e. UTF-8). That means, you need an editor that’s capable of saving files in UTF-8 (I use PSPad) and don’t forget to change the CHARSET in line “Content-Type: text/plain; charset=CHARSET\n” of the xgettext program’s output.