I found the first problem with running this Wordpress installation on multiple domains. The installation generates a .htaccess filen in the installation directory. This won’t work when the blogs are in differet directory levels.
What I did was adding the rewite rules to the virtual host instead… that way all my domains could have different rewrite settings.
I also tried to move the upload directory away from the central Wordpress installation and into the document roots for the different domains. But this seems to be impossible due to a bug in Wordpress MU.
The last issue I found with my solution to the multiple domains with Wordpress MU is that the site admin might not be able to see the blogs on the other domains but if you know the id of the blog you can just change that in the URL and gain edit access to the blog anyway.
Example:
The user domain1_admin is site admin for domain1.com. On the domain domain2.com the a blog with the id 3 is attached. So admin logs in on domain1.com and uses this url:
http://domain1.com/wp-admin/wpmu-blogs.php?action=editblog&id=3
The last few issues I can live with… so I wont be experimenting with Wordpress for a while I guess. Hope someone can use this.
Tags: wordpress
I had quite some trouble finding a way to convert an avi video file to flv.
I really wanted to use gstreamer since it had worked very well for me for other conversions in the past. The reason for this conversion was that I had a video on my digital Canon camera (in avi format) and I wanted to publish it on the web using the defacto standard… flash video (flv).
After lots of googling I found FLV Conversion Tips by Brendan Howell so I’m not to take credit for this.
I didn’t want the sound so I removed it from Brendans original example:
gst-launch -v filesrc location=canon.avi ! decodebin name=d ffmux_flv name=mux ! filesink location=output.flv d. ! queue ! videoscale ! video/x-raw-yuv,width=320,height=256 ! ffenc_flv ! mux.
I my search for a solution I found another link with some gst-launch examples you might find interesting.
Tags: gstreamer
Ever since my guild in World of Warcraft first introduced a system for raid sign ups I wished that it was integrated into the forum so I wouldn’t have to login to the forum with one user and the raid sign up system with another (and into the dkp system with a third).
Anyway a little over a year ago I became responsible for the guild forum and looked for a mod for phpBB so raid sign ups would integrate well with the forum. I couldn’t find anything usable at the time so I decided to try write my own phpBB raid sign up mod.
Apart from being fun this little project kept my php skills from rusting totally and I also learned to use Bazaar (a version control system).
Just wanted to blog about it because I think it turned out quite good even though its small. Sure there is room for improvements but hey… the source is there for everybody – change it if you like
Tags: phpbb, world of warcraft
Alright… my blog is now officially migrated from Serendipity (s9y) to Wordpress. I created the new webdesign a while back and made a few small changes tonight just before the switch… let me know if you find any problems with it. The design was inspired by a Wordpress theme by webdemar.com.
A while back I found a s9y importer on Michael Tysons weblog which worked pretty well. Since my last visit a german guy had made a few small changes to it to import extended posts. I had a few of those so I grabbed his script. I had to make a small change to the import script in order to get drafts imported as drafts (and not published).
I also had to insert an extra newline before and after the more-tag (<!–more–>) in order to get my markdown working as intended.
To get Markdown support in my posts I installed the plugin ‘text-control’ (even though its fairly old). I had to get the newest markdown.php and replace the one provided by the plugin to make it work (to get rid of php errors).
I had a few posts which have been pretty popular, so I made sure that old links would still work by using “Wordpress Permalinks – Custom Structure”:
/archives/%post_id%-%postname%.html
I had to make a “last minute” change which affects my Wordpress installation in order to get it working. I will blog about that later in a “Hacking Wordpress MU 2.7 – Part 3″.
I hope you like the change
Tags: wordpress
This is my part 2 of my pursuit on howto host multiple Wordpress blogs spreading over multiple different domains (not only sub-domains) on the same Wordpress MU installation. You can read the first part here. It seems to be possible without using the Domain Mapping plugin which also creates the extra table to provide the functionality (which seems unnecessary).
So far my research shows that it possible using what’s already inside the Wordpress MU 2.7 release. There is no web interface for some of these things but with a few manual inserts into the database it seems to work like a charm.
After my last post I was able to create multiple blogs spread over mulitple domains. But before the blog was moved to its own domain you had to attach the users for the blog because the blog would disappear from the admin webinterface as soon as the site id changed (as soon as the blog was bound to another domain).
It was possible to login on the new domain with the admin user but the user would only serve as a blog admin and not as a site admin on that domain.
With the following I was able to make the admin user site admin for the new domain as well:
INSERT INTO `wp_sitemeta`
( `site_id` , `meta_key` , `meta_value` )
VALUES
('2', 'site_admins', 'a:1:{i:0;s:5:"admin";}');
The number two (2) refers to the site_id your domain got in the table wp_site. If you want another user than admin to be the site admin you’ll have to modify the strange string. Its not as hard as it might look. You can read about how to interpret the string on the Wordpress MU forum – capabilities explanation and the PHP function serialize
Alright… one of my good friends wanted a Wordpress blog… I’ve been thinking of migrating this blog (Jacob’s Weblog – Time is always against me) along with another blog on my webserver to Wordpress… that’s 1 2… 3 Wordpress installations.
I went to the Wordpress website and finds they recently released a new version (version 2.7). After downloading it and falling in love my good friend points me to Wordpress MU Why maintain 3 Wordpress installations when you can maintain a single probably 10x times as complex one?… I like a challenge.
The first part of the challenge was that Wordpress MU hasn’t been released in a 2.7 version yet. Well I fetched it right from trunk (revision 1616) and installed. Then created two blogs on two different domains and created users for the blogs on the different domains. Second part of the challenge was that users attached to the second domain couldn’t login and was just redirected back to the login screen.
I described my problem in detail on the Wordpress forum in the hope of some mighty Wordpress MU guru would serve me the solution on a silver platter… that wasn’t the case.
I can get stubborn sometimes and the last 2 months we had a php development project on work so I figured: “How hard can it be?”
After an a few hours (first spend googling for debugging Wordpress) I ended up using lots of echo, if and exit – there is no school like the old school
Now I think I found a solution and it wasn’t code changes. I needed som changes to the data in the database. You will find a table named wp_site where you will need to add your second domain (and third… etc.) Now browse the table wp_blogs and change the site_id so it matchs the site id for the domain in wp_site.
I still need to test this out but so far it looks good
The third challenge will be to make my domains work with www. prepended. But I’ll save that for another time.
Yesterday I played around with git-svn because git will be the future version control tool we will be using at work and we still have some projects stored in svn. I wanted to try out git but we are not about to convert the old projects just yet.
First I needed to check out the current code from svn and get it into git. I searched the net for how this was done and found something that cloned the entire svn repository to git… not quite what I needed but nice to know:
git svn clone svn://192.168.1.5/htdocs git_htdocs
The above takes the project htdocs from my current svn repository and saves it locally into git repository in the folder git_htdocs.
I just wanted to start hacking so I found that the following fetched the code I wanted:
mkdir git_htdocs
cd git_htdocs
git svn init svn://192.168.1.5/htdocs
Now you are ready to actually fetch some code from svn with:
git svn fetch -r1519
I found the revision I needed (the newest) by issuing a svn info within my old svn checkout.
Make your changes and commit locally with:
git commit lib/class.csv_import.php
When ready to push changes back to the central svn repository use:
git svn dcommit
To keep your local git checkout in sync with the upstream svn repository you can run:
git svn rebase
This article was great reading for me: An introduction to git-svn for Subversion/SVK users and deserters
Happy hacking
Lately I found myself wishing for more in the world of Linux and Open Source. Yesterday I installed the free VMware Server 2.0 which in my opinion is an upgrade worth while. I didn’t need to patch anything to get the modules running on my Ubuntu Intrepid system, and on my laptop where I’m still running Ubuntu Hardy matching binary modules was actually included in the installation… no need to compile them … I like that. Bridging the Atheros wireless on my laptop still doesn’t work, but I guess thats not VMwares fault.
Anyways after installing VMware Server I installed a virtual Ubuntu 8.04 server (Jeos – Just enought operation system) and wanted to install the VMware Tools on the machine. But honestly would like to just install a deb package. I searched the web for a bit to see if someone had created some debs ready to use…. nothing.
At some point Ubuntu hard Debian packages for both the VMware server itself and the VMware Tools. I want that!
Well a package with Open Virtual Machine Tools would do as well. I think my choice on Ubuntu (or Debian for that matter) mainly is because the gigantic repository of quality packages. But this is one of the few times when it comes short. As far as I can tell open-vm-tools will be packaged for Intrepid… looking forward to it
I’m still ripping all my music to FLAC and today I found some old pieces of music which had been tagged wrong. I was browsing my music library with Rhythmbox and right clicked to change the tag but I couldn’t edit it
I found a few bugs which seems to describe my problem… and it seems to be fixed in gstreamer-plugins-good version 0.10.11… to bad Intrepid only have 0.10.10 atm
Last but not least I wish the nvidia driver would support Xrandr… though I’m not holding my breath
I’ve bumped into several other wishes but these was the ones I could remember on top of my head. It seems that for every time the overall quality Linux raises I just raise my expectations by the same degree.
This weekend I decided to try and get my Apple remote to work on my Mac mini which I just upgraded to Hardy the other day.
Configuring the package lirc you are able to select the apple remote from a list but I couldn’t get it to work that way. So I found a way to create my own configuration file for the Apple remote:
sudo irrecord -H macmini -d /dev/usb/hiddev0 macmini.conf
-H tels irrecord which driver to use
-d is the device irrecord listens for input on
macmini.conf is the file where irrecord saves the configuration when done
First you need to hold a button. I had to wait almost 25 sec before it was satisfied and went on with the configuration. Now just follow the on screen instructions and in the end you should have you own configuration file. I recommend to compare the following file with the one you just created to check out the differences:
/usr/share/lirc/remotes/apple/lircd.conf.macmini
I made sure to call my buttons the same as in lircd.conf.macmini.
After that I altered these two files to point to my newly created configuration file and removed pointers to lircd.conf.macmini:
hardware.conf
lircd.conf
I then restarted lircd with:
sudo /etc/init.d/lirc restart
now you should be able to check that it is working with the command irw:
irw
Just Ctrl+c when you are satisfied with the result.
At some point I would like to use my remote with Elisa which just released a 0.5.6 which have DVD playback support, but for now I’ll just stick to Totem just to try getting it to work.
To use the remote in Totem you first have to enable the IR plugin (Edit -> Plugins…). Then you have to configure what to buttons are supposed to do which is done in a configuration file in you home folder:
~/.lircrc
Content could look something like this (read more about syntax on LIRC’s website):
begin
prog = Totem
remote = Apple_A1156
button = vol+
config = volume_up
end
Since the Apple remote have a combined Play/Pause button I wanted to find out if that was possible. I had a bit of trouble figuring out what was going in the config = line and looked through all documentation I could find on LIRC’s website. Suddenly it hit me that the values in config a specific for the application. Not much about this on the Totem website so I downloaded the source code for Totem. Don’t worry this isn’t going to be hardcore. I unpacked the source code and searched for files with the name lirc:
$ cd totem-2.22.1
$ find . -name \*lirc\*
./data/lirc_example
./src/plugins/lirc
./src/plugins/lirc/totem-lirc.c
./src/plugins/lirc/lirc.totem-plugin.in
I opened the file totem-lirc.c and found about 25 definitions for IR commands something like the following:
#define TOTEM_IR_COMMAND_PLAY "play"
#define TOTEM_IR_COMMAND_PAUSE "pause"
#define TOTEM_IR_COMMAND_NEXT "next"
#define TOTEM_IR_COMMAND_PREVIOUS "previous"
#define TOTEM_IR_COMMAND_SEEK_FORWARD "seek_forward"
#define TOTEM_IR_COMMAND_SEEK_BACKWARD "seek_backward"
#define TOTEM_IR_COMMAND_VOLUME_UP "volume_up"
#define TOTEM_IR_COMMAND_VOLUME_DOWN "volume_down"
#define TOTEM_IR_COMMAND_FULLSCREEN "fullscreen"
#define TOTEM_IR_COMMAND_QUIT "quit"
#define TOTEM_IR_COMMAND_UP "up"
#define TOTEM_IR_COMMAND_DOWN "down"
#define TOTEM_IR_COMMAND_LEFT "left"
#define TOTEM_IR_COMMAND_RIGHT "right"
#define TOTEM_IR_COMMAND_SELECT "select"
#define TOTEM_IR_COMMAND_MENU "menu"
#define TOTEM_IR_COMMAND_PLAYPAUSE "play_pause"
#define TOTEM_IR_COMMAND_ZOOM_UP "zoom_up"
#define TOTEM_IR_COMMAND_ZOOM_DOWN "zoom_down"
#define TOTEM_IR_COMMAND_SHOW_PLAYING "show_playing"
#define TOTEM_IR_COMMAND_SHOW_VOLUME "show_volume"
#define TOTEM_IR_COMMAND_EJECT "eject"
#define TOTEM_IR_COMMAND_PLAY_DVD "play_dvd"
#define TOTEM_IR_COMMAND_MUTE "mute"
#define TOTEM_IR_COMMAND_TOGGLE_ASPECT "toggle_aspect"
Other multimedia software might be better docuemented when it comes to IR but I guess you would be able to use something similar to figure out what possible config-options you have in the lircrc for the software.
Anyways Totem have a Play/Pause toggle and I ended up with:
begin
prog = Totem
remote = Apple_A1156
button = play
config = play_pause
end
After my server was restarted twice by my hosting center I decided to make sure Teamspeak would start automatically.
I read a few posts on how other people did it but in the end I decided that I created my own minimal script.
My two goals with this init script was:
- Run the Teamspeak server as an unprivileged user.
- Make sure the Teamspeak server starts up after reboot even though it wasn’t shut down properly
- A little bonus was that it reuses much of the init script that is bundled with the installation
Init script (/etc/init.d/teamspeak):
#!/bin/sh
TEAMSPEAK_DIR=/usr/local/teamspeak
TEAMSPEAK_USER=teamspeak
# Make sure that Teamspeak starts even though it wasn't closed nicely last time (ie. by a power cut)
if [ $(su - $TEAMSPEAK_USER -c "ps ux" |grep tsserver2.pid|grep -v grep|wc -l) -eq 0 ] && [ -f ${TEAMSPEAK_DIR}/tsserver2.pid ]
then
rm ${TEAMSPEAK_DIR}/tsserver2.pid
fi
cd ${TEAMSPEAK_DIR}
su - $TEAMSPEAK_USER -c "./teamspeak2-server_startscript $1"
cd -