Monday, September 24, 2007

MythTV at Nokia N800

MaemoMyth is a frontend to access Mythtv backends. It allows N800 users to watch livetv and recorded programs from everywhere. The application is very simple. It has only two views: MyChannels (livetv) and MyRecordings (recorded programs). One tap in the video area will start the playback in fullscreen. EPG and recording schedules are two other interesting functionalities that could come in next releases.

MaemoMyth connects to the server through the gmyth library, which is based on glib/gobject. The menu->settings option is used to setup the server to connect with. If connection is ok, MaemoMyth starts downloading channel list, recorded videos list and all related snapshots available in the server.




The .install file for MaemoMyth is already available here. Souce code and binaries can be found in the Garage.

Before start using the application, the user needs to setup a Mythtv backend and the GMythStream transcode server. If you have analog TV the transcoder is not needed, just setup mythtv backend to MPEG-4 and a short resolution (e.g. 320x240).
It is possible to easily install the transcoder. There is a repository with .deb packages suitable for Ubuntu Feisty, and a howto explaining how to install it manually.

Contributions and comments are really welcome. The developers can be found at #gmyth IRC channel (freenode) and in the gmyth-devel mailing list.

Here is a short video showing the application...

Labels:

194 Comments:

At 7:22 PM, Anonymous Anonymous said...

I have managed to find most of the required dependencies, but have not had any luck finding armel versions of gstreamer0.10-indt-mythtvsrc and gstreamer0.10-indt-nuvdemux.

The only versions I could find are for i386, and are on the gmyth download page at sourceforge.

Do you know where I can find these packages?

Thanks,

Kevin

 
At 1:15 AM, Anonymous Anonymous said...

Hi!
Great work.

I see my channels and recordings but gms.py shows me a 404 error (file not found I think) when I try to play a recording I get the same error after 5 secs.
Any Idea how to solve this?

@Kevin: I added the repository manually from the .install-file. Then all libs show up in your application manager


Halbamy

 
At 3:25 AM, Blogger Jonty said...

I've not had much luck with this - the first time I ran it my channels showed up, but no recordings, after that nothing showed up at all.
(The channels also gave a 404 when I attempted to play them)

Plus, if I close it, I have to restart my N800 before it will launch again...

--Jonty

 
At 4:05 AM, Blogger Hallyson Melo said...

Hi Kevin, thanks for using it. I will put these files in the sourceforge, but you can get them from the repository. They are in this folder:

http://hallysonluiz.com/mythtv/pool/extras/g/gst-indt-plugins/

Melunko

 
At 5:58 AM, Anonymous Anonymous said...

Thanks for the comments on where to find the additional files.

I will give it a try this evening.

Kevin

 
At 6:02 AM, Anonymous Anonymous said...

Hi,

Any chance this will work on a Nokia 770?

Thanks,
Oliver

 
At 6:19 AM, Blogger tensenss said...

very, very cool thing. Please take this further. Cool would be a 3d Navigation like coverflow :)

 
At 7:53 AM, Blogger Hallyson Melo said...

Hi Halbamy and Jonty, I added in the gmyth wiki the steps to to test gmythstream. This page might help:

http://gmyth.sourceforge.net/wiki/index.php/GMythStream

 
At 9:05 AM, Anonymous Anonymous said...

I think the problem is gmencoder.

I captured a file with gmyth-cat (that played fine in mplayer). Then I tried to transcode is with "gmencoder -i capture.avi -o test.avi" nothing happens. test.avi is not created and I get no errors it just jumps back to my prompt.


Halbamy

 
At 9:06 AM, Anonymous Anonymous said...

EDIT: all debs on your site are installed


Halbamy

 
At 10:10 AM, Anonymous Anonymous said...

