This week I started using Piwik - an open source web analytic tool on some of my websites. And I am really impressed!
I've never used Google Analytics because I find it a stupid and dangerous idea to send data of my visitors to external servers somewhere in the world. I like Google but this idea seems to me quite strange.
A web analytic tool knows more of the visitors as a pure apache webalyzer may know. Cookies and fancy Javascript do the job.
Of course there are some alternative OpenSource projects. But I always thought, that you need your own server for tools like this. But no! Piwik runs with a MySQL database and needs only PHP. So basics, every hoster offers. So I installed Piwik on my shared hosting account and the user data will stay on my sites.
Now, It's easier for me to get overview of the different websites I have online. I see browser versions the visitors are looking on my site even with the screen resolution. A nice world map shows the users around the globe and much more.
I activated the AnoymizeIP plugin. So the visitor IP address is truncated before writing it to the database. And If you really don't like to get tracked: Just disable the tracking on the imprint page!
I just released version 0.4.5 of my TYPO3 extension ab_booking. This extension is used e.g. at Weltcafe Dresden for the booking of the guest rooms.
But also on several sites around the world, the extension is used now. I updated the reference list on the demo site ab_booking.bigga.de. Unfortunately, a lot of people use the extension but don't report it. And it's rather difficult to search for it.
I should implement a backdoor.... NO, I won't do such nasty things! So please, just let me know, if you want to see your project on the reference list!
What's new?
Some bugfixes and two new features:
There are plenty of feature requests by myself and people sending it by mail. It's better to send it via the forge bugtracker! Then everybody can comment it and can follow the development.
Maybe, I should now start refacturing the codebase? Let's see.
This week a customer asked me to add a multilanguage switch to his TYPO3 website. No problem, that's easy to realize because I am using such a switch for years now on www.weltcafe-dresden.de.
After half an hour, the switch was working but in the meantime I read in TSref (TypoScript Reference) about the special language menu support of the HMENU (Hierarchical Menu) object. Then I played around another hour to get this working. Here is my solution. Just, to find it for the next project:
temp.language = HMENU
temp.language.special = language
temp.language.special.value = 0,1,2
temp.language {
1 = TMENU
1 {
wrap = <ul class="toplangmenu">|</ul>
noBlur = 1
NO = 1
NO {
#wrapItemAndSub = <li class="">|</li>
before =
after = <li>/</li> |*| <li>/</li> |*|
linkWrap = <li>|</li>
# wrap the page title! otherways you see the current page title instead of the language.
stdWrap.override = [deutsch] || [english] || [francais]
}
# active language
ACT < .NO
ACT {
# doNotLinkIt = 1
linkWrap = <li class="active">|</li>
}
# NO + Translation doesn't exist
USERDEF1 < .NO
# USERDEF1.doNotLinkIt = 1
# ACT + Translation doesn't exist
USERDEF2 < .ACT
# USERDEF2.doNotLinkIt = 1
}
}
There are four states of this menu:
So you can avoid the language switch on pages where you have no translations for example with doNotLinkIt = 1.
Don't forget to set some useful and necessary config options in your TSsetup:
// Language Switch
config {
linkVars = L
sys_language_uid = 0
language = de
#Language for the proper "xml:lang" and "lang" value in -Tag
htmlTag_langKey = de
locale_all = de_DE.UTF-8
sys_language_mode = content_fallback
sys_language_overlay = 1
}
[globalVar = GP:L = 1]
config {
linkVars = L
sys_language_uid = 1
language = en
htmlTag_langKey = en
locale_all = en_GB.UTF-8
}
[global]
By chance, I found another setting which is not important but nice for the backend user. Usually you don't create the Default website language (this is done on your root page). So everywhere you may select "DEFAULT" (which is in my case German) and "English" or whatever language you added.
To overwrite this DEFAULT label with e.g. Deutsch, do the following on the TS page setup of your root page:
mod.SHARED {
defaultLanguageFlag=Deutsch
defaultLanguageLabel=de.gif
}
Recently, I spent a couple of hours to update and upgrade my fit-pc2.
I started with the kernel which was running 2.6.37.1 with the psb driver for the Intel GMA500 (Poulsbo) graphics engine. Unfortunately this driver isn't maintained anymore and does not compile with 2.6.38 or even 2.6.39 kernels.
But in the meantime, a new driver entered the staging tree of the kernel and is already part of 2.6.39. This driver-directory is called gma500 but the module is named psb_gfx and the driver is named psbfb. This driver supports Kernel Mode Setting (KMS) and uses the fbdev driver from xorg.
It took me some hours to get this running. Of course because I even compile the kernel on the fit-pc2 which is not that fast. But the biggest problem was to find a working kernel config and the setting for the right display resolution. In my case the monitor is connected to DVI (on the HDMI plug) and has a native resolution of 1440x900.
Here is my kernel config for 2.6.39.2 and I had to change the grub default settings in /etc/default/grub for my monitor:
GRUB_CMDLINE_LINUX="acpi_osi=Linux acpi_backlight=vendor acpi_skip_timer \
nomodeset video=DVI-D-1:1440x900 pci=nocrs mem=896mb"
Please note: the current driver doesn't support reading your monitor EDID data by itsself. It will start with 1024x768 by default. To get information about the connector (in my case DVI-D-1), I added the parameter "drm.debug=7" to the kernel command line.
I don't know why, but I still need a xorg.conf file. Without it, the USB keyboard and mouse won't work.
After the kernel, I upgraded Ubuntu from 10.10 to 11.04 without any problems.
With the new kernel, it was'n possible to use the sound as normal user. So I was checking the drivers and the permissions. After killing pulseaudio, it was possible for the root user to playback sound.
When reloading the alsa drivers there was always a strange warning I've never seen:
sudo alsa force-reload
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/ab/.gvfs
This was the solution: there were some permission issues for this userfilesystem. My solution was the following in the /home/ab/ directory:
sudo umount .gvfs
chmod 755 .gvfs
sudo /usr/lib/gvfs/gvfs-fuse-daemon .gvfs
I have a simple flatbed scanner connected via USB and this scanner didn't work with the new 2.6.39 kernel anymore. But why?
This was another permission issue because root was able to scan. In my kernel config I disabled CONFIG_USB_DEVICE_CLASS because it is marked as DEPRECATED. The current Ubuntu udev rules seems to prefer the old fashioned way. I had to change the permissions for the new style in /lib/udev/rules.d/50-udev-default.rules:
# libusb device nodes
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"
This is of course a dirty workaround and no solution. But anyway. Let's wait for Ubuntu 11.10!
The scanner is found now and working as usual:
ab@ab-fit:~$ scanimage -L
device `plustek:libusb:004:009' is a Canon CanoScan N670U/N676U/LiDE20 flatbed scanner
Long time ago, in 2007, I created at mycable the xxsvideo Sourceforge project. This is a simple buildsystem for the xxsvideo embedded board from mycable and Fujitsu.
These days, I updated some scripts to support current Ubuntu releases. The old scripts did only work up to Ubuntu 8.04. Not it should work with Ubuntu 10.04 and 10.10.
The updated scripts are comitted to the Sourceforge SVN on the project site.
Please have a try and send me patches and/or bugreports if you find something not working as expected. Later on, we could do a new maintenance release out of this.
To check it out just use the following command on your console:
svn co https://xxsvideo.svn.sourceforge.net/svnroot/xxsvideo xxsvideo