Hi, channel listing is really slow on my tablet, is this normal?
(I'm using IT 2007 hacker edition)

 
At 10:34 AM, Blogger Hallyson Melo said...

Halbamy, try to use gmencoder in this way:

gmencoder -i file:///path/file.avi -o file:///path/output.avi

Use 3 "/". What tv standard are you using? Can you upload the capture.avi file to somewhere I could donwload?

 
At 10:42 AM, Blogger Hallyson Melo said...

Hi Oliver, good comment. I did not try yet. In general it should work on 770, but we have to change the way we are doing the playback. I will post about this as soon I get something conclusive.

 
At 11:08 AM, Blogger ajf said...

Hi, when I want to see a live channel, I get this error in gmsd.log on my server:

### 2007-09-25 15:04:25 gms.request INFO "GET /transcode.do?transcoder=gmencoder&type=myth&uri=mythtv:7213@192.168.0.102:6543/livetv/?channel=39&width=320&height=240&video-opts='bitrate=300000'&fps=10 HTTP/1.1" 200 -
### 2007-09-25 15:04:25 gms.gmencoder INFO GMencoder: /usr/bin/gmencoder -d -i myth://mythtv:7213@192.168.0.102:6543/livetv/?channel=39 --video-encode ffenc_mpeg1video --video-opts bitrate=300000,pass=512,quantizer=0.01,quant-type=1 --video-fps 10 --video-width 320 --video-height 240 --audio-rate 32000 -o fd://4

** (gmemcoder:9239): WARNING **: Audio elements not found

** (gmemcoder:9239): WARNING **: Invalid uri
### 2007-09-25 15:04:25 gms.gmencoder INFO OK
### 2007-09-25 15:04:30 gms.request ERROR 192.168.0.106: code 404, message File not found
### 2007-09-25 15:04:30 gms.request INFO "GET /transcode.do?transcoder=gmencoder&type=myth&uri=mythtv:7213@192.168.0.102:6543/livetv/?channel=39&width=320&height=240&video-opts='bitrate=300000'&fps=10 HTTP/1.1" 404 -

 
At 11:26 AM, Blogger Hallyson Melo said...

Hi ajf, do you have these packages installed?

gstreamer0.10-plugins-bad,
gstreamer0.10-plugins-base, gstreamer0.10-plugins-good, gstreamer0.10-plugins-ugly

 
At 1:05 PM, Anonymous Anonymous said...

Thanks for your first advise, I get the following error with this command:

gmencoder -i file:///home/halbamy/test.avi -o file:///home/halbamy/enc.avi

(gmemcoder:13283): GStreamer-WARNING **: adding flushing pad 'video_e0' to running element 'flupsdemux0'
Error: Error [1] Interner Fehler im Datanfluss (gstbasesrc.c(1642): gst_base_src_loop (): /pipe/bin2/src:
streaming task paused, reason error (-5))

I tested with that file:
http://ebg-abi.de/download/test.avi

I use a analog tv card (hauppauge 500)

Sorry for your trouble I'm probaby just too stupid.

 
At 1:45 PM, Blogger Hallyson Melo said...

Hi, I reproduced the error with http://ebg-abi.de/download/test.avi. The problem is that gstreamer is trying to use a fluendo demux that somehow is with problems. I fixed this error removing this package:

sudo apt-get remove gstreamer0.10-fluendo-mpegdemux

 
At 2:06 PM, Anonymous Anonymous said...

One step further:
Recordings play fine for 30-60 secs then is lags a little but I guess this is because of my weak cpu (athlon 64 3000+, getting a X2 4200+ this week ;-).

Here is the next issu:
I cannot play livetv. This is the console output of gms.py


### 2007-09-25 23:00:21 gms.request INFO "GET /transcode.do?transcoder=gmencoder&type=myth&uri=mythtv:xidcqpyf@192.168.0.37:6543/livetv/?channel=1&width=320&height=240&video-opts='bitrate=300000'&fps=10 HTTP/1.1" 200 -
### 2007-09-25 23:00:21 gms.gmencoder INFO GMencoder: /usr/bin/gmencoder -d -i myth://mythtv:xidcqpyf@192.168.0.37:6543/livetv/?channel=1 --video-encode ffenc_mpeg1video --video-opts bitrate=300000,pass=512,quantizer=0.01,quant-type=1 --video-fps 10 --video-width 320 --video-height 240 --audio-rate 32000 -o fd://8

** (gmemcoder:15615): WARNING **: Property pass of type GstFFMpegEncPass. Not supported using default enum

** (gmemcoder:15615): WARNING **: Property quant-type of type GstFFMpegEncQuantTypes. Not supported using default enum
### 2007-09-25 23:00:21 gms.gmencoder ERROR Detected problem @ gmencoder: Error: Error [3] Konnte die Unterstützungsbibliothek nicht initialisieren. (gstmythtvsrc.c(662): gst_mythtv_src_start (): /pipe/bin2/src:

### 2007-09-25 23:00:22 gms.gmencoder INFO OK
### 2007-09-25 23:00:22 gms.request ERROR noname: code 404, message File not found
### 2007-09-25 23:00:22 gms.request INFO "GET /transcode.do?transcoder=gmencoder&type=myth&uri=mythtv:xidcqpyf@192.168.0.37:6543/livetv/?channel=1&width=320&height=240&video-opts='bitrate=300000'&fps=10 HTTP/1.1" 404 -



Thanks in advance.
Halbamy

 
At 2:19 PM, Blogger ajf said...

Hi! thanks for your answer.
I have all those packages installed in the server, any idea?

 
At 2:36 PM, Anonymous Anonymous said...

Great, it works. I was just looking for a solution for showing live tv from myth.

The default 10 fps made my eyes hurt, but this was quickly worked around.

 
At 6:25 PM, Blogger Hallyson Melo said...

Hi ajf. The msg "Audio elements not found" means that one gstreamer plugin related to audio is missing. Does this happen only with livetv? What TV standard are you trying with? What is your linux distribution?

The only additional packages i have here are: gstreamer0.10-alsa, gstreamer0.10-esd, gstreamer0.10-plugins-bad-multiverse, gstreamer0.10-plugins-ugly-multiverse,

Can you upload one mythtv video to somewhere I can download? I can check what plugins are been needed. You can use gmyth-cat to get a livetv video. See the tests steps at:

http://gmyth.sourceforge.net/wiki/index.php/GMythStream

 
At 6:41 PM, Blogger Hallyson Melo said...

Yes, 10fps is not good. You can try 15fps, it works, but sometimes you can face freezes. You also need a good server machine to capture livetv, transcode and stream. We can add the framerate option in the maemo-myth settings. Lets do this in the next version.

Can you compile maemo-myth to armel? If yes, just change 10fps to 15fps in the file mtv-mythtvdata.c.

 
At 2:12 AM, Anonymous Anonymous said...

Hi again!

this error
** (gmemcoder:9239): WARNING **: Audio elements not found

and this one
problem @ gmencoder: Error: Error [3] Konnte die Unterstützungsbibliothek nicht initialisieren. (gstmythtvsrc.c(662): gst_mythtv_src_start (): /pipe/bin2/src:

are kind of related.


The first one appears when using the packet gstreamer0.10-plugins-bad in ubuntu feisty.
The sceond one appears with gstreamer0.10-plugins-bad-multiverse.

Hope this helps and was not obvious.


Halbamy

 
At 5:23 AM, Blogger Hallyson Melo said...

Hi Albamy, what release of gstreamer0.10-ffmpeg is installed?

Just in case, this might help:
$ dpkg -l | grep gstreamer0.10-ffmpeg

One more question, did gmyth-cat work with livetv?

 
At 5:41 AM, Blogger ajf said...

Hi! thanks again for your answer.
I installed gstreamer0.10-plugins-ugly-multiverse and now I can get audio, but not video, here is the log:

### 2007-09-26 09:39:15 gms.request INFO "GET /transcode.do?transcoder=gmencoder&type=myth&uri=mythtv:7213@192.168.0.102:6543/livetv/?channel=39&width=320&height=240&video-opts='bitrate=300000'&fps=10 HTTP/1.1" 200 -
### 2007-09-26 09:39:15 gms.gmencoder INFO GMencoder: /usr/bin/gmencoder -d -i myth://mythtv:7213@192.168.0.102:6543/livetv/?channel=39 --video-encode ffenc_mpeg1video --video-opts bitrate=300000,pass=512,quantizer=0.01,quant-type=1 --video-fps 10 --video-width 320 --video-height 240 --audio-rate 32000 -o fd://4

** (gmemcoder:6929): WARNING **: Property pass of type GstFFMpegEncPass. Not supported using default enum

** (gmemcoder:6929): WARNING **: Property quant-type of type GstFFMpegEncQuantTypes. Not supported using default enum

** (gmemcoder:6929): WARNING **: Unknown Type


Here is the output of dpkg -l | grep gstreamer0.10-ffmpeg

ii gstreamer0.10-ffmpeg 0.10.2-cvs20070814 FFmpeg plugin for GStreamer


I'm using Ubuntu Gutsy.

Thank you!

 
At 6:08 AM, Anonymous Anonymous said...

Hi!

gstreamer0.10-ffmpeg 0.10.2-cvs20070814

gmyth-cat works with live tv.
no problems there.

Halbamy

 
At 6:25 AM, Blogger ajf said...

Hi,

gmyth-cat seems to work OK, I can play it with mplayer on the server machine.

Here is the test file:

http://74.205.121.232/channel.avi

 
At 6:37 AM, Blogger ajf said...

BTW, I use PAL-Nc as TV Standard :)

 
At 12:41 PM, Blogger Hallyson Melo said...

Hi ajf, we can play your file (thanks to Renato Filho for his tip). Gmencoder is using decodebin2 (gstreamer), but somehow your file just play with decodebin :(. We added some trick in the gmencoder. If you export the USE_DECODEBIN1 env, it will work.

I added one new release to the repository: gmencoder_0.1-indt3. So, try to upgrade this package. After this, you need to run gms differently:

$ USE_DECODEBIN1=1 /usr/bin/gms

Please, tell me if it worked.

 
At 12:42 PM, Blogger Hallyson Melo said...

Hi Halbamy, the same tip about USE_DECODEBIN1 env should work with you as well.

 
At 1:22 PM, Blogger ajf said...

melunko, thanks for your answer.

I did this:

apt-get remove gmencoder
apt-get update
apt-get install gmencoder
apt-get install gms

dpkg -l | grep gmencoder
ii gmencoder 0.1-indt3 GMencoder is an application similar to mencoder, but i

export USE_DECODEBIN1=1
/usr/bin/gms.py

But no luck yet :(

I get the same, audio but no video.

### 2007-09-26 17:21:05 gms.request INFO "GET /transcode.do?transcoder=gmencoder&type=myth&uri=mythtv:7213@192.168.0.102:6543/livetv/?channel=39&width=320&height=240&video-opts='bitrate=300000'&fps=10 HTTP/1.1" 200 -
### 2007-09-26 17:21:05 gms.gmencoder INFO GMencoder: /usr/bin/gmencoder -d -i myth://mythtv:7213@192.168.0.102:6543/livetv/?channel=39 --video-encode ffenc_mpeg1video --video-opts bitrate=300000,pass=512,quantizer=0.01,quant-type=1 --video-fps 10 --video-width 320 --video-height 240 --audio-rate 32000 -o fd://4

** (gmemcoder:11719): WARNING **: Property pass of type GstFFMpegEncPass. Not supported using default enum

** (gmemcoder:11719): WARNING **: Property quant-type of type GstFFMpegEncQuantTypes. Not supported using default enum

Please tell me if I'm doing it wrong.

Thanks.

 
At 1:49 PM, Blogger Hallyson Melo said...

Hi ajf, now we tested in a Gutsy machine and reproduced your problem. We will prepare packages for this distro and upload to repo...

Thanks for trying.

 
At 2:07 PM, Blogger ajf said...

Great! I'll wait for it.

Thank you!

 
At 12:22 AM, Blogger sri said...

I tested everythig and everything works using the utiities. But when I try to run the maemo application on my N800 and click on a file it immediately crashes regardless of what I have. There are no messages or anything :(

 
At 1:26 AM, Anonymous Anonymous said...

Hi!

I tried your new version but with no luck.

Still get
** (gmemcoder:9239): WARNING **: Audio elements not found

With USE_DECODEBIN1=1 gms.py it is the same.



Halbamy

 
At 2:07 AM, Anonymous Anonymous said...

Hi!

I have another stupid question.
Why is the command gmencoder but in the error log you get gmemcoder?

Halbamy

 
At 5:01 AM, Blogger Hallyson Melo said...

I finally did some tries at Nokia 770. As I told before, the playback will not work, since we are using some stuff from N800. The good news is that Renato Filho (http://tuxrecife.blogspot.com/) is already taking care of that. We will post something as soon as we get it.

Someone also wrote about the list speed. I made tests with my finger and the list really does not move correctly, but with the pen it is very very fast.

 
At 5:08 AM, Blogger ajf said...

Halbamy, to solve this error:
** (gmemcoder:9239): WARNING **: Audio elements not found

I installed this package:
gstreamer0.10-plugins-ugly-multiverse

Now I have audio but no video, but that's another problem :)

 
At 5:16 AM, Blogger ajf said...

melunko,

Playback will not work using IT 2007 hacker edition on 770?

 
At 5:21 AM, Anonymous Anonymous said...

Hi!

When I installed gstreamer0.10-plugins-ugly-multiverse I get:

** (gmemcoder:13097): WARNING **: Unknown Type
Error: Error [1] Interner Fehler im Datanfluss (gstbasesrc.c(1642): gst_base_src_loop (): /pipe/bin2/src:
streaming task paused, reason not-linked (-1))


Halbamy

 
At 5:12 AM, Blogger ajf said...

Halbamy,

I don't get that error in my machine, sorry :(

 
At 5:27 AM, Blogger Hallyson Melo said...

ajf, Renato Filho is trying to solve this problem with 770. We still do not know if it is possible.

 
At 5:33 AM, Blogger Hallyson Melo said...

Halbamy, lets try step by step....

1. Try to play the file you mentioned with gstreamer:
$ gst-launch-0.10 playbin uri=file:///home/halbamy/test.avi
If this plays, decoders are ok

2. Now, lets try to transcode using command line (sorry for the huge line):

$ gst-launch-0.10 ffmux_mpeg name="mpg" ! filesink location=" teste.mpg" gnomevfssrc location="file:///home/halbamy/test.avi" ! decodebin name="d" { d. ! queue ! ffmpegcolorspace ! ffenc_mpeg1video ! queue ! mpg. } { d. ! queue ! audioconvert ! audioresample ! lame ! queue ! mpg. }

- I hope to see now what gstreamer element is missing.
- Try also to change decodebin to decodebin2
- If this does not work, send me the list of gstreamer packages instaled (dpkg -l | grep gstreamer), and the list of gstreamer elements (gst-inspect-0.10).

 
At 5:34 AM, Blogger Hallyson Melo said...

Halbamy, gmemcoder is just a typo :).

 
At 8:16 AM, Anonymous Anonymous said...

Hi!

Thanks Melunko live tv is working!

Now I use USE_DECODEBIN1=1 /usr/bin/gms.py to start the transcoding server and I installed totem video player. There must have been some dependency of totem video player that did the trick. I guess totem is the standard player in ubuntu.

What is strange though is that recordings lag badly.

I noticed something else. It is about my tv signal being 4:3 and if my cable provider is playing 16:9 shows I have already a huge amount of black on my tv but when I watch it with the n800 I would like to crop the video to 16:9 instead of streching it because in my case half of the screen is not used although I play a 16:9 show.


Thanks for your patience with me.


Halbamy

 
At 9:05 AM, Blogger ajf said...

Halbamy, are you using n800 or 770?

 
At 10:11 AM, Anonymous Anonymous said...

I am using a n800.


Halbamy

 
At 7:29 AM, Anonymous Anonymous said...

Thanks for the tip on the fluendo gstreamer plugin.

I was getting the following error:
~ $ gmencoder -i myth://172.16.1.34:6543/1091_20070715180000.mpg -o file:///tmp/recording.avi

(gmemcoder:22117): GStreamer-WARNING **: adding flushing pad 'video_e0' to running element 'flupsdemux0'

(gmemcoder:22117): GStreamer-WARNING **: adding flushing pad 'audio_c0' to running element 'flupsdemux0'
Error: Error [1] Internal data flow error. (gstbasesrc.c(1642): gst_base_src_loop (): /pipe/bin2/src:
streaming task paused, reason error (-5))

When I removed the gstreamer0.10-fluendo-mpegdemux plugin, everything started to work.

 
At 8:26 PM, Anonymous Anonymous said...

How come when I use the gmencoder command;

gmencoder -i myth://127.0.0.1:6543/livetv?channel=7 -o file:////home/user/channel7.avi

I get the gui of gmencoder but nothing else happens?

 
At 6:19 PM, Blogger Unknown said...

I've just tried to get it up and running on my N800, i can log in, the channels and recordings are shown... if i select a channel i get a segfault:

mtv[2712]: GLIB CRITICAL ** GLib - g_io_channel_write_chars: assertion `channel != NULL' failed
mtv[2712]: GLIB CRITICAL ** GLib - g_io_channel_flush: assertion `channel != NULL' failed

 
At 9:11 AM, Blogger MCDent said...

Damn fine work! Makes me want to purchase a N800!
Once working, how reliable is it? Does it crash much at present?
I have a Sony PSP, do you know if anybody is working on something similar for PSP?

Thanks
Mike

 
At 9:14 AM, Anonymous Anonymous said...

Any chance we'll see a 64 bit repository of the packages listed on the GMythStreamer
site.
Some of the svn's on the GMS_Howto
return errors last I tried them.

Thanks
Jay

 
At 11:49 AM, Blogger Unknown said...

I have the same problem and have taken the same steps as Alf, except that I did on Ubuntu Feisty

 
At 1:19 PM, Blogger Hallyson Melo said...

Hi anders, thanks for trying...

I never saw this problem before. I will find out what is happening in your case. Come back soon....

 
At 1:23 PM, Blogger Hallyson Melo said...

Hi Jason,

It seems there is another gmencoder application, and so I believe some people have installed a different gmencoder.

The gmencoder we need is the one described at:

http://gmyth.sourceforge.net/wiki/index.php/GMythStream

Are you using the right gmencoder? It does not have an ui, in the sense that it just convert the video to a new file.

 
At 12:09 AM, Anonymous Anonymous said...

RHAlYF Your blog is great. Articles is interesting!

 
At 10:58 AM, Anonymous Anonymous said...

qljbza Thanks to author.

 
At 11:58 AM, Anonymous Anonymous said...

MufGd0 Good job!

 
At 12:11 PM, Anonymous Anonymous said...

Z4ok0n Magnific!

 
At 12:29 PM, Anonymous Anonymous said...

Good job!

 
At 10:44 PM, Anonymous Anonymous said...

Yes Thanks Melunko for replying :) I had a 64bit package from getdeb. I installed gutsy 32bit just to solve the 64bit headache. It works now!!!! Was pretty easy to get working. Did i need to enable remote connections to mysql mythtv user?

any ways the only problem im having is the video/audio sync is off. the audio plays before the video.

 
At 12:08 PM, Anonymous Anonymous said...

Good job!

 
At 1:00 PM, Anonymous Anonymous said...

Magnific!

 
At 7:31 AM, Anonymous Anonymous said...

Good job!

 
At 11:06 PM, Anonymous Anonymous said...

Wonderful blog.

 
At 2:20 AM, Anonymous Anonymous said...

Hello all!

 
At 2:56 AM, Blogger Samuli Järvelä said...

Finally myth frontend for maemo! However, I couldn't get it working, it complains about not being able to connect to db.

In the end, I had to open sources to see why, and it seems that that mythtv database name is fixed to "mythconverg"?? I chose not to use this name, and still don't want to change that :) I haven't seen anything that would recommend using this default name, but I doubt that this is necessary as other frontends allow me to choose this.

I know this isn't a big thing to change myself, but I wouldn't want to recompile every time new version comes. So would it be possible for you to add this configuration option?

 
At 6:14 AM, Anonymous Anonymous said...

Hello all!

 
At 9:57 AM, Anonymous Anonymous said...

Y1Ei9f You have a talant! Write more!

 
At 7:33 PM, Anonymous Anonymous said...

i2IHuD Good job!

 
At 11:21 AM, Anonymous Anonymous said...

GHIUVC Hello all!

 
At 11:50 AM, Anonymous Anonymous said...

actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

 
At 9:44 PM, Anonymous Anonymous said...

I7jZiU The best blog you have!

 
At 10:55 AM, Anonymous Anonymous said...

JHeDeO Nice Article.

 
At 12:29 PM, Anonymous Anonymous said...

Please write anything else!

 
At 1:37 PM, Anonymous Anonymous said...

actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

 
At 2:40 PM, Anonymous Anonymous said...

Thanks to author.

 
At 4:10 AM, Anonymous Anonymous said...

Good job!

 
At 8:49 AM, Anonymous Anonymous said...

Nice Article.

 
At 9:54 AM, Anonymous Anonymous said...

Good job!

 
At 10:47 AM, Anonymous Anonymous said...

Good job!

 
At 11:31 AM, Anonymous Anonymous said...

Good job!

 
At 1:19 AM, Anonymous Anonymous said...

TBqDsx write more, thanks.

 
At 7:42 PM, Anonymous Anonymous said...

Nice Article.

 
At 8:18 PM, Anonymous Anonymous said...

Nice Article.

 
At 10:09 PM, Anonymous Anonymous said...

Good job!

 
At 10:41 PM, Anonymous Anonymous said...

Wonderful blog.

 
At 11:18 PM, Anonymous Anonymous said...

Hello all!

 
At 11:47 PM, Anonymous Anonymous said...

Nice Article.

 
At 12:16 AM, Anonymous Anonymous said...

Thanks to author.

 
At 12:48 AM, Anonymous Anonymous said...

Magnific!

 
At 1:21 AM, Anonymous Anonymous said...

Please write anything else!

 
At 2:02 AM, Anonymous Anonymous said...

actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

 
At 2:43 AM, Anonymous Anonymous said...

Thanks to author.

 
At 3:18 AM, Anonymous Anonymous said...

Nice Article.

 
At 3:47 AM, Anonymous Anonymous said...

Nice Article.

 
At 4:22 AM, Anonymous Anonymous said...

Friends help you move. Real friends help you move bodies

 
At 4:59 AM, Anonymous Anonymous said...

All generalizations are false, including this one.

 
At 5:32 AM, Anonymous Anonymous said...

Lottery: A tax on people who are bad at math.

 
At 5:59 AM, Anonymous Anonymous said...

actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

 
At 6:29 AM, Anonymous Anonymous said...

Oops. My brain just hit a bad sector.

 
At 7:05 AM, Anonymous Anonymous said...

actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

 
At 7:38 AM, Anonymous Anonymous said...

Thanks to author.

 
At 8:11 AM, Anonymous Anonymous said...

Save the whales, collect the whole set

 
At 8:41 AM, Anonymous Anonymous said...

Build a watch in 179 easy steps - by C. Forsberg.

 
At 9:13 AM, Anonymous Anonymous said...

Lottery: A tax on people who are bad at math.

 
At 9:46 AM, Anonymous Anonymous said...

Nice Article.

 
At 10:24 AM, Anonymous Anonymous said...

When there's a will, I want to be in it.

 
At 11:07 AM, Anonymous Anonymous said...

Suicidal twin kills sister by mistake!

 
At 11:45 AM, Anonymous Anonymous said...

Friends help you move. Real friends help you move bodies.

 
At 12:18 PM, Anonymous Anonymous said...

Energizer Bunny Arrested! Charged with battery.

 
At 12:51 PM, Anonymous Anonymous said...

The gene pool could use a little chlorine.

 
At 1:21 PM, Anonymous Anonymous said...

Give me ambiguity or give me something else.

 
At 1:46 PM, Anonymous Anonymous said...

Build a watch in 179 easy steps - by C. Forsberg.

 
At 2:15 PM, Anonymous Anonymous said...

I'm not a complete idiot, some parts are missing!

 
At 2:45 PM, Anonymous Anonymous said...

A flashlight is a case for holding dead batteries.

 
At 3:14 PM, Anonymous Anonymous said...

Energizer Bunny Arrested! Charged with battery.

 
At 3:54 PM, Anonymous Anonymous said...

Wonderful blog.

 
At 4:23 PM, Anonymous Anonymous said...

Energizer Bunny Arrested! Charged with battery.

 
At 5:03 PM, Anonymous Anonymous said...

actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

 
At 5:34 PM, Anonymous Anonymous said...

Wonderful blog.

 
At 6:05 PM, Anonymous Anonymous said...

I'm not a complete idiot, some parts are missing!

 
At 6:36 PM, Anonymous Anonymous said...

Change is inevitable, except from a vending machine.

 
At 7:14 PM, Anonymous Anonymous said...

Good job!

 
At 8:00 PM, Anonymous Anonymous said...

C++ should have been called B

 
At 8:35 PM, Anonymous Anonymous said...

Change is inevitable, except from a vending machine.

 
At 9:13 PM, Anonymous Anonymous said...

What is a free gift ? Aren't all gifts free?

 
At 9:51 PM, Anonymous Anonymous said...

Oops. My brain just hit a bad sector.

 
At 10:21 PM, Anonymous Anonymous said...

Change is inevitable, except from a vending machine.

 
At 10:58 PM, Anonymous Anonymous said...

C++ should have been called B

 
At 11:42 PM, Anonymous Anonymous said...

Oops. My brain just hit a bad sector.

 
At 12:25 AM, Anonymous Anonymous said...

Suicidal twin kills sister by mistake!

 
At 1:14 AM, Anonymous Anonymous said...

Calvin, we will not have an anatomically correct snowman!

 
At 1:57 AM, Anonymous Anonymous said...

Hello all!

 
At 2:37 AM, Anonymous Anonymous said...

Save the whales, collect the whole set

 
At 3:22 AM, Anonymous Anonymous said...

Lottery: A tax on people who are bad at math.

 
At 4:17 AM, Anonymous Anonymous said...

Build a watch in 179 easy steps - by C. Forsberg.

 
At 5:08 AM, Anonymous Anonymous said...

Thanks to author.

 
At 5:51 AM, Anonymous Anonymous said...

C++ should have been called B

 
At 6:31 AM, Anonymous Anonymous said...

Give me ambiguity or give me something else.

 
At 7:10 AM, Anonymous Anonymous said...

Suicidal twin kills sister by mistake!

 
At 7:47 AM, Anonymous Anonymous said...

If ignorance is bliss, you must be orgasmic.

 
At 8:20 AM, Anonymous Anonymous said...

Oops. My brain just hit a bad sector.

 
At 9:05 AM, Anonymous Anonymous said...

Oops. My brain just hit a bad sector.

 
At 9:47 AM, Anonymous Anonymous said...

Thanks to author.

 
At 10:30 AM, Anonymous Anonymous said...

Suicidal twin kills sister by mistake!

 
At 11:20 AM, Anonymous Anonymous said...

640K ought to be enough for anybody. - Bill Gates 81

 
At 12:08 PM, Anonymous Anonymous said...

Energizer Bunny Arrested! Charged with battery.

 
At 12:45 PM, Anonymous Anonymous said...

When there's a will, I want to be in it.

 
At 8:46 PM, Anonymous Anonymous said...

I have live TV working great. However, I don't have a list of recordings. Any idea why?

I started a thread on internettablettalk.com under 'apps'

 
At 4:21 AM, Anonymous Anonymous said...

Payday loan

 
At 8:47 AM, Anonymous Anonymous said...

URLsWithAHREF={1,5} buy discount tramadol | buy drug tramadol | buy tablet tramadol | buy tramadol 180 | buy tramadol cheap | buy tramadol cod | buy tramadol free shipping | buy tramadol hcl | buy tramadol no prescription | buy tramadol now | buy tramadol online cod | buy tramadol overnight
URLsWithURL={1,5}[url=http://cheaptramadol-lilu.blogspot.com/] buy discount tramadol [/url] | [url=http://gigo-tramadolonline.blogspot.com/] buy drug tramadol [/url] | [url=http://crushingultram.blogspot.com/] buy tablet tramadol [/url] | [url=http://tramadol-low-blood-pressure.blogspot.com/] buy tramadol 180 [/url] | [url=http://buy-tramadol-180.blogspot.com/] buy tramadol cheap [/url] | [url=http://buy-tramadol-cheap-saab.blogspot.com/] buy tramadol cod [/url] | [url=http://saab-buy-tramadol-cod.blogspot.com/] buy tramadol free shipping [/url] | [url=http://buy-tramadol-free-shipping-saab.blogspot.com/] buy tramadol hcl [/url] | [url=http://buytramadolhcl.blogspot.com/] buy tramadol no prescription [/url] | [url=http://buy-tramadol-no-prescription-saab.blogspot.com/] buy tramadol now [/url] | [url=http://tramfarmastoraz.blogspot.com/] buy tramadol online cod [/url] | [url=http://tramfarmastorag.blogspot.com/] buy tramadol overnight [/url]
Greatings=Cool site!|thanks for letting me view your guest book and giving me all the information|Really great site with alot of good information!! Keep up the good work!!!!|Nice! We really amused by the website.|A very interesting site with top design and contents!|Greetings Very good web site. I loved it. Found invaluable information. Just what I was looking for :-) Regards and best wishes|WOW, so much stuff here, an excellent resource. Thanks guys!|Hi everyone. Great site. Hold on.|Your site was so interesting and informative I had to call a friend to tell her about it. Great work|Hammm… Nice article… Interesting.|Hello, nice site look this:|See you...Thanks, its great to receive such positive comments.|Your site has very much liked me. I shall necessarily tell about him to the friends.|This is one of the best sites I have ever found. Thanks!!! Very nice and informal. I enjoy being here.|Very good site! I like it! Thanks!|Cool design, great info!|Hi! Guys how you manage to make such perfect sites? Good fellows!|very well made it .All information on this site is represented|I glad too see this interest site, I tell my friends about it! They like sites like that: site|This is a cool site! Thanks and wish you better luck! Brilliant but simple idea.|Here is intresting people… Lets talk!|Your site is very convenient in navigation and has good design. Thanks!|Very interesting and beautiful site. It is a lot of ful information. Thanks.|Very good site. Thank you!!!|Save time by hitting.|I really do like this place.|Very realistic and amusing site.|It is a member of the site.|Nice site. Thanks.|I would love to hear more about this …|hi, you have super site.|That was a very nice post, I’m proud of you!|hello, your site is lucky.|Hi this is a very informative site!|Save your time, please.|The mission of the your site.|hi im mohan i am having problems.|hi.. just droppin’ by your site.. it’s really cute… nice work!|Thanks for the interesting and informative site. That’s definitely what I’ve been looking for.|Very good site with a lot of useful information|Yes. Very good site! worth to visit!|archy it i, and i like you!|Very good website you have here.|Thanks for taking a few of us.|Keep up this great resource.|I found it very interesting.|i love is it.|The more you know about site|Hi, nice site! Your hard work paid off|The site’s very professional|Keep up this great resource|Exciting website. Thank you.|thanks you peopels.|The site’s very professional! Keep up the good work!|I like your diary. Allow to be friends!|good! support!|Great place to visit!

 
At 10:24 AM, Blogger Unknown said...

This comment has been removed by the author.

 
At 5:14 AM, Anonymous Anonymous said...

free dating sites in switzerland http://loveepicentre.com/taketour.php top rated gay dating sites

 
At 11:07 AM, Anonymous Anonymous said...

rate dating site http://loveepicentre.com/ carbon dating calculations

 
At 10:12 AM, Anonymous Anonymous said...

ebook tolstoy http://audiobookscollection.co.uk/Book-1-Confessions-Of-A-Shopaholic-Shopaholic/p19599/ palm ebook downloads [url=http://audiobookscollection.co.uk/QuickTime-Toolkit-Advanced-Movie-Playback-and-Media-Types/p220500/]hi-tech news ebook[/url] prs 500 ebook reader

 
At 8:56 AM, Anonymous Anonymous said...

college writing skills langan 7th ebook http://audiobookscollection.co.uk/Nayan-Chanda/m92158/ ebook la mecanica del corazon [url=http://audiobookscollection.co.uk/fr/Wife-of-the-Gods/p17020/]rebel angels download ebook[/url] free ebook probability statistics

 
At 12:22 AM, Anonymous Anonymous said...

free ebook jewelry appraisals http://audiobookscollection.co.uk/Popular-Audio-Books/l10/?page=38 free ebook download green [url=http://audiobookscollection.co.uk/John-Aidan-Byrne/m62913/]ebook localization hong kong business[/url] the inner castle ebook

 
At 3:28 AM, Anonymous Anonymous said...

torrent ebook lee child http://audiobookscollection.co.uk/Your-Home-Buying-Selling-Renovating-Building/p224424/ where to buy a kendall ebook [url=http://audiobookscollection.co.uk/Development/c1718/?page=5]snmp by sidney feit ebook[/url] computer science theory ebook

 
At 4:54 PM, Anonymous Anonymous said...

winning through enlightenment ebook http://audiobookscollection.co.uk/fr/The-Network-Society-A-Cross-Cultural-Perspective/p221263/ broken sky ebook [url=http://audiobookscollection.co.uk/Recent-Advances-in-Parallel-Virtual-Machine-and-Message-Passing-Interface-8th-European-PVM-MPI-Users-Group-Meeting-Santorini-Thera-Greece-September/p195671/]ebook by hinton[/url] storm front jim butcher ebook

 
At 12:54 AM, Anonymous Anonymous said...

skills of the vagabons ebook http://audiobooksplanet.co.uk/Milan-Zafirovski/m89725/ ebook reader for black berry [url=http://audiobooksplanet.co.uk/The-Fry-Chronicles/p28501/]ebook torrent grey griffins[/url] human motion photo ebook free downloadd

 
At 2:13 PM, Anonymous Anonymous said...

mind boosters ebook http://audiobooksworld.co.uk/it/Prestige/p228373/ free ebook conures complete owner's manual [url=http://audiobooksworld.co.uk/es/How-to-Add-Ten-Years-to-Your-Life-and-to-Double-Its-Satisfactions/p227968/]algorithms udi manber free pdf ebook[/url] ebook specials ebook specials

 
At 9:51 PM, Anonymous Anonymous said...

kindle sony ebook sale http://audiobooksworld.co.uk/it/Vaccaro/m128244/ booknook rescue josh mcguire ebook [url=http://audiobooksworld.co.uk/M-A-Utton/m78725/]stress in policing tosh hans ebook[/url] info ebook ebooks

 
At 11:31 AM, Anonymous Anonymous said...

construction car ebook pinewood derby http://audiobooksworld.co.uk/The-Discipline-of-Innovation-HBR-Classic/p215991/ mein kampf free ebook [url=http://audiobooksworld.co.uk/Paul-L-Fackler/m97749/]where the fern grows red ebook[/url] math ebook number system
[url=http://audiobooksworld.co.uk/es/Breathers-A-Zombie-s-Lament/p226069/][img]http://audiobooksworld.co.uk/image/2.gif[/img][/url]

 
At 1:40 PM, Anonymous Anonymous said...

glenda miller del mar software http://buyoem.co.uk/it/manufacturer-9/Autodesk smith micro software checkit diagnostics [url=http://buyoem.co.uk/es/category-10/Internet?page=49]best movie jukebox software[/url] mcti tree inventory software
[url=http://buyoem.co.uk/category-3/Graphics-and-Publishing?page=3]Graphics & Publishing - Download OEM, Software Sale, OEM Software[/url] best dvd ripping software to cd-r
[url=http://buyoem.co.uk/fr/product-35537/Default-Folder-X-4-4-MacOSX][img]http://buyoem.co.uk/image/8.gif[/img][/url]

 
At 5:08 AM, Anonymous Anonymous said...

computer time software timer http://buyoemsoftware.co.uk/product-35783/Essential-Data-Tools-FileRescue-Pro-4-2 tax forms software [url=http://buyoemsoftware.co.uk/product-37309/Ultra-DVD-to-DivX-Converter-2-0]windows software update services[/url] yacht sailing software
[url=http://buyoemsoftware.co.uk/product-35359/3herosoft-DVD-to-iPod-Converter-3-5-MacOSX]3herosoft DVD to iPod Converter 3.5 MacOSX - Cheap Legal OEM Software, Software Sale, Download OEM[/url] membership plus software training church
[url=http://buyoemsoftware.co.uk/it/category-200-204/Software-di-plug-in][img]http://buyoem.co.uk/image/3.gif[/img][/url]

 
At 12:17 AM, Anonymous Anonymous said...

word perfect dragon voice recognition software http://buyoemsoftware.co.uk/it/product-36887/PremiumSoft-Navicat-Premium-Enterprise-Edition-10-0 best family tree software [url=http://buyoemsoftware.co.uk/it/product-24553/SQLyog-Enterprise-8-0]website lan troubleshooting software[/url] google software firefox download
[url=http://buyoemsoftware.co.uk/product-16100/SensorsView-Pro-3-1]SensorsView Pro 3.1 - Software Store[/url] bisoncam nb pro software
[url=http://buyoemsoftware.co.uk/es/category-100-110/Internet?page=4][img]http://buyoem.co.uk/image/3.gif[/img][/url]

 
At 3:54 PM, Anonymous Anonymous said...

parental control software keystroke http://buysoftwareonline.co.uk/product-36762/Lark-File-Encryption-1-2 white pages software download [url=http://buysoftwareonline.co.uk/es/product-36586/Microsoft-Windows-7-Ultimate-x32-Spanish]panasonic lumix dmc free software download[/url] windows microsoft software malicious removal
[url=http://buysoftwareonline.co.uk/category-200-203/Graphics-and-Publishing]Graphics & Publishing - Software Store[/url] dss file software
[url=http://buysoftwareonline.co.uk/es/product-31547/LittleSnapper-1-5-MAC][img]http://buyoem.co.uk/image/5.gif[/img][/url]

 
At 5:24 PM, Anonymous Anonymous said...

windows terminal service software http://buysoftwareonline.co.uk/product-36438/RERSoft-RER-Audio-Converter-3-7 smartphone money software [url=http://buysoftwareonline.co.uk/it/product-37091/Gilisoft-Ramdisk-4-1]ad aware software 6.0[/url] sewage treatment software
[url=http://buysoftwareonline.co.uk/product-37206/MemTurbo-4-1]MemTurbo 4.1 - Software Store[/url] administering licenses for rational software manua
[url=http://buysoftwareonline.co.uk/it/category-200-212/Multimediale-e-Divertimenti?page=3][img]http://buyoem.co.uk/image/3.gif[/img][/url]

 
At 5:34 PM, Anonymous Anonymous said...

[url=http://redbrickstore.co.uk/categories/erectile-dysfunction.htm][img]http://onlinemedistore.com/3.jpg[/img][/url]
guardian pharmacy shepparton http://redbrickstore.co.uk/products/desyrel.htm california board of pharmacy license 19558 [url=http://redbrickstore.co.uk/products/prilosec.htm]walmart pharmacy west kellogg[/url]
united pharmacy staffing http://redbrickstore.co.uk/products/accupril.htm pharmacy job offers [url=http://redbrickstore.co.uk/products/retin-a-0-02-.htm]retin a 0 02 [/url]
idaho pharmacy school http://redbrickstore.co.uk/products/torsemide.htm pharmacy resumes [url=http://redbrickstore.co.uk/products/chloroquine.htm]pharmacy times[/url]
designing a new hospital pharmacy http://redbrickstore.co.uk/products/eulexin.htm narcotic control regulations record storage pharmacy ontario [url=http://redbrickstore.co.uk/categories/hypnotherapy.htm]hypnotherapy[/url]

 
At 3:25 AM, Anonymous Anonymous said...

oZzy moved away some time ago, I miss his cock, and I'm always hungry for intercourse.
FUCK MY PUSSY!

Also visit my homepage hcg injections

 
At 3:39 AM, Anonymous Anonymous said...


Our updates Recent articles:

 
At 7:31 PM, Anonymous Anonymous said...

geotorelxzp loan consolidation
loan consolidation

 
At 8:20 AM, Anonymous Anonymous said...

How many men and women will truly make the most of all a hundred?


Here is my blog post; bowflex selecttech 552 dumbbells sale

 
At 7:57 PM, Anonymous Anonymous said...

Dumbbells are an amazing piece of body weight lifting equipment
due to the fact they can be so versatile.

Here is my webpage; click the next internet page

 
At 6:07 AM, Anonymous Anonymous said...

Dumbbells are absolute necessities if you'd like a well made toned body and buying adjustable dumbbells seems just like the ideal thing to perform, considering the dollars you may help you save in purchasing them.

Here is my homepage: bowflex selecttech dumbbells

 
At 4:58 AM, Anonymous Anonymous said...

Raise you towards the original place and repeat.

Feel free to visit my webpage :: home Exercise Equipment

 
At 6:13 AM, Anonymous Anonymous said...

Sad to say Bruce Lee died in the age of 32 underneath strange situation and controversy in his
mistresses property of a intended mind edema.

my blog ... Skip Navigation

 
At 7:42 AM, Anonymous Anonymous said...

Do you mind if I quote a couple of your posts
as long as I provide credit and sources back to your website?
My blog site is in the exact same niche as yours and my users would certainly benefit from
some of the information you provide here. Please let
me know if this alright with you. Many thanks!


Here is my web-site - workouts to improve vertical leap

 
At 3:12 PM, Anonymous Anonymous said...

A double quit is actually two notes played alongside one another.


my webpage - simply click the following page

 
At 8:54 PM, Anonymous Anonymous said...

Just before a person begins exercising employing dumbbells, having said that, one particular is advised to consult a doctor to ensure which they are during the appropriate condition to begin training safely.


Here is my web site ... free weights for sale used

 
At 1:15 PM, Anonymous Anonymous said...

I have been browsing online more than 4 hours today,
yet I never found any interesting article like yours. It's pretty worth enough for me. Personally, if all webmasters and bloggers made good content as you did, the web will be much more useful than ever before.

My web site ... website

 
At 4:14 PM, Anonymous Anonymous said...

If legitimate, that may be extremely enjoyable.


my webpage: bowflex selecttech 552

 
At 9:47 AM, Anonymous Anonymous said...

Ten years ago, many other exercising products businesses have come to test-out new equipment to be able being competitive during
the world current market.

Stop by my web blog - adjustable dumbbells

 
At 5:42 AM, Anonymous Anonymous said...

Since the admin of this web site is working, no question very soon it will
be well-known, due to its feature contents.

Also visit my blog post XRays Technician

 
At 11:32 PM, Anonymous Anonymous said...

All you need to do would be to the workout that you discover proper to have
the resistance.

My web-site ... Read A lot more

 
At 7:08 PM, Anonymous Anonymous said...

Pilates, Whole Health club, and several yoga poses
use body excess weight for resistance, and can be pretty efficient, too.


my web-site: adjustable weights

 
At 2:24 PM, Anonymous Anonymous said...

dating vs intelligence http://loveepicentre.com/success_stories/ famous contestants on the dating game
russian sexy girls dating [url=http://loveepicentre.com/contact/]profesioanl dating[/url] reliable online dating
blanchester dating [url=http://loveepicentre.com/contact/]dating toys toys software[/url] down load dating pro for free [url=http://loveepicentre.com/user/HONEYGRL/]HONEYGRL[/url] top ten states for dating

 
At 10:30 AM, Anonymous Anonymous said...

It can be essential to complete the appropriate
work outs for that ideal muscle mass groups.

My blog weight sets for sale

 
At 5:25 AM, Anonymous Anonymous said...

In general, components like CSS, HTML coding,
content management, programming are some of the few areas
concerned with web development service. Creation of content is based on the keywords with the help SEO
link building for the link wheel. It would be optimum thought to select the local SEO
service after checking the rank of their website.



Here is my weblog Référencement

 
At 10:01 AM, Anonymous Anonymous said...

dating with chldren http://loveepicentre.com/taketour/ internet dating hell
dating military navy shirt [url=http://loveepicentre.com/success_stories/]biracial dating service[/url] courting dating vietnamese
tall women short men dating [url=http://loveepicentre.com/success_stories/]dolphin dating[/url] free adult dating milf tampa florida [url=http://loveepicentre.com/user/marryjones66/]marryjones66[/url] sims dating sims

 
At 8:55 AM, Anonymous Anonymous said...

single parent free dating personals online http://loveepicentre.com/map/ dating for the unemployed
who is sophia bush dating [url=http://loveepicentre.com]christian dating wisdom[/url] show some dating magazines
furry men dating [url=http://loveepicentre.com/advice/]mckinney tx dating[/url] leyla dating group [url=http://loveepicentre.com/user/uk4rhema/]uk4rhema[/url] passionnate dating

 
At 4:21 PM, Anonymous Anonymous said...

who is venus dating http://loveepicentre.com futuristic dating of rocks
vampire social dating [url=http://loveepicentre.com/testimonials/]anime dating sim[/url] personnel dating sites in ontario
dating mxr pedal [url=http://loveepicentre.com/testimonials/]pa local dating[/url] daddy's rules for dating my daughter [url=http://loveepicentre.com/user/hammam1958/]hammam1958[/url] dating magazine article

 
At 11:08 PM, Anonymous Anonymous said...

You actually make it seem so easy with your presentation but I find this matter to
be actually something that I think I would never understand.
It seems too complicated and extremely broad for me. I'm looking forward for your next post, I will try to get the hang of it!

My web page ... live roulette

 

Post a Comment

<< Home