PDA

View Full Version : System Restore



Pages : [1] 2 3

LaRoza
January 26th, 2008, 11:15 AM
sysres has obtained its original goal. It now has all the features and a .deb installer, plus an icon and menu entry.

For the code, see https://launchpad.net/sysres

For the .deb, you can get 1.0 here: https://launchpad.net/sysres/trunk/1.0

The future holds uncertainity, and we hope to enhance it without any feature creep.

popch
January 26th, 2008, 11:43 AM
While working on a slightly similar project I came to the conclusion that a very robust and simple way to do that consists of taking a snapshot of everything in certain places and just offering to restore each item as it was just after installing. This would encompass places like /etc, home, and so on.

This is based on the observation that it is easier to detect 'places' (directories) which hold things worth restoring than to enumerate which things you would actually need.

LaRoza
January 26th, 2008, 11:48 AM
While working on a slightly similar project I came to the conclusion that a very robust and simple way to do that consists of taking a snapshot of everything in certain places and just offering to restore each item as it was just after installing. This would encompass places like /etc, home, and so on.

This is based on the observation that it is easier to detect 'places' (directories) which hold things worth restoring than to enumerate which things you would actually need.

My goal is to have a simple windows with options to backup local settings, grub settings, video settings and perhaps others. It is simple to make, but I am looking for specific files or settings to backup.

I want it to work on working systems, and be able to have more than one restore point to roll back to. This is rather simple, of course.

I'll stick to the settings I listed until I get it working. (Just started it, and it is 0546, and I haven't slept yet, so it is still an infant idea). I have it creating restore points for GNOME at the moment. Just need to be able to restore from them. (A reverse of the creating the restore point)

popch
January 26th, 2008, 12:00 PM
Looking at individual things worth saving and restoring, those come to mind:

LAN and most especially WLAN settings
Desktop effect settings
Access settings for the SAMBA client
User account data
Bookmarks
Cookies
Mail account settings
ISP related settings for accessing the internet

Once you start thinking along those lines you can hardly stop any more, I fear. Where do you draw the line between 'settings' and 'data'?

LaRoza
January 26th, 2008, 12:04 PM
Looking at individual things worth saving and restoring, those come to mind:

LAN and most especially WLAN settings
Desktop effect settings
Access settings for the SAMBA client
User account data
Bookmarks
Cookies
Mail account settings
ISP related settings for accessing the internet

Once you start thinking along those lines you can hardly stop any more, I fear. Where do you draw the line between 'settings' and 'data'?

I am making a system restore program, not a backup program.

I am sticking with settings for the system, not applications (except GNOME). Tarring up the home directory is not my goal (simpler, but not my goal).

I think I am going to stick with what I listed and perhaps the network settings. Thanks for the suggestions.

popch
January 26th, 2008, 12:09 PM
I am making a system restore program, not a backup program..

I do not quite understand the objectives, then. Just out of curiosity: Where do the settings come from which you intend to restore? The original out-of-the-box settings?

LaRoza
January 26th, 2008, 12:16 PM
I do not quite understand the objectives, then. Just out of curiosity: Where do the settings come from which you intend to restore? The original out-of-the-box settings?

Windows System Restore is the basis for this.

The settings are whatever the user decides save.

One could to the original settings, but this could be used to snapshot the system when it is working.

Basically, when one adds new hardware (such as a video card) and then reconfigures xorg (sudo dpkg-reconfigure -phigh xserver-xorg) they should make a backup, or when editing fstab, etc. This does everything in one step.

It is meant to abstract the configuration. It is for those used to Windows (if I get it working)

The motivations for this:

* Boredom. I haven't slept at all this night (the sun will be rising in an hour or two) and have nothing to do
* Practice. Need to program something
* Mildly useful. I see system restore posts on occasion like http://ubuntuforums.org/showthread.php?t=418309
* Why not? I have nothing else to do. (Except writing my book, which I am in no hurry to finish)

popch
January 26th, 2008, 12:25 PM
Ah, now I understand.

Good luck, then, and have fun.

Douglas Adams used to take baths for hours when he was in no particular hurry to finish his books. Writing computer programs in that kind of situation is definitely a new one for me. Good luck, there too.

LaRoza
January 26th, 2008, 12:53 PM
Ah, now I understand.

Good luck, then, and have fun.

Douglas Adams used to take baths for hours when he was in no particular hurry to finish his books. Writing computer programs in that kind of situation is definitely a new one for me. Good luck, there too.

Douglas Adams, one of my favourite writers :)

I have no publishing company (fortunately or unfortunately) with deadlines for me.

I always code to relax. The book's subject is a bit depressing, to write at least, so I don't want to immerse myself in it.

stevescripts
January 26th, 2008, 05:24 PM
LaRoza

Sounds like (yet another) worthwhile effort. Keep up the good work!

Steve

LaRoza
January 26th, 2008, 05:45 PM
LaRoza

Sounds like (yet another) worthwhile effort. Keep up the good work!

Steve

I hope to make it useful.

I am making it have two modes, one for root, and one for user. Adding GUI after, trying to get a good design. This time, I am going to think it through a bit, and not use the development method I normally use.

(Still haven't gone to bed....)

pro003
January 26th, 2008, 10:50 PM
Well good like with that!

I was seeking all day long for a linux/ubuntu sowtware which could be used to restore my system on ubuntu gutsy and there wasn't anything like that on internet, of course excluding backup programs but that's only backup, as you've mentioned before.

Although, there was a guide for making a system backup and restore using a command shell, you might want to take a look at it...


http://ubuntuforums.org/showthread.php?t=81311


Cheers

LaRoza
January 26th, 2008, 10:54 PM
That command is overkill.

The restore files that my program makes are small, less than 5 kb at the moment.

I am attempting to mimic the Windows System Restore.

If you have had to or wanted to Restore you system, what settings caused the issue? (So I can make sure my app addresses that issue)

bschleusner
January 26th, 2008, 10:57 PM
apt-get sources would be nice...

LaRoza
January 26th, 2008, 11:01 PM
apt-get sources would be nice...

Ok :)

Added it now.

LaRoza
January 27th, 2008, 03:27 AM
The development so far:

Most of the basics are down, except, the ability to actually restore. I am saving that for a VM, because it will have to overwrite files I'd rather keep and don't want to test it with. The creation of restore points is easy and functional, and the ability to create two different types of restore points, and choice to restore from them and view and select restore points is working.

The next thing is the GUI.

I want it to work easily on Ubuntu, so I am going towards Tkinter (don't flame), and might just use EasyGUI for now, if it has one feature I want.

It generates a list of restore points that are found, and I want to make them selectable. A bullet list would be ideal. Is there an simple way to make a widget that allows a user to select from a list? Hopefully, a pre built solution. I don't like making GUI's, because they are boring, and I actually like command line input and output.

rabbit73
January 27th, 2008, 04:23 AM
I just turned up this post after a search on "system restore ". I was looking for just such an app since I finished reinstalling everything about an hour ago. I totally hosed my system attempting to install cairo dock and couldn't reconfigure xserver. I just manually copied the fstab and xorg files to my home folder (different partition) with .safe extensions. A utility with a one keystroke solution and multiple restore points would have helped immensely. Good luck with it!

LaRoza
January 27th, 2008, 04:30 AM
I just turned up this post after a search on "system restore ". I was looking for just such an app since I finished reinstalling everything about an hour ago. I totally hosed my system attempting to install cairo dock and couldn't reconfigure xserver. I just manually copied the fstab and xorg files to my home folder (different partition) with .safe extensions. A utility with a one keystroke solution and multiple restore points would have helped immensely. Good luck with it!

It is almost operational, not bad for one day (night) and accidently deleting my source file...

I see all that you listed is already part of it, I am going to add support for KDE and Xubuntu as well, easy to do. I just need to find out the all the configuration directories to use.

LaRoza
January 30th, 2008, 01:26 PM
Updates:

* It is pretty functional, except for actually restoring.
* I am adding a GUI to most of it, unfortunately, my design requires it to be modified, so it is half GUI and half CLI

It will need people to test it soon, any takers? The biggest flaw will be the UI, I am no expert in such designs and rather dislike coding GUI's, so it is a clunky design. If anyone would want to make it pretty after looking at, go ahead. The one requirement is that it uses Tkinter.

xlinuks
January 30th, 2008, 02:18 PM
I like creating GUIs, but I can only create them in Java.. as far as I understand you use Python.
I find your idea very interesting (and useful), and I guess you're right that we need a restore program rather than a backup one (which would require way too much space to be efficient)
I would like it to restore (in a user friendly way) at least these:
1) /etc/fstab
2) /etc/X11/xorg.conf
3) the Gnome settings from my HOME directory (file associations, etc)

LaRoza
January 30th, 2008, 02:25 PM
I like creating GUIs, but I can only create them in Java.. as far as I understand you use Python.
I find your idea very interesting (and useful), and I guess you're right that we need a restore program rather than a backup one (which would require way too much space to be efficient)
I would like it to restore (in a user friendly way) at least these:
1) /etc/fstab
2) /etc/X11/xorg.conf
3) the Gnome settings from my HOME directory (file associations, etc)

I use many languages, for this, I am using Python and Tkinter.

Those are already part of it :) Glad I know I knew what to include.

seventhc
January 30th, 2008, 02:36 PM
Updates:

It will need people to test it soon, any takers?
I can give it a test. :)

LaRoza
January 30th, 2008, 02:40 PM
I can give it a test. :)

Thanks.

It will require hosing your system with no backups for it to be a true test though.

Just kidding, no one has to do anything during the testing they don't want to. The creation of restore points is entirely safe, unless you have a file named the same as the system restore files do which is unlikely, because they have a funny name, a custom section and the date in their title.

seventhc
January 30th, 2008, 02:44 PM
I can hose this system, nothing on it, so at most if the restore fails I'll just reinstall it.
anything that is important is already saved externally, so no worries.

edit..
would this be something like...create a resore point, maybe install some stuff, then try to restore it to before the install??

LaRoza
January 30th, 2008, 02:49 PM
I can hose this system, nothing on it, so at most if the restore fails I'll just reinstall it.
anything that is important is already saved externally, so no worries.

edit..
would this be something like...create a resore point, maybe install some stuff, then try to restore it to before the install??

Perhaps it could, it won't do a few system rollback, only settings.

If one manages to bork their xorg.conf, menu.lst, or their gnome settings, this could restore it.

It basically mimics the Windows System Restore (which just backups the registry) and saves system settings.

seventhc
January 30th, 2008, 03:03 PM
If one manages to bork their xorg.conf, menu.lst, or their gnome settings

Ok, I think I can manage that. ;)

popch
January 30th, 2008, 03:17 PM
Wouldn't it be useful for testing purposes if the application had a separate option 'bork system' with sub-options offering to bork specific parts?

LaRoza
January 30th, 2008, 03:21 PM
Wouldn't it be useful for testing purposes if the application had a separate option 'bork system' with sub-options offering to bork specific parts?

I wouldn't want to write any destructive code (those Windows scripts didn't count).

Right now, I haven't written the code to restore, just everything up to that with just a message saying it isn't done.

I also ran into GUI problems, and I have to fix that. Of course, if anyone wants to test the CLI code I will give that to. The code for the core of it is separate from the use of it.

popch
January 30th, 2008, 03:44 PM
I wouldn't want to write any destructive code

I understand your consideration but think it would be less dangerous to run some carefully designed and selectively destructive script than to rely on the people testing the restore to reliably damage the proper parts of their system.

It would not be a perfectly complete test accounting for all imaginable situations. Still it would reliably test the basic functionality.

Besides, intentionally borking the system with carefully designed code can do it in a way which is recoverable, while manually doing so might leave your system in an unpredictable state.

LaRoza
January 30th, 2008, 03:47 PM
I understand your consideration but think it would be less dangerous to run some carefully designed and selectively destructive script than to rely on the people testing the restore to reliably damage the proper parts of their system.

It would not be a perfectly complete test accounting for all imaginable situations. Still it would reliably test the basic functionality.

Besides, intentionally borking the system with carefully designed code can do it in a way which is recoverable, while manually doing so might leave your system in an unpredictable state.

Perhaps just renaming the files in question, or changing your theme would be more suitable for testing. Then, for serious work, I'd use a VM.

This is meant to restore still working, if damaged systems.

Perhaps a rename script would be in order, which can undo everything easily. (It would effectively backup the files too)

seventhc
January 30th, 2008, 03:48 PM
Well, instead of writing destructive code, maybe put a file in there with some suggestions of what to bork or how you want it borked etc. This way you aren't writing malicious code, but still getting to test it in the environment that would be more geared towards the end result.

LaRoza
January 30th, 2008, 03:49 PM
Well, instead of writing destructive code, maybe put a file in there with some suggestions of what to bork or how you want it borked etc. This way you aren't writing malicious code, but still getting to test it in the environment that would be more geared towards the end result.

The function of the script is simple and easy to verify. The UI is what concerns me.

The biggest unknown to me is how to restore, as I never had to do what it is going to do. It is a simple procedure, but one I'd rather test. It wouldn't be good if /etc/fstab was restored, but everything else in /etc was deleted in the process.

xlinuks
January 30th, 2008, 04:11 PM
Well, for instance if we take /etc/fstab:
I guess for now it would be good if we just overwrite the file with the backed-up one.
But later, I think, there should be some code that would actually check what volumes the user has on his computer and based on this info create on the fly a new fstab file to replace the old one. The reason I'm saying this is cause I lost a partition using GParted (it unmounted it but I couldn't find a way to mount it back, a bug in GParted I guess), so after reboot Gutsy threw me to a root console to "repair the filesystem". That's why IMO a simple restore of the backed up file wouldn't be a complete feature. The (your) app should scan (correctly) for volumes (such as /dev/sda3, /dev/sda4 ), at least starting at some future release..
It should not include (into the /etc/fstab) the volumes that are removable drives - which IMO is pretty hard to implement if one doesn't have experience in such domains (thus I mean programmers like me)
Just my 0.02$

LaRoza
January 31st, 2008, 12:04 AM
Well, for instance if we take /etc/fstab:
I guess for now it would be good if we just overwrite the file with the backed-up one.
But later, I think, there should be some code that would actually check what volumes the user has on his computer and based on this info create on the fly a new fstab file to replace the old one. The reason I'm saying this is cause I lost a partition using GParted (it unmounted it but I couldn't find a way to mount it back, a bug in GParted I guess), so after reboot Gutsy threw me to a root console to "repair the filesystem". That's why IMO a simple restore of the backed up file wouldn't be a complete feature. The (your) app should scan (correctly) for volumes (such as /dev/sda3, /dev/sda4 ), at least starting at some future release..
It should not include (into the /etc/fstab) the volumes that are removable drives - which IMO is pretty hard to implement if one doesn't have experience in such domains (thus I mean programmers like me)
Just my 0.02$

I think you have to understand the program design for this.

It restores to a previous state, it doesn't fix anything.

It is solely meant to undo system changes, not fix or diagnose them.

Cappy
January 31st, 2008, 12:22 AM
The biggest problem with it is that if someone messes up the system config they probably aren't going to be able to use this program if it is a self run shell script, hard-to-find application, or not automatically backing things up already.

My opinion is that either
A) Upon encountering a problem with one of the backed up files this script replaces the broken file. This is done in the background. The user is informed that the settings were replaced because they were corrupt.
B) Upon encountering a problem the user can boot up an ubuntu CD. The program can be run off the Live CD and you can choose to restore the state of the newest modified files on the hard drive (or any media obviously). This would require the script making it onto the Ubuntu CD or the Ubuntu repos.

These are both assuming worst case where a normal user cannot boot into X .. possibly due to broken X or driver settings. Possibly a kernel upgrade problem. These are probably the kind of situations people would benefit from a backup system the most.

Making the "restore" function work easily when things are broken is going to be a big challenge.

LaRoza
January 31st, 2008, 12:34 AM
The biggest problem with it is that if someone messes up the system config they probably aren't going to be able to use this program anyway.

My opinion is that either
A) Upon encountering a problem with one of the backed up files this script replaces the broken file. This is done in the background. The user is informed that the settings were replaced because they were corrupt.
B) Upon encountering a problem the user can boot up an ubuntu CD. The program can be run off the Live CD and you can choose to restore the state of the newest modified files on the hard drive (or any media obviously). This would require the script making it onto the Ubuntu CD or the Ubuntu repos.

Making the "restore" function work easily when things are broken is going to be the biggest challenge.

Actually, this agonized me. The problem:

* I can only assume the system has a home directory
* I must store the restore points somewhere
* If something hoses the home, the restore points will be gone to.

It is perfectly functional from any media, including Live CD's, so far. If nothing else, it creates a backup of the settings which any user can manually put back.

Now that you bring it up, it is a good thing to consider when impementing the restore feature (which isn't done yet), because I have to take into account this script might be running from a different user/system/cd.

Because I am restricting it to standard Python modules (now my decision to use Tkinter makes sense), and it is not complex and runs fine from anywhere on my system.

Of course, if someone had made restore points, they don't need to use my program to restore from them. If they are savvy enough to run a program off a live cd to fix a system, they probably understand that it is simple to untar the restore points.

My main focus is on new users:

* I just tried to install <weird package> and now everything looks funny
* I tried editing my fstab (what is it anyway?) and now I can't see my Windows partition
* I tried a new video card, and I don't like it, and when I removed it, everything looks big

and other configuration issues that are easily solved by making backups and knowing what you are doing.

cprofitt
January 31st, 2008, 12:34 AM
I am making a system restore program, not a backup program.

I am sticking with settings for the system, not applications (except GNOME). Tarring up the home directory is not my goal (simpler, but not my goal).

I think I am going to stick with what I listed and perhaps the network settings. Thanks for the suggestions.

Remember that you can take an inventory of installed packages with Synaptic that can be imported in Synaptic to re-install them as well... not sure if that is something you would want, but it would be appreciated by many I think.

LaRoza
January 31st, 2008, 12:37 AM
Remember that you can take an inventory of installed packages with Synaptic that can be imported in Synaptic to re-install them as well... not sure if that is something you would want, but it would be appreciated by many I think.

Could you explain that? I know one can get all the packages installed with a command (forget it though) is there a a file to parse?

Once I get this to work (GUI issues and restore not finished now), I will be very open to adding to it and probably have a little page for it somewhere.

mssever
January 31st, 2008, 08:28 AM
I have to mention that I haven't read the entire thread. I hope I'm not being redundant.

I have a couple thoughts about this program. First, I think that it's a great idea. Back when I used Windows, System Restore was a lifesaver. (Personally, I find Windows easier to hose accidentally than Linux, but maybe that's just me.)

I would like the ability to manually specify files to be included in the restore. Some use cases:
On my server, I have Apache's configuration heavily customized, so losing that customization would be more painful than losing fstab. Of course, this is approaching the goals of a backup program.
Suppose I want to experiment with some major reconfiguration of my machine that is too extensive to rely on my ability to remember everything I changed. The ability to simply add that stuff to my restore data set would give me the freedom to explore without worrying about losing important configuration if I mess up.Another thing: Have you considered making a text-based version, as well? I imagine that one common use case would be someone who hosed X. They'd likely end up booting into single-user mode, and wouldn't be able to access a GUI program. But they'd benefit from curses. Presumably, if you try to create a Tkinter window when you're not running X, you'll get an exception. You could then catch that exception and launch the curses interface. (I guess you're dead set on Tkinter. I'm pretty much dead set against it because it's terribly ugly and its menus are broken. I'd much prefer GTK. But, it's your program, not mine.)

Finally, will this program automatically create restore points every so often like the Windows program does?

seventhc
January 31st, 2008, 03:23 PM
IMO Tkinter will work on everyones machine, once you use anything different, then it might no longer work out of the box. Of course I may be completely wrong as I am new to python and programming in general.
I do however think it's a good idea for it to default to a text based version if tkinter can't start due to problems with x.
As far as looks are concerned I don't think that will concern anyone using it as most likely they will be thinking about a hosed system and wanting it back.

LaRoza
January 31st, 2008, 03:39 PM
I have a couple thoughts about this program. First, I think that it's a great idea. Back when I used Windows, System Restore was a lifesaver. (Personally, I find Windows easier to hose accidentally than Linux, but maybe that's just me.)

I would like the ability to manually specify files to be included in the restore. Some use cases:
On my server, I have Apache's configuration heavily customized, so losing that customization would be more painful than losing fstab. Of course, this is approaching the goals of a backup program.
Suppose I want to experiment with some major reconfiguration of my machine that is too extensive to rely on my ability to remember everything I changed. The ability to simply add that stuff to my restore data set would give me the freedom to explore without worrying about losing important configuration if I mess up.Another thing: Have you considered making a text-based version, as well? I imagine that one common use case would be someone who hosed X. They'd likely end up booting into single-user mode, and wouldn't be able to access a GUI program. But they'd benefit from curses. Presumably, if you try to create a Tkinter window when you're not running X, you'll get an exception. You could then catch that exception and launch the curses interface. (I guess you're dead set on Tkinter. I'm pretty much dead set against it because it's terribly ugly and its menus are broken. I'd much prefer GTK. But, it's your program, not mine.)

Finally, will this program automatically create restore points every so often like the Windows program does?

Windows uses a central registry which is a big binary file that is easy to mess with. Any body interested in creating a piece of malware should exploit the registry.

It would be easy to add a custom file or directory, I will add that soon.

I am ahead of you :) I wrote it entirely as CLI at first to get the logic down, then, in my way, I had to do a slight redesign for the GUI. I made the GUI (warning: I am not a UI expert and dislike GUI coding), and last night added the ability to use it in CLI for that very reason (no X) and the fact I still like the CLI better. It makes no sense to me to have a GUI for this, but you know how some people are.

I prefer wxWidgets, however, Tkinter comes with standard Python and I am not going to have any requirements beyond what is standard.

The way to use it in the CLI is to have a command line option. Didn't code that part yet...

You could set it to do that, however, I see no reason to. If anyone want regular backups, they can automate it themselves. Linux isn't Windows and doesn't need to have backups of its registry every minute.

Right now, my home directory is filled with restore points (funny named files) because half the time I test it, I create a new one. I don't want to flood another users home directory.

The restore points are going to be stored in a directory (probably hidden) soon. I haven't coded that part yet.

LaRoza
January 31st, 2008, 03:41 PM
IMO Tkinter will work on everyones machine, once you use anything different, then it might no longer work out of the box. Of course I may be completely wrong as I am new to python and programming in general.
I do however think it's a good idea for it to default to a text based version if tkinter can't start due to problems with x.
As far as looks are concerned I don't think that will concern anyone using it as most likely they will be thinking about a hosed system and wanting it back.

That is why I chose it.

It has a CLI version, that can be started on the command line.

It looks "ok", and is using the EasyGUI module. It isn't good looking, but I am, and that is what is important.

psychok7
February 1st, 2008, 12:33 PM
any ideia when ur super program will be ready?? i think its one of the most important features ubuntu should have, even by default. please let us know when youll get it done, the name, and the site were we can get it. oh one question. will this be the first attempt anyone has ever made for system restore on ubuntu?

pmasiar
February 1st, 2008, 02:03 PM
Besides, intentionally borking the system with carefully designed code can do it in a way which is recoverable, while manually doing so might leave your system in an unpredictable state.

I am not sure why you are afraid of manual borking. You know which files were backed up, right? You can even see where they are copied, right? And I hope that directory structure and filenames are same as in original system, just root directory has funny name, right?

So start up your trusted mc, find the files, and bork some file. Reboot to see system borked. Then try restore backup: if system is not unborked, unbork the file you borked manually using mc again.

Why you need to automate the "creative" part: which file to bork, and how?

pmasiar
February 1st, 2008, 02:05 PM
It looks "ok", and is using the EasyGUI module. It isn't good looking, but I am, and that is what is important.

:-)

Most important thing in development is to have your priorities right, and you obviously do.

popch
February 1st, 2008, 02:11 PM
I am not sure why you are afraid of manual borking. You know which files were backed up, right? You can even see where they are copied, right? And I hope that directory structure and filenames are same as in original system, just root directory has funny name, right?

So start up your trusted mc, find the files, and bork some file. Reboot to see system borked. Then try restore backup: if system is not unborked, unbork the file you borked manually using mc again.

Why you need to automate the "creative" part: which file to bork, and how?

I suggested this because LaRoza was (still is?) looking for people who can test his program.

Under that condition, I feel that it would be safer for the would-be testers if the program included a sort of testing suite which included the 'borking' as well. I also feel that not all would-be testers would be savvy enough to take sensible measures before testing. I can kind of imagine the dialog between LaRoza and someone who thought that the restorer could work miracles and then found out that it could not.

sayakb
February 1st, 2008, 02:13 PM
LaRoza

Sorry, couldn't read all the posts in this thread.. Just posting what I screw up mostly..
1. I often install some or the other "wrong package" which gifts me a "broken cache" situation.. All installed packages will be restored with your program.
2. Graphics.. as you already mentioned.. I screw the X server or my desktop composite mgr..
3. GRUB.. as you said.
4. And all system settings but not files.

It would be a charm if accidentally, some system files are lost and they could be revived by your program.

If my points are redundant and they were already discussed before, please ignore.

pmasiar
February 1st, 2008, 03:11 PM
My main focus is on new users:
* I just tried to install <weird package> and now everything looks funny
* I tried editing my fstab (what is it anyway?) and now I can't see my Windows partition
* I tried a new video card, and I don't like it, and when I removed it, everything looks big


Because I know you are smart hacker without formal education, let me point out for you that you just reinvented http://en.wikipedia.org/wiki/Use_case - a way to gather specification and describe parameters of solution. Msserver mentioned other interesting usecases, like borked X and no GUI, noTkinter.

What you want to do is to get a wiki and flesh out usecases with enough details (and use human names for them) so you can better imagine expectation and skill level of each user, so you will develop not a script, but application. Formal CompSci education sometimes does make solving problem simpler :-)

So even if you have to reinvent the wheel, it might be hexagon or octagon, and not the usual square :-)

LaRoza
February 1st, 2008, 05:21 PM
I suggested this because LaRoza was (still is?) looking for people who can test his program.



I understand. I am sort of hoping for testers that know what they are doing (and therefore don't need the program) so they can tell if it is technically useful.



Sorry, couldn't read all the posts in this thread.. Just posting what I screw up mostly..
1. I often install some or the other "wrong package" which gifts me a "broken cache" situation.. All installed packages will be restored with your program.


I believe the package manager can fix that, so I am not going to reinvent the wheel, unless it is a file that can be backed up, I am not going to put it in the program (yet anyway)

LaRoza
February 1st, 2008, 05:26 PM
Because I know you are smart hacker without formal education, let me point out for you that you just reinvented http://en.wikipedia.org/wiki/Use_case - a way to gather specification and describe parameters of solution. Msserver mentioned other interesting usecases, like borked X and no GUI, noTkinter.

What you want to do is to get a wiki and flesh out usecases with enough details (and use human names for them) so you can better imagine expectation and skill level of each user, so you will develop not a script, but application. Formal CompSci education sometimes does make solving problem simpler :-)

So even if you have to reinvent the wheel, it might be hexagon or octagon, and not the usual square :-)

I have no formal education in Computer Science or Programming, I do have a degree (recently graduated) in Criminal Justice.

That said, yes, your advice is very good. If I weren't some person sitting in my room, and looking for a job and ordering weird things from amazon, this is the latest (http://www.amazon.com/Toy-Vault-Cthulhu-small-plush/dp/B0006FUAD6/ref=pd_ys_qtk_k2a?pf_rd_p=233144501&pf_rd_s=center-1&pf_rd_t=1501&pf_rd_i=home&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=1EHPZP9XPW360RC35542), and was a real programmer, I might make this a real project. If I can finish it to my satisfaction, I will probably make it available with a site/wiki of its own.

I am not going to get anyone's help on it, until I have a working application.

LaRoza
February 1st, 2008, 05:28 PM
any ideia when ur super program will be ready?? i think its one of the most important features ubuntu should have, even by default. please let us know when youll get it done, the name, and the site were we can get it. oh one question. will this be the first attempt anyone has ever made for system restore on ubuntu?

It is sort of ready now. Of course, it doesn't restore yet, that is the last thing that needs to be done.

I don't know if it is the first, it certainly isn't hard to do.

I will let it be known when it is ready for testing.

sayakb
February 1st, 2008, 05:34 PM
I understand. I am sort of hoping for testers that know what they are doing (and therefore don't need the program) so they can tell if it is technically useful.



I believe the package manager can fix that, so I am not going to reinvent the wheel, unless it is a file that can be backed up, I am not going to put it in the program (yet anyway)

Thats not I exactly mean.. The Windows system restore keeps a track of installed/removed programs.. when we attempt to repair a broken package, it often removes certain important packages, including ubuntu-desktop, panels etc..When we restore linux to any previous state, all the packages installed at that point would be restored back and any newly installed/removed packages will not be valid. Its your wish ofcourse what you want to include, its your own code :D

LaRoza
February 1st, 2008, 05:41 PM
Thats not I exactly mean.. The Windows system restore keeps a track of installed/removed programs.. when we attempt to repair a broken package, it often removes certain important packages, including ubuntu-desktop, panels etc..When we restore linux to any previous state, all the packages installed at that point would be restored back and any newly installed/removed packages will not be valid. Its your wish ofcourse what you want to include, its your own code :D

If the package manager can't fix it, I doubt I could.

I am a beginner in programming (it will be one year later this month).

Windows also doesn't have a package manager, and uses a single registry. Any time an application is installed, it makes changes to the registry (this is one reason why viruses are so easy to make, and so much fun), in Linux, the configurations are in text files.

I never had problems fixing broken packages. Could you explain the issue better? This also restores the package sources list.

pmasiar
February 1st, 2008, 06:14 PM
I have no formal education in Computer Science or Programming, I do have a degree (recently graduated) in Criminal Justice.


Yes, I know, sorry for misunderstanding.

I hope you will not prosecute me, honestly I just mis-spoke. :-)

I just wanted to show you (and others) that even in CompSci, an area where so many self-learned hackers happily prosper, formal CompSci education might be real positive.

LaRoza
February 1st, 2008, 06:19 PM
I just wanted to show you (and others) that even in CompSci, an area where so many self-learned hackers happily prosper, formal CompSci education might be real positive.
Yes, learning the language syntax is easy. I now have books and references for the more important topics. I would have been nice to have a bit of education on project management, and algorithms and data structures, and others.

Looking at my code for this project, I am sure I am breaking a few rules. The number one is my total lack of comments.

sayakb
February 1st, 2008, 06:50 PM
I dun think that it needs further highlighting :(
When we have a broken cache, each time, when trying to fix it, it removed all my necessary packages (because of broken libc6 package) and those removed packages refused to be re-installed..

LaRoza
February 1st, 2008, 07:00 PM
I dun think that it needs further highlighting :(
When we have a broken cache, each time, when trying to fix it, it removed all my necessary packages (because of broken libc6 package) and those removed packages refused to be re-installed..

What caused this problem?

mssever
February 1st, 2008, 07:52 PM
I dun think that it needs further highlighting :(
When we have a broken cache, each time, when trying to fix it, it removed all my necessary packages (because of broken libc6 package) and those removed packages refused to be re-installed..
Recovering from a broken libc6 situation is the job of the package manager--especially since it isn't a trivial situation. However, it might be nice if System Restore could store a list of currently installed packages at each restore point so the user could, after doing something that borked their installed packages, do something like
sudo aptitude install $(system-restore --list-packages --restore-point=foo)This is a very real scenario. Shortly after I started using Ubuntu and hadn't really learned my way around APT yet, I did something that caused aptitude to decide to uninstall much of KDE plus a number of other things, which I didn't notice until too late. I don't know what I did wrong, and I haven't had problems with aptitude lately--probably because I know enough now to not make whatever mistake I made earlier.

Msserver mentioned other interesting usecases,
My nick is mssever, not msserver. :) It's based on the standard username formula at my first job (first initial, middle initial, first five letters of last name), not a Microsoft server.

LaRoza
February 1st, 2008, 07:59 PM
Could someone tell me where the currently installed packages are listed?

mssever
February 1st, 2008, 08:14 PM
Could someone tell me where the currently installed packages are listed?

After looking around a bit, it appears that /var/lib/dpkg/status has that info. It doesn't appear to list whether a package was automatically installed, though--which would be nice info to maintain.

pmasiar
February 1st, 2008, 08:14 PM
My nick is mssever, not msserver. :) It's based ... not a Microsoft server.

I apologize to associate you with evil! I was always curios: such a smart guy (or gal as might be the case) with such a nick. It is well known that people raed olny fisrt and lsat leettrs of any wrod, and any premuatatoin isnide are esay to sikp over. :-)

mssever
February 1st, 2008, 09:06 PM
such a smart guy (or gal as might be the case)Guy

It is well known that people raed olny fisrt and lsat leettrs of any wrod, and any premuatatoin isnide are esay to sikp over. :-)

Yes, I've had to look up how to spell your nick several times, due to omitting letters in my attempted pronunciation of it.

LaRoza
February 1st, 2008, 09:16 PM
Yes, I've had to look up how to spell your nick several times, due to omitting letters in my attempted pronunciation of it.

People seem to mess my name up too.

(In real life, with my real name, I get the most odd spellings. They even got it wrong on my degree!)

LaRoza
February 2nd, 2008, 02:57 PM
Due to some suggestions in this thread, I have started a small GUI script for backing up and restoring packages.

It will not be part of the System Restore program, but I may add the option to run it from it.

It will make a list of installed packages, and save it to a file, and then be able to restore the system from that list.

It is not in Python, that is why it is not part of System Restore.

DamagePlan
February 2nd, 2008, 11:02 PM
This sounds neat LaRoza. What will the GUI backup script be coded in, if you don't mind me asking?

LaRoza
February 3rd, 2008, 03:12 AM
This sounds neat LaRoza. What will the GUI backup script be coded in, if you don't mind me asking?

Bash.

It is finished, just need to do a little more testing.

ruy_lopez
February 3rd, 2008, 07:48 AM
It is finished, just need to do a little more testing.


Sounds good. Care to share with us?

LaRoza
February 3rd, 2008, 07:49 AM
Sounds good. Care to share with us?

I have to run test it some more, which I am going to do in a VM. I am going to try to recreate what I expect it to fix.

Give it a week at the most.

seventhc
February 24th, 2008, 07:34 PM
I was curious as to the progress on this?
Any luck?

LaRoza
February 24th, 2008, 07:37 PM
I was curious as to the progress on this?
Any luck?

I actually stopped for no particular reason.

The development pretty far along, but I haven't worked on it in a while.

I will post the package restore script, as that works I think soon.

seventhc
February 24th, 2008, 07:40 PM
Ok, thanks. :)

Vadi
February 24th, 2008, 08:55 PM
Meanwhile, I'm using this awesome thing called TimeVault. It's somewhat similar.

seventhc
February 24th, 2008, 09:00 PM
Meanwhile, I'm using this awesome thing called TimeVault. It's somewhat similar.
That sounds interesting too, I'll be checking that out as well.
Never actually heard of it before.

LaRoza
August 6th, 2008, 06:48 AM
Well, I submitted the project to sourceforge.net. It should be accepted/rejected within a few days. I will keep you all posted.

https://sourceforge.net/projects/sysres/

nvteighen
August 6th, 2008, 09:24 AM
Isn't this thread necromancing, LaRoza? ;)

Seriously: good luck!

seventhc
August 6th, 2008, 01:08 PM
Well, I submitted the project to sourceforge.net. It should be accepted/rejected within a few days. I will keep you all posted.

https://sourceforge.net/projects/sysres/
This will be great, I hope they accept it. I can't check it now b/c permission denied. :(
Any idea on how long the approval process takes?

adam_kimber
August 6th, 2008, 02:10 PM
Remember that you can take an inventory of installed packages with Synaptic that can be imported in Synaptic to re-install them as well... not sure if that is something you would want, but it would be appreciated by many I think.

I was going to suggest that instead of using synaptic you could use a dpkg command to save the current state of installed packages. Not sure if you require this in your program.

I have been working on a backup and restore script for my Ubuntu machine. I am no programmer so I have got rather stuck. I wanted to backup the main settings and my installed packages so if i needed to flatten for any reason I could get back to where i was very quickly. I can give you what I have so far (not much) if its any help. It currently backsup and restores to one state, does not do multiples.

LaRoza
August 6th, 2008, 05:13 PM
Isn't this thread necromancing, LaRoza? ;)

Seriously: good luck!
No. It is completely on topic. Just took a while to finish (most of the time was inactivity).


This will be great, I hope they accept it. I can't check it now b/c permission denied. :(
Any idea on how long the approval process takes?
1-3 days.


I was going to suggest that instead of using synaptic you could use a dpkg command to save the current state of installed packages. Not sure if you require this in your program.

I have been working on a backup and restore script for my Ubuntu machine. I am no programmer so I have got rather stuck. I wanted to backup the main settings and my installed packages so if i needed to flatten for any reason I could get back to where i was very quickly. I can give you what I have so far (not much) if its any help. It currently backsup and restores to one state, does not do multiples.

Here is my shell script for making restore points for packages. It has a GUI, you have to have zenity for it to work.

It was originally going to be bundled with sysres, but it is separate, although it uses the same directory for restore points.


#!/bin/bash

#sysres: Linux system restore program.
#Copyright (C) 2008 LaRoza

#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
#(at your option) any later version.

#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.

#You should have received a copy of the GNU General Public License
#along with this program. If not, see <http://www.gnu.org/licenses/>.

nochange()
{
zenity --info --text "Package Backup and Restore Halted -- No Changes Made";
exit 0;
}

restore()
{
if [ $UID -eq 0 ]
then
name=$(zenity --file-selection --text "Open file:" --filename ~/.system_restore/);

zenity --question --text "Install all packages?";

if [ $? -eq 0 ]
then

if [ -f $name ]
then
zenity --info --text "File exists and ready";
gksudo dpkg --set-selections < $name; dselect;
else
zenity --info --text "Not a file";
nochange;
fi

else
nochange;
fi
else
zenity --info --text "You are not root";
exit 0
fi

return;
}
backup()
{
saveas=$(zenity --entry --text "Save as:");

if [ -e ~/.sysres/$saveas ]
then
if [ -d ~/.sysres/$saveas ]
then
zenity --info --text "That is a directory";
nochange;
fi

zenity --question --text "File exists, overwrite?";

if [ $? -eq 0 ]
then
dpkg --get-selections > ~/.sysres/$saveas;
else
exit;
fi

else
dpkg --get-selections > ~/.sysres/$saveas;
fi

return;
}


main()
{
ans=$(zenity --list --text "Package Backup and Restore" --radiolist --column "Pick" --column "Option" TRUE "Backup" FALSE "Restore");

if [ $? -eq 1 ]
then
nochange;
else
if [ $ans == "Backup" ]
then
backup;
elif [ $ans == "Restore" ]
then
restore;
else
nochange;
fi
fi

}

main;

adam_kimber
August 6th, 2008, 07:20 PM
Fair enough! It seems to be neater and a little more GUI-rific than mine. It makes my script look silly in comparison. I will post it anyways incase it is of some remote help.



#!/bin/bash

if [ -d $HOME/systemrestore ]
then
echo "Directory exists"
cd /$HOME/systemrestore
mkdir oldsettings
mv ubuntu-files sources.list xorg.conf sysctl.conf settings.tar.gz oldsettings/
echo "Saved old files"
sudo dpkg --get-selections > ubuntu-files
echo "Backed up installed programs"
cp /etc/apt/sources.list .
echo "Backed up Program Repos List"
cp /etc/X11/xorg.conf .
echo "Backed up display configuration"
cp /etc/sysctl.conf .
echo "Backup system settings"
tar -czf settings.tar.gz ~/.[a-z][A-Z]* --verbose --exclude="*.wmv" --exclude="*.avi" --exclude=".cache" --exclude=".beagle" --exclude=".googleearth/Cache/dbCache.dat" --exclude=".wine" --exclude=".cedega" --exclude=".thumbnails" --exclude=".winebak"
echo "Backed up user settings"
else
mkdir $HOME/systemrestore
cd /$HOME/systemrestore
sudo dpkg --get-selections > ubuntu-files
echo "Backed up installed programs"
cp /etc/apt/sources.list .
echo "Backed up Program Repos List"
cp /etc/X11/xorg.conf .
echo "Backed up display configuration"
cp /etc/sysctl.conf .
echo "Backup system settings"
tar -czf settings.tar.gz ~/.[a-z][A-Z]* --verbose --exclude="*.wmv" --exclude="*.avi" --exclude=".wine" --exclude=".cedega" --exclude=".thumbnails" --exclude=".winebak"
echo "Backed up user settings"
fi


Search Results (https://sourceforge.net/search/?type_of_search=soft&type_of_search=soft&words=sysres) Does this mean that its not accepted? :(

LaRoza
August 6th, 2008, 07:47 PM
Fair enough! It seems to be neater and a little more GUI-rific than mine. It makes my script look silly in comparison. I will post it anyways incase it is of some remote help.

That script isn't sysres, and only does packages.



Search Results (https://sourceforge.net/search/?type_of_search=soft&type_of_search=soft&words=sysres) Does this mean that its not accepted? :(
It is still being processed. Barely 1 day! Give it some time. It is almost processed.

LaRoza
August 6th, 2008, 09:01 PM
Its up!

http://sourceforge.net/projects/sysres/

Kadrus
August 6th, 2008, 09:15 PM
I will be reading the source code in a minute,well done on finishing the project.

LaRoza
August 6th, 2008, 09:57 PM
I will be reading the source code in a minute,well done on finishing the project.

Projects are never finished...

Kadrus
August 6th, 2008, 10:05 PM
Well i think you got my point,projects will still be developed,imrpoved,bugs fixed,etc..

LaRoza
August 6th, 2008, 10:15 PM
Well i think you got my point,projects will still be developed,imrpoved,bugs fixed,etc..

Yeah.

Now that it is up, I would like suggestions on its function, not the GUI! If anyone dislikes the GUI, write a better one. I'd gladly help in specs, but I won't code one.

Kadrus
August 6th, 2008, 10:20 PM
Well as said in the read me file:
It works, but I am no gui designer.
But the CLI program works fine,I think that someone might change the GUI to PyGTK,i would if i could,but i am already involved in a couple of projects.

adam_kimber
August 7th, 2008, 08:25 AM
Its up!

http://sourceforge.net/projects/sysres/

Congrats :D

LaRoza
August 7th, 2008, 08:36 AM
Anyone who got 0.6, get 0.7, as there was a bug in the first version in the GUI. I didn't realise while testing that several of the input boxes have a "cancel" and didn't take that into account, see, user input is a pain. I wasn't the one who discovered that

adam_kimber
August 7th, 2008, 08:39 AM
Well as said in the read me file:
But the CLI program works fine,I think that someone might change the GUI to PyGTK,i would if i could,but i am already involved in a couple of projects.

The GUI (0.7) works too. Just a couple of notes:
- On backup, the GUI version exits and was not sure if it done anything! So maybe a note saying "Backup done, yay!" or something like that....
- In the .sysres folder there are obfuscated names for the files backed up. This might make for problematic manual restore if the program fails to restore. Things like, "You need to find the xorg.conf backup file..." might not be too easy for someone. While you can open them to find out their contents it might be easier to use just their names? Maybe with the same string as the folder has appended to the end?
- There is now a sub folder in the /etc/apt/ directory called sources.list.d/ which has the added extra repos, I have the medibuntu repo in there as a file called the medibuntu.list . This should be backed up but with an option on restore of not restoring it as maybe a package from one of these might have borken the system.

Adam

LaRoza
August 7th, 2008, 08:59 AM
The GUI (0.7) works too. Just a couple of notes:
- On backup, the GUI version exits and was not sure if it done anything! So maybe a note saying "Backup done, yay!" or something like that....

The Unix way seems to be not to complain when things work. If a new GUI is made, perhaps it could be less dialogue-ish. But I won't do it.



- In the .sysres folder there are obfuscated names for the files backed up. This might make for problematic manual restore if the program fails to restore. Things like, "You need to find the xorg.conf backup file..." might not be too easy for someone. While you can open them to find out their contents it might be easier to use just their names? Maybe with the same string as the folder has appended to the end?

That is the md5sum of the filename, which is used to verify it.



- There is now a sub folder in the /etc/apt/ directory called sources.list.d/ which has the added extra repos, I have the medibuntu repo in there as a file called the medibuntu.list . This should be backed up but with an option on restore of not restoring it as maybe a package from one of these might have borken the system.


I will look into it.

red_Marvin
August 8th, 2008, 10:17 PM
I'm working on a gtk frontend for this program, if anyone's interested.

Current progress:
Creation/Restoration/Deletion(single multiple points) should work even if not polished and/or properly tested yet.

LaRoza:
I'm thinking that it could be useful to implement functions to make the user able to not only add, but also view and delete which files that are restored instead of just adding them.
Maybe something like
Add -> add a file to the list
Delete -> delete a file in the list (Including/Excluding the default ones?)
Restore -> remove all non-default files in the list and make sure the default files are there.

Also: are file ownership/permissions preserved for the files that are restored?

LaRoza
August 8th, 2008, 10:21 PM
I'm working on a gtk frontend for this program, if anyone's interested.

Current progress:
Creation/Restoration/Deletion(single multiple points) should work even if not polished.

Thanks! If you need help, laroza77@gmail.com (IM or Email) and I am LaRoza on #ubuntu-programming

LaRoza
August 8th, 2008, 10:39 PM
I'm working on a gtk frontend for this program, if anyone's interested.

Current progress:
Creation/Restoration/Deletion(single multiple points) should work even if not polished and/or properly tested yet.

LaRoza:
I'm thinking that it could be useful to implement functions to make the user able to not only add, but also view and delete which files that are restored instead of just adding them.
Maybe something like
Add -> add a file to the list
Delete -> delete a file in the list (Including/Excluding the default ones?)
Restore -> remove all non-default files in the list and make sure the default files are there.

That part of the program is simple, and not really developed. The real way it works is it just writes to list.rules (one one each line) so it would be easy to write something to edit it.

Deleting the customized settings would recreate the default list (the program checks for that list and if it doesn't exist, it makes a default one)



Also: are file ownership/permissions preserved for the files that are restored?
It can only work if it is run as root, so it is written as root.

LaRoza
August 8th, 2008, 11:03 PM
I am working on the add/remove files methods. Should be simple. I suggest not working on that part of the interface yet...

red_Marvin
August 8th, 2008, 11:19 PM
I'll show what I've done so far (for comments/suggestions, not for real use yet):
I've added gui_gtk.py and modified sysres to default to it, but fallback to the original tk gui on an ImportError exception (I think that would be the result if pygtk isn't installed) or if --force-tk is used.

Edit0: forgot to attach the file.
Edit1: I haven't added any license info on my code since it's pre-release, but it is gpl (v3+).

LaRoza
August 9th, 2008, 12:23 AM
I'll show what I've done so far (for comments/suggestions, not for real use yet):
I've added gui_gtk.py and modified sysres to default to it, but fallback to the original tk gui on an ImportError exception (I think that would be the result if pygtk isn't installed) or if --force-tk is used.

Edit0: forgot to attach the file.
Edit1: I haven't added any license info on my code since it's pre-release, but it is gpl (v3+).

Looks good, better than what I could do.

I fixed up my work to allow adding and deleting restore rules. I only have the CLI interface done, as I feel your work will replace that option.

The new version isn't up yet. Let me know if you want it. It only affects "advanced"

Please use four spaces only, not eight spaces or tabs.

Also, add this to the top of the files you create:




################################################## ##############################
##sysres-gui: GUI for sysres.
##Copyright (C) 2008 <Your name here>
##
##This program is free software: you can redistribute it and/or modify
##it under the terms of the GNU General Public License as published by
##the Free Software Foundation, either version 3 of the License, or
##(at your option) any later version.
##
##This program is distributed in the hope that it will be useful,
##but WITHOUT ANY WARRANTY; without even the implied warranty of
##MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
##GNU General Public License for more details.
##
##You should have received a copy of the GNU General Public License
##along with this program. If not, see <http://www.gnu.org/licenses/>.
################################################## ##############################


Thank you for your work. I hope we can make this more functional. Do you want to try to get the entire thing working with your GUI for the next release?

red_Marvin
August 9th, 2008, 05:32 PM
The new version isn't up yet. Let me know if you want it. It only affects "advanced"
Yes please, then I could populate the advanced tab with widgets too. (Maybe "settings" is a better name?).

LaRoza
August 9th, 2008, 08:27 PM
Yes please, then I could populate the advanced tab with widgets too. (Maybe "settings" is a better name?).

Whatever you think is best for now. I wouldn't want to stifle your creativity.

I will upload the new files here (I'll have to wait, I have to change one thing I just remembered, and I am in Windows for an assignment I have to do)

napsy
August 9th, 2008, 08:55 PM
If you need any help with the gtk+ front-end I will gladly help out. Just contact me with PM

I once had a similar project where I did a backup of desktop settings of all users and some system files, including the kernel image.

The gtk+ front-end was not a problem. The problem was designing a program that will run instead of the default init script (that means no /usr if yo have separate partition for that).

LaRoza
August 10th, 2008, 01:44 AM
Here is the new version.

The changelog includes the changes I made. I changed the gui code to have four spaces for indents like all the other code. Please use four spaces for sysres.

adam_kimber
August 11th, 2008, 08:15 AM
Hey the new Sysres looks good! I have a couple of points if you guys don't mind. The window when the GTK gui starts up is not quite the right size on my machine. Just stretching the bottom corner sorts this (this is really picky I know). Secondly how about an about tab? Things like the developers, what it does, liscense info etc?

PS do you want an icon?

red_Marvin
August 11th, 2008, 08:31 AM
adam_kimber: Is it the width or the height that is wrong?
(The width is automatically set based on how much space the widgets "want", but I request a special height or otherwise it would be too short, since the widgets that take space are in scrollbar windows and can made smaller)

Good idea, the about tab, it should be easy to incorporate I'll put that on my to do list as well as tooltips.

--

The development from my part might slow down a little as I have other work too and I'm also currently rewriting my gui code since I wasn't really happy of the state of it before. (Although the new code might differ little for someone who's not me ;))

The real pain is the TreeView in the view tab (and coming in the advanced tab), since it's a quite flexible tool it also requires quite some code to set up to do even the simplest things.

LaRoza
August 11th, 2008, 08:50 AM
Hey the new Sysres looks good! I have a couple of points if you guys don't mind. The window when the GTK gui starts up is not quite the right size on my machine. Just stretching the bottom corner sorts this (this is really picky I know). Secondly how about an about tab? Things like the developers, what it does, liscense info etc?

I'll leave that up to the person doing the GUI (for anyone else, see the changelog, readme and license files)

In case it matters, I use xmonad which means the windows are automatically the size of the screen (if they are the only one open on that tag)



PS do you want an icon?

I haven't considered that.





The development from my part might slow down a little as I have other work too and I'm also currently rewriting my gui code since I wasn't really happy of the state of it before. (Although the new code might differ little for someone who's not me ;))

The real pain is the TreeView in the view tab (and coming in the advanced tab), since it's a quite flexible tool it also requires quite some code to set up to do even the simplest things.

Well, I won't be changing much, but if I do, I will attach it here (I will append a letter to the version, so sysres-0.8b would be the next one). It isn't an official release, so don't use it people! Get the one off sourceforge.net.

The 0.8 has some changes. It is all in the changelog (remember, year-month-day).

mssever
August 11th, 2008, 01:51 PM
The real pain is the TreeView in the view tab (and coming in the advanced tab), since it's a quite flexible tool it also requires quite some code to set up to do even the simplest things.
TreeView is the stuff of nightmares. Talk about an insanely over-engineered tool! It's what's delayed the GUI for my Net Responsibility config tool.

Reiger
August 11th, 2008, 08:28 PM
Could you explain that? I know one can get all the packages installed with a command (forget it though) is there a a file to parse?

Once I get this to work (GUI issues and restore not finished now), I will be very open to adding to it and probably have a little page for it somewhere.

There is the command
aptitude reinstall [package-name] ?
It could be quite useful to maintain a list of installed packages (just their name) and iterate over the list forcing a re-install.

Also, it would be quite neat to have the ability to add sources/remove sources based on preferences. Essentially a configuration file for this app itself (which in turn should be included in the to-do list).

LaRoza
August 11th, 2008, 08:32 PM
There is the command
aptitude reinstall [package-name] ?
It could be quite useful to maintain a list of installed packages (just their name) and iterate over the list forcing a re-install.

Also, it would be quite neat to have the ability to add sources/remove sources based on preferences. Essentially a configuration file for this app itself (which in turn should be included in the to-do list).

Please read thread backwards ;) Here it the script for reinstall packages and making such restore points. Do not use it with sysres! It was written a while ago, and it will mess sysres up if used with it: http://ubuntuforums.org/showpost.php?p=5535477&postcount=78

I am not interested in making an editor for source lists. That is what synaptic is for (and what I use vim for)

adam_kimber
August 12th, 2008, 08:38 AM
adam_kimber: Is it the width or the height that is wrong?

Unfortunately its the width that is wrong. One of the widgets seems to enjoy being off the page. :P

MONODA
August 12th, 2008, 11:30 AM
i used to use flyback, it is similar to your program but is dead now. You may want to check it out, it is on google code.

red_Marvin
August 12th, 2008, 01:33 PM
Unfortunately its the width that is wrong. One of the widgets seems to enjoy being off the page. :P

I don't that should be possible O_o anyway, I'm not using the same type of container widget in the version I'm working on, so hopefully the next release won't have this problem.

LaRoza
August 24th, 2008, 01:27 AM
Ok, we now have a QT interface.

This is the sysres up to date. Please review your code to see if you it the way you want it before release.

The run options are --cli, --qtk or --qt.

adam_kimber
August 24th, 2008, 01:53 AM
gtkgui.py has an error in it. All it needed was a " at line 246 after OutofReach and before the )


self.bAboutDialog.set_copyright("Core program: Copyright (C) 2008 LaRoza\nGTK GUI (gtkgui.py): Copyright (C) 2008 Leo Bärring\nQT GUI (qtgui.py): Copyright (C) 2008 OutOfReach")

LaRoza
August 24th, 2008, 01:55 AM
gtkgui.py has an error in it. All it needed was a " at line 246 after OutofReach and before the )


self.bAboutDialog.set_copyright("Core program: Copyright (C) 2008 LaRoza\nGTK GUI (gtkgui.py): Copyright (C) 2008 Leo Bärring\nQT GUI (qtgui.py): Copyright (C) 2008 OutOfReach")

Thanks. That was me adding the QT dev...

Fixed.

adam_kimber
August 24th, 2008, 03:08 AM
I thought I would create an icon for you in case you needed one. Here is my first draft. Comments appreciated!

LaRoza
August 24th, 2008, 03:18 AM
I thought I would create an icon for you in case you needed one. Here is my first draft. Comments appreciated!

Could it be simpler and less colourful? Perhaps black/white or greyscale?

red_Marvin
August 24th, 2008, 05:40 PM
Did some minor changes, som might be "out of my jurisdiction" (IE editing files I'm not the maintainer of) so feel free to revert them.



* gtkgui.py:
Minor code edit, nothing "visible".
Replaced "[version number]" with "0.8" on line 236.
License in about->about->license now is read from the file license instead of an embedded text string in gtkgui.py.
* about:
License information removed since the license is already visible in about->about->license.
Some general purpose information added, (My goal is to keep it generic enough to make inclusion in all "access modes"
possible and relevant if wanted).
* all:
Changed so only those files that are supposed to have execute permissions, qtgui.py has the correct #! setup but
no code to handle if it is run as a separate program (IE handling if __name__ == "__main__") so I set it to -x
for the moment.
* r: Added rm *~ so it removes my gedit quicksaves too.

chacham23
August 24th, 2008, 05:46 PM
What about Compiz setting?

Vishal Agarwal
August 24th, 2008, 05:53 PM
SSH server settings ?

LaRoza
August 24th, 2008, 06:03 PM
What about Compiz setting?

Or xmonad or wmii? WM settings are not universal ;)


SSH server settings ?

You can add them to the program through the GUI's or through the command line.

LaRoza
August 24th, 2008, 11:13 PM
sysres-0.8 is out! http://sourceforge.net/projects/sysres/

Thanks to the fine GUI developers who have worked on it, we have two GUI's, one in GTK+ and one in QT. The CLI is there as always.

A critical bug was fixed, and this version is the most complete version yet.

The next step may be to get a nice icon and .deb out, and make it double click and select in a menu type of thing for all the newbs (the actual targetted user for this)

If anyone is vaguely interested, you can double click the qtgui.py or gtkgui.py files to get the interfaces directly. Perhaps that will be of interest for packaging, I never made a .deb before.

red_Marvin
August 24th, 2008, 11:51 PM
Yay!

Btw, the utf-8 coding tag was only added in my source because I wanted to be able to spell my name properly
(with an "ö"), a somewhat silly reason :).

cmay
August 24th, 2008, 11:57 PM
The next step may be to get a nice icon

i think i have a cd whit back up on some stuff did where i among other things have about ten or fifteen icons i created.
if you have any interest in that i can go look for it and see if i can find it.

tuxxy
August 24th, 2008, 11:59 PM
http://www.faqs.org/docs/gazette/backup.html

LaRoza
August 25th, 2008, 12:01 AM
Yay!

Btw, the utf-8 coding tag was only added in my source because I wanted to be able to spell my name properly
(with an "ö"), a somewhat silly reason :).

That is a perfectly valid reason.

red_Marvin
August 25th, 2008, 12:29 AM
Yes perhaps, I noticed that you had added it to the coding standard file, guessed that it was because I put it in gtkgui.py and just thought I'd explain my reasons.

LaRoza
August 25th, 2008, 12:54 AM
Yes perhaps, I noticed that you had added it to the coding standard file, guessed that it was because I put it in gtkgui.py and just thought I'd explain my reasons.

Your reasons were obvious to me :-)

I am working on the .deb. It is going well, except for one thing. The license file isn't being opened...

Also, I think usability wise, the QT version is a bit better. Could your version mimic it a bit? (That version is based off your GTK+ work, and I used what I liked about yours to give feedback on it).

I will to avoid the license opening issue, make a variable (constant) in system_restore.py for the entire license, so you can use that for getting the license info instead of opening the file.

red_Marvin
August 25th, 2008, 01:34 AM
Also, I think usability wise, the QT version is a bit better. Could your version mimic it a bit?
Sure, but I need more elaborate specifications on what you want changed, the things that differ between the versions, that I noticed are (please select one or more, or add your own :)):
1) Buttons beside the lists instead of underneath them
2) About/license/exit buttons at the bottom of the window (If you'd like that, should I put the license button thero or do you want me to continue to use the built in one in gtk.AboutDialog (like now)?)
3) Padding between widgets, increase?

LaRoza
August 25th, 2008, 01:53 AM
Sure, but I need more elaborate specifications on what you want changed, the things that differ between the versions, that I noticed are (please select one or more, or add your own :)):


Ah, yes. I should have been more clear. My (and yours, apparently) psychic powers are low :-)



2) About/license/exit buttons at the bottom of the window (If you'd like that, should I put the license button thero or do you want me to continue to use the built in one in gtk.AboutDialog (like now)?)

I like that. I think you should get rid of the "About" tab (or whatever they are called) and just have a license and about button. Or they could be in that tab. I just don't like having an "About" window and an "About" button.

red_Marvin
August 25th, 2008, 02:45 AM
I did a quick test with adding buttons to the bottom of the window, but since I have the "other" buttons close to the bottom too and they didn't align properly, it looked messy, however I might be able to add a menu to the top that can provide an interface like:

File
+-Exit

Help
+-Information (showing the contents of the about file)
+-About (popping up the about dialog)

License information could be kept in the about dialog (like now) or as another item in the help menu.

Either something like that, or I move the "other buttons" to be to the right of lists so the layouts don't interfer with each other.

Maybe even the whole tab system could be moved into a submenu, so that there is an item
Mode (or just continue adding to File, so Exit won't be alone)
+-Create
+-Edit
+-Settings

Well, anyhow, I should get some sleep, before I stop making sense altogether... if I haven't already...
Comments and ideas appreciated.

mc4100
August 25th, 2008, 10:39 AM
First, great job everyone! This project is progressing really well.
I just created a mock-up of System Restore that's based on the Transmission UI -- the simplist I could find...

Ok, let me explain how it would work: basically, the main view is of all the restore points in a list, and when one is highlighted then you can choose to backup from it, or remove it. "Add" simply creates a new restore point and puts it on the list ... "Create" and "Delete" would have been nicer, but Transmission already had those buttons and they seemed to fit quite well.

BTW, the screenshot didn't get the mouse (a "feature"), so just pretend there's a pointer on the Details button. ;) But of course, I haven't even explained what that is: just a way to see which files are in a restore point, since the rules might have changed, without having to go check the actual files.

Oops I just noticed, kindly ignore that one of the restore points is apparently from the future, I'm just an idiot. The window focus is off too ... I don't think I'm too good at this!
EDIT: Updated with a few things I liked (statusbar, search, etc)... I think it's done.

red_Marvin
August 25th, 2008, 11:52 AM
That looks quite nice, I've thought of having the add button as a part of the view/restore section too, and will try it out on my next modification.
However, the multiline presentation, while it looks prettier than an ordinary list, I'll keep mine (at least for now) since I've implemented sorting based on name/date/time (just click at the column buttons)

By the way LaRoza, are we aiming on a full featured ubuntu package with this with localization support etc?

mc4100
August 25th, 2008, 12:14 PM
That looks quite nice, I've thought of having the add button as a part of the view/restore section too, and will try it out on my next modification.
However, the multiline presentation, while it looks prettier than an ordinary list, I'll keep mine (at least for now) since I've implemented sorting based on name/date/time (just click at the column buttons)
Hey, you're (one of) the developers ... it's completely your decision. I actually liked your list, a lot; though here's my first ever feature request for sysres (yay): please make the columns re-sizable ... it's not insanely useful, just nice to have.
Also, I'm curious to how you're developing your design; are you following particular guidelines (like Gnome's HIG), or just what you feel is easiest to use/most productive/whatever ?

LaRoza
August 25th, 2008, 03:49 PM
By the way LaRoza, are we aiming on a full featured ubuntu package with this with localization support etc?

For now, just a lone project that tries to be useful.

If we want to get more official (into repos and such) we'd have to look into the standards for our target (like GNOME, KDE, and packaging)

adam_kimber
August 25th, 2008, 06:50 PM
I have created a couple of variants in greyscale for you. I am not sure how to simplify as its just as S made of two arrow.... Do you have something in mind?

mssever
August 25th, 2008, 06:55 PM
As far as icons go, I vote for the icon mc4100 used. It's a stock icon, so it should always match the theme, yet it provides a good illustration of what the program does.

OutOfReach
August 25th, 2008, 08:32 PM
First, great job everyone! This project is progressing really well.
I just created a mock-up of System Restore that's based on the Transmission UI -- the simplist I could find...

Ok, let me explain how it would work: basically, the main view is of all the restore points in a list, and when one is highlighted then you can choose to backup from it, or remove it. "Add" simply creates a new restore point and puts it on the list ... "Create" and "Delete" would have been nicer, but Transmission already had those buttons and they seemed to fit quite well.

BTW, the screenshot didn't get the mouse (a "feature"), so just pretend there's a pointer on the Details button. ;) But of course, I haven't even explained what that is: just a way to see which files are in a restore point, since the rules might have changed, without having to go check the actual files.

Oops I just noticed, kindly ignore that one of the restore points is apparently from the future, I'm just an idiot. The window focus is off too ... I don't think I'm too good at this!
EDIT: Updated with a few things I liked (statusbar, search, etc)... I think it's done.

That mockup looks nice actually, it looks very do-able nice and clean. :)
BTW I am the Qt dev for all of you who don't know.

LaRoza
August 25th, 2008, 08:34 PM
I have created a couple of variants in greyscale for you. I am not sure how to simplify as its just as S made of two arrow.... Do you have something in mind?

I like the first one :-)

Now I have to figure out how to use it...

adam_kimber
August 25th, 2008, 09:52 PM
As far as icons go, I vote for the icon mc4100 used. It's a stock icon, so it should always match the theme, yet it provides a good illustration of what the program does.

Hey I liked his mock up too! But i have never seen that icon before. How can it be stock? Is that the reload icon? If so it varies a lot from theme to theme. A standard icon makes the program identifiable. :D

adam_kimber
August 25th, 2008, 09:53 PM
I like the first one :-)

Now I have to figure out how to use it...

Yeah I have no idea about that either :lolflag:

OutOfReach
August 25th, 2008, 10:14 PM
I like the first one :-)

Now I have to figure out how to use it...

It takes a few steps, nothing hard though (At least with Qt, I don't know how this is done in the GTK world). If you would like i can send you the modified project with the icon ready?

mssever
August 25th, 2008, 10:22 PM
Hey I liked his mock up too! But i have never seen that icon before. How can it be stock? Is that the reload icon? If so it varies a lot from theme to theme. A standard icon makes the program identifiable. :D
I like that as a standard icon. But the stock icon "reload" is close. Have you noticed that a number of apps have theme-dependent icons?

red_Marvin
August 26th, 2008, 12:54 AM
I'm working on a new (hopefully prettier) gui, it's far from finished, but is complete enough to show how the gui will look.
I'll attach the wip for comments and suggestions.
To execute, run new-gtkgui.py

The current idea I'm working with is that this is the only tab normally open and that the advanced/preferences mode can be accessed in a separate window, that is created from File->Preferences (not implemented yet).

OutOfReach
August 26th, 2008, 01:34 AM
Wow that looks good :), I too am re-working my Qt design, it's attached below, I only attached a picture though. I only rewrote the UI part of my script so most of the functions work (Create restore point, restore, the about box) but some are disfunctional.

mc4100
August 26th, 2008, 03:31 AM
For what it's worth, here's the gnome-session-reboot SVG icon (part of the icon theme GNOME-colors (http://www.gnome-look.org/content/show.php?content=82562) -- specifically, gnome-brave),

I've also put in a 128x128 desaturated .png
EDIT: and I've added my attempts at human/newhuman (all 128x128 .png)

OutOfReach
August 26th, 2008, 03:32 AM
For what it's worth, here's the gnome-session-reboot SVG icon (part of the theme GNOME-colors (http://www.gnome-look.org/content/show.php?content=82562) -- specifically, gnome-brave),

I've also put in a 128x128 desaturated .png

WOW now that looks good.

adam_kimber
August 26th, 2008, 07:30 AM
For what it's worth, here's the gnome-session-reboot SVG icon (part of the icon theme GNOME-colors (http://www.gnome-look.org/content/show.php?content=82562) -- specifically, gnome-brave),

I've also put in a 128x128 desaturated .png
EDIT: and I've added my attempts at human/newhuman (all 128x128 .png)

I like the grey on on the left. Makes my ickle icon look no so good :(

shifty2
August 26th, 2008, 07:52 AM
I think you should include some facility for diffing the restored files. I keep the majority of my files under git control, so when I bork them I can look back through the history and see what made it go wrong - a tool for diffing it will allow you to see *what* went wrong rather than just fixing it and moving on.

adam_kimber
August 26th, 2008, 08:03 AM
I think you should include some facility for diffing the restored files. I keep the majority of my files under git control, so when I bork them I can look back through the history and see what made it go wrong - a tool for diffing it will allow you to see *what* went wrong rather than just fixing it and moving on.

That would be useful. Not only could you restore a previous working state but then analyse the problem. It would require backing up the non-working version though..... Take the following scenario. Your xorg.conf is borked. Won't start GDM/KDM. Use the CLI version to restore xorg.conf to working state but current (non-working) is lost.

nvteighen
August 26th, 2008, 09:57 AM
It takes a few steps, nothing hard though (At least with Qt, I don't know how this is done in the GTK world). If you would like i can send you the modified project with the icon ready?

In GTK+ world:


gtk_window_set_icon_from_file(GtkWindow *window, const gchar *filename, GError **err);


Where window is the window, filename, the filename to be used and err, a place to store the error code (NULL if you don't want this).

Other methods also exist, but require using GdkPixbuf to store the image.

red_Marvin
August 27th, 2008, 06:40 PM
New gtk gui finished:
New features are; restore point filtering and graceful reaction to if systerm_restore.py throws and RPException.
Screenshot and archive below.

EDIT: OutOfReach: Looking nice.

LaRoza
August 27th, 2008, 07:37 PM
New gtk gui finished:
New features are; restore point filtering and graceful reaction to if systerm_restore.py throws and RPException.
Screenshot and archive below:

I'll check it out!

Thanks.

LaRoza
August 28th, 2008, 06:01 PM
Here is the work so far. The new gtk GUI is in this, and it includes the change in system_restore.py (I edited the GUI code to use it)

Instead of reading from the license file, use the license variable in system_restore.py

Thanks for the work on it GUI devs :-)

mssever
August 28th, 2008, 07:13 PM
Attached Files http://ubuntuforums.org/images/attach/gz.gif sysres-0.9-08282008.tar.gz (http://ubuntuforums.org/attachment.php?attachmentid=83136&d=1219942827) (14.1 KB, 2 views)
One comment about your versioning scheme: I strongly prefer big-endian dates (YYYYMMDD) over little-endian (DDMMYYYY) or middle-endian (MMDDYYYY) for several reasons:


Bid-endian dates sort properly, even when the sorter doesn't recognize them as dates (thus, I always use big-endian in filenames)
Big-endian dates aviod confusion in an international context. Does 4/1/2008 mean April 1 or the 4th of January? To answer that question, you need to know the author's country of origin; even then, that might not be sufficient.

LaRoza
August 28th, 2008, 07:45 PM
One comment about your versioning scheme: I strongly prefer big-endian dates (YYYYMMDD) over little-endian (DDMMYYYY) or middle-endian (MMDDYYYY) for several reasons:


Shall we have a war over this? (Lilliput and Blefuscu reference)

I just put that name as the attachment to keep downloads logical for the devs (this is where we are sharing code). The changelog uses big endian dates (and the official versions don't use dates at all).

Now that you mentioned it, we shall from now on use your scheme (name-version-YYYYMMDD).

LaRoza
August 28th, 2008, 07:48 PM
Current work (slightly different than the previous one! Devs use this, sorry about the quick changing)

The gtkgui.py and qtgui.py code have a few changes. Mainly, the use of the license and version variables in system_restore.py (so you don't have to manually update that part of the code)

red_Marvin
August 28th, 2008, 09:03 PM
Nice.
But the egg should of course be opened at the big end, everybody knows that.

EDIT:: the hashbang line of gtkgui.py is garbled, it should of course read #!/usr/bin/env python
I must've done a sloppy search and replace-all.

LaRoza
August 28th, 2008, 09:13 PM
Nice.
But the egg should of course be opened at the big end, everybody knows that.

I am a vegan. I don't eat the ovulations of poultry (think about what you are doing next time.)



EDIT:: the hashbang line of gtkgui.py is garbled, it should of course read #!/usr/bin/env python
I must've done a sloppy search and replace-all.

Yes, I noticed that. The entire program had a problem with "sysres", which was put as "sysysresys" or something.

I think I fixed all the typos in your code (so use the one I put up to save yourself some trouble). I also fixed the shebang on my end.

mssever
August 28th, 2008, 09:23 PM
I am a vegan. I don't eat the ovulations of poultry (think about what you are doing next time.)
So does that make you a neither-endian? :) Down with both Lilliput and Blefuscu!

LaRoza
August 28th, 2008, 09:27 PM
So does that make you a neither-endian? :) Down with both Lilliput and Blefuscu!

Or a Both Endian. I'd fight for either if they pay me, ideally, both (watch A Fistful of Dollars)

OutOfReach
August 28th, 2008, 10:55 PM
Sorry for teh delay of development, I just started school (ugh).
I am almost done though, with the new interface of course and a couple of new features, small ones, nothing extreme. :)

LaRoza
August 28th, 2008, 11:00 PM
Sorry for teh delay of development, I just started school (ugh).
I am almost done though, with the new interface of course and a couple of new features, small ones, nothing extreme. :)

Don't be sorry, it isn't like any of us are getting paid for this or have a deadline. :-)

You should have seen the delay of my development (look at start of thread...).

Take my few changes into account (you'll see it in your qtgui.py code, and in the changelog) for the new version.

OutOfReach
August 28th, 2008, 11:11 PM
Yes, I've seen some changes and I'll happily implement them on my current development version. :)

LaRoza
August 28th, 2008, 11:13 PM
Yes, I've seen some changes and I'll happily implement them on my current development version. :)

The latest development is we changed languages to Java. I except a QT interface for the Java version by tomorrow.

</hellish_joke>

red_Marvin
August 28th, 2008, 11:20 PM
Do anyone know if befunge has gtk bindings?

mssever
August 28th, 2008, 11:23 PM
Do anyone know if befunge has gtk bindings?
Bindings? Real Programmers don't need bindings.

OutOfReach
August 28th, 2008, 11:25 PM
The latest development is we changed languages to Java. I except a QT interface for the Java version by tomorrow.

</hellish_joke>

:)

OutOfReach
September 1st, 2008, 05:02 AM
Ok, I attached an updated package with the new qtgui.py, you can read the changelog to see what excatly I changed/added.
:)

LaRoza
September 1st, 2008, 05:02 AM
Ok, I attached an updated package with the new qtgui.py, you can read the changelog to see what excatly I changed/added.
:)

Responded within one minute of posting! I'm good...

When making updates on this thread, could you use the naming convention stated earlier? It would help when I am ungzipping them and help me keep track.

LaRoza
September 1st, 2008, 05:12 AM
qtgui.py has an issue.

If you go to make a new restore point, and enter nothing, it doesn't do anything. It should have a default name of "default".

OutOfReach
September 1st, 2008, 05:27 AM
Responded within one minute of posting! I'm good...

When making updates on this thread, could you use the naming convention stated earlier? It would help when I am ungzipping them and help me keep track.

Will do.



qtgui.py has an issue.

If you go to make a new restore point, and enter nothing, it doesn't do anything. It should have a default name of "default".

I'm on it. :)

LaRoza
September 1st, 2008, 05:32 AM
I'm on it. :)

I wonder what it did do though. It didn't seem to do anything. Did it silently catch an exception? It would be helpful if all exceptions were shown for usability and debugging purposes.

OutOfReach
September 1st, 2008, 05:39 AM
According to the code I wrote, if the string entered is empty, it just threw it away, it didn't do anything, literally. Anyways, that's fixed, newest version is attached.

LaRoza
September 1st, 2008, 05:42 AM
According to the code I wrote, if the string entered is empty, it just threw it away, it didn't do anything, literally. Anyways, that's fixed, newest version is attached.

That was fast. Thanks.

adam_kimber
September 1st, 2008, 09:29 PM
Hey thanks for the latest version. I have a point for the GTK dev. (Please don't kill me :P)

Usually GTK apps start where they were left. Yours starts in the top left. Not sure if that is because of running it from a command line or not. Plus the preferences follows the same behaviour. Usually preferences are centred on the parent window. However as it is the same size as the parent it might get confusing for the user. "Where has the window gone" scenarios.

It is interesting to see the subtle differences appearing between the QT and GTK versions. :D I can play spot the difference if you want.......

On the restore part, when it pops up the "are you root?" question, could you make that similar to the "unlock" that Network Settings has? Or a password pop up? That would be cool.

LaRoza
September 1st, 2008, 09:33 PM
Hey thanks for the latest version. I have a point for the GTK dev. (Please don't kill me :P)

Usually GTK apps start where they were left. Yours starts in the top left. Not sure if that is because of running it from a command line or not. Plus the preferences follows the same behaviour. Usually preferences are centred on the parent window. However as it is the same size as the parent it might get confusing for the user. "Where has the window gone" scenarios.


Feedback is (usually) always appreciated (easy for me to say, I don't code the GUI's).

Try double click on "gtkgui.py" and see what happens and how it works. When we have shortcuts and icons, that is how it will be started.

speedkreature
September 4th, 2008, 09:16 PM
Okay, so this is a pretty useful thing. Except for work, I use Ubuntu exclusively so I'll get the hang of it sooner or later, but I'm still a bit of a novice. I'm curious to know how one would schedule this to run weekly at startup (for example).
It would be more useful if this was something that could be set from within this program and it could automatically generate a file name. At that point, you would select a restore point based on date rather than the file name.

Also, would it be possible to detect what environment your in so that if in KDE, it would start in QT or if using Xubuntu or Ubuntu it would start in GTK if no option was specified? Don't know if that's a useful thing...probably a lot of coding for something that could be very simply set when creating or editing menu item properties, but I thought I'd mention it.

One of the things that always bothered me about the restore feature of Windows (last time I used it which was Windows XP SP1) was that if you installed software and it goofed up your PC, it wouldn't always remove/uninstall the software installed from the last restore point and you couldn't always uninstall the software...on some occasions, I would even forget when I installed software that was causing the problem; I would only remember when I noticed the problem started. Sometimes that was a good thing, but sometimes it was a nuisance because you had to manually delete files and folders and clear out registry keys. A feature like this would be fairly easy to implement (compile a list of installed packages and uninstall what changed or let the user select what to install from a list of what changed since the last restore point).

Oh, and great work! It's a neat little program--very well put together and I really like the multiple interface options.

LaRoza
September 4th, 2008, 09:28 PM
Okay, so this is a pretty useful thing. Except for work, I use Ubuntu exclusively so I'll get the hang of it sooner or later, but I'm still a bit of a novice. I'm curious to know how one would schedule this to run weekly at startup (for example).

There is no need, unless you are making system wide changes that often (which one shouldn't be doing).

If you wanted to, you could use cron. However, the feature where it can be run with only command line arguments hasn't been done (although it did exist at one point). I will have to redo that.



It would be more useful if this was something that could be set from within this program and it could automatically generate a file name. At that point, you would select a restore point based on date rather than the file name.

Windows does it by names and dates like this. I find that the most usable way. When I make restore points, I name them after what they hold so "prenewmonitor" would be the settings before I got the new monitor and fiddled with xorg.conf.



Also, would it be possible to detect what environment your in so that if in KDE, it would start in QT or if using Xubuntu or Ubuntu it would start in GTK if no option was specified? Don't know if that's a useful thing...probably a lot of coding for something that could be very simply set when creating or editing menu item properties, but I thought I'd mention it.

Actually, it would be simple, but if one is going to make a launcher, they'd just use the appropriate one so it doesn't matter. I don't use KDE or GNOME (or Xfce) so the interface is just a preference in my case (I like them both, but I use the command line version when I use it which I wrote)



One of the things that always bothered me about the restore feature of Windows (last time I used it which was Windows XP SP1) was that if you installed software and it goofed up your PC, it wouldn't always remove/uninstall the software installed from the last restore point and you couldn't always uninstall the software...on some occasions, I would even forget when I installed software that was causing the problem; I would only remember when I noticed the problem started.

This is not going to take the place of package managers, which do their jobs very well. Windows's problems are caused by the registry in almost all cases (and Windows System Restore is a compensation for that). Linux has no such flaw.



Oh, and great work! It's a neat little program--very well put together and I really like the multiple interface options.
Thanks, we have three interaces because three people worked on it :-)

Now that I have been reminded, I will have to remake the command line version with no menu's so it can be run in shell scripts or automated.

mssever
September 5th, 2008, 01:53 AM
I've been following this thread from the beginning (approximately), but I just finally downloaded sysres for the first time. (My interest has been primarily academic, since I have no need personally for this program, but I know that many people will benefit from it.)

Also, would it be possible to detect what environment your in so that if in KDE, it would start in QT or if using Xubuntu or Ubuntu it would start in GTK if no option was specified? Don't know if that's a useful thing...probably a lot of coding for something that could be very simply set when creating or editing menu item properties, but I thought I'd mention it.
I think that would be fairly easy to do. I propose adding a .desktop file. The file would run a very simple shell script that would detect the desktop, then exec sysres with the proper options. My thought is to test for the kicker process, since that's a good shibboleth for KDE. If kicker is running, start the Qt interface, else start the GTK interface. (I suppose you could also test for gnome-panel and Xfce's panel, but then you'd have to decide what to do for Xmonad, etc. I don't know of any DE other than KDE that uses Qt, and GTK is more likely to be installed than Qt.) I'd be willing to implement this, if you're interested.

Once we're dealing with a .desktop file, an installer enters the picture. I don't know what methods are typically used to install Python software. Perhaps it would be enough to grab the .deb source of an already-packaged program and simply copy that.

Another comment: The CLI version clears the screen before running. That's a Bad Thing (tm), since I often have existing state in my terminal that I like to refer back to. In some situations, the information can be kicked out of my scrollback and lost until I regenerate it. I can type clear easily enough if I want the screen cleared. (When less or vim clear the screen, they use a different method, which I don't understand, that essentially creates a new window instead of scrolling the screen.)

LaRoza
September 5th, 2008, 02:21 AM
I think that would be fairly easy to do. I propose adding a .desktop file. The file would run a very simple shell script that would detect the desktop, then exec sysres with the proper options.

My thought is to test for the kicker process, since that's a good shibboleth for KDE. If kicker is running, start the Qt interface, else start the GTK interface. (I suppose you could also test for gnome-panel and Xfce's panel,

That could work.


but then you'd have to decide what to do for Xmonad, etc. I don't know of any DE other than KDE that uses Qt, and GTK is more likely to be installed than Qt.) I'd be willing to implement this, if you're interested.


It doesn't matter. xmonad doesn't have a desktop ;)

I was thinking of making a different .deb for default kde or gnome, but I like your idea. You can try it. If you do make it, name the script "launchsysres" or something. In case you didn't notice, one can launch the various interfaces with "sysres --[qt|gtk]" or by executing gtkgui.py or qtgui.py. Those files are probably going to be renamed to sysres-gtk and sysres-qt though because of this.

If you do do it, if the script is in Python, it should follow the code standards. If it is a shell script, then I trust you to keep it well formatted :-)



Once we're dealing with a .desktop file, an installer enters the picture. I don't know what methods are typically used to install Python software. Perhaps it would be enough to grab the .deb source of an already-packaged program and simply copy that.

The installer is easy to make. I have already made a couple .deb's but they aren't ready for release.



Another comment: The CLI version clears the screen before running.
I'll remove that. That is a side effect of when it used to use curses and that behavior wouldn't be a problem.

Mickeysofine1972
September 5th, 2008, 10:39 AM
Good Work!

What about a way to backup the system restore points so that a new install can restore the needed packages?

That way, when your package get accepted into the distro, (which I'm pretty sure it will), you can have an option in the newly installed OS to restore your favorite packages.

This could be an option for memory stick or a CD/DVD i think.

Mike

red_Marvin
September 5th, 2008, 05:02 PM
Mickeysofine1972:

As far as I know (I work on the gtk gui, not the core) the purpose of sysres is not to back up whole packages or setups, but configuration files, like /etc/X11/xorg.conf and the like.

However if you really want to back up the restore points, I think that making an archive of the ~/.sysres folder would suffice.

mssever
September 5th, 2008, 05:42 PM
I've made the .desktop file now, which should be installed in /usr/share/applications. It makes a few assumptions, which I wasn't able to fulfil myself since there's no installer:


It assumes that sysres is on the user's PATH.
It assumes that launchsysres lives in /usr/share/sysres.
It assumes that there's an icon called sysres.(svg|png|xpm) somewhere on the icon path. If there's only one icon used, I recommend making it an SVG and putting it in /usr/share/pixmaps. However, most icons need minor adjustments to look good at all common sizes. So I recommend that individually-scaled icons (PNG) and an SVG icon be installed in the hicolor theme, which is the proper place for icons as I understand the spec. This item, of course, is largely aimed at the icon folks. I'm willing to help with this if needed.

I don't have a KDE environment available right now, so I'm not able to test whether the .desktop file puts itself in the proper menu in KDE. In the absence of an installer, testers will have to manually install this stuff as described above.

Also, LaRoza, when I was looking for where to download sysres from, I noticed that there's no download link in the OP which points to the current version. I ended up having to search SourceForge to find it.

In case you didn't notice, one can launch the various interfaces with "sysres --[qt|gtk]" or by executing gtkgui.py or qtgui.py. Those files are probably going to be renamed to sysres-gtk and sysres-qt though because of this.
IMHO, it's cleaner to provide one right way to launch sysres (sysres) and drop the x bit from the individual GUI modules. If it were my project, sysres and launchsysres would be the only files with the x bit set.

OutOfReach
September 5th, 2008, 11:22 PM
I've made the .desktop file now, which should be installed in /usr/share/applications. It makes a few assumptions, which I wasn't able to fulfil myself since there's no installer:


It assumes that sysres is on the user's PATH.
It assumes that launchsysres lives in /usr/share/sysres.
It assumes that there's an icon called sysres.(svg|png|xpm) somewhere on the icon path. If there's only one icon used, I recommend making it an SVG and putting it in /usr/share/pixmaps. However, most icons need minor adjustments to look good at all common sizes. So I recommend that individually-scaled icons (PNG) and an SVG icon be installed in the hicolor theme, which is the proper place for icons as I understand the spec. This item, of course, is largely aimed at the icon folks. I'm willing to help with this if needed.

I don't have a KDE environment available right now, so I'm not able to test whether the .desktop file puts itself in the proper menu in KDE. In the absence of an installer, testers will have to manually install this stuff as described above.

I can't seem to get it working, but I'm 90% sure that it's on my part.

On a side note, I have an idea. And I want to share it here and get your responses and get the thumbs up before I work on it. Here they are:
- Search for restore points in other (specified) partitions.
- Restore restore points ON other partitions.
- Backup files from OTHER partitions.

This could be useful for the following scenario:
You have changed your menu.lst/xorg.conf/etc, etc... You can't boot into (K|X)ubuntu, caused by the changes to the file(s). You boot into the LiveCD, you download SysRes wanting to restore the restore points on the other partition, but you soon find out that you can't.

(Not a) Good idea?

LaRoza
September 5th, 2008, 11:25 PM
I can't seem to get it working, but I'm 90% sure that it's on my part.

On a side note, I have an idea. And I want to share it here and get your responses and get the thumbs up before I work on it. Here they are:
- Search for restore points in other (specified) partitions.
- Restore restore points ON other partitions.
- Backup files from OTHER partitions.

(Not a) Good idea?

I will do that work later. It actually did that before along with pure command line arguments, but I removed it when I rewrote it (I still have the original work, even the version not in Python)

OutOfReach
September 6th, 2008, 12:06 AM
I will do that work later. It actually did that before along with pure command line arguments, but I removed it when I rewrote it (I still have the original work, even the version not in Python)

Alright, cool. :D

LaRoza
September 6th, 2008, 03:29 AM
Alright, cool. :D

Unless you want to mess around with my code and we'll see whose version is better :-) but I don't this minor detail needs two hands working on it.

I will start the work on the week end, and hopefully get it down in one sitting.

mssever
September 6th, 2008, 06:27 AM
I can't seem to get it working, but I'm 90% sure that it's on my part.
What's the problem? I'd like to be able to be 100% sure the problem is on your part, not mine. :)

LaRoza
September 6th, 2008, 06:36 AM
What's the problem? I'd like to be able to be 100% sure the problem is on your part, not mine. :)

sysres is going to be installed in /usr/local/, so you may want to assume that. I can't test the script as I do not have KDE or GNOME.

OutOfReach
September 6th, 2008, 06:53 AM
What's the problem? I'd like to be able to be 100% sure the problem is on your part, not mine. :)

I put the launchsysres file in /usr/share/sysres/ and I put the .desktop file in /usr/share/applications, but were do I put the sysres folder? (The one with qtgui, gtkgui, etc etc)

LaRoza
September 6th, 2008, 07:39 AM
I put the launchsysres file in /usr/share/sysres/ and I put the .desktop file in /usr/share/applications, but were do I put the sysres folder? (The one with qtgui, gtkgui, etc etc)

In my installation, it just has to be in the $PATH. The code (as you see) adds to the path, and sysres will be in /usr/local/bin probably.

mssever
September 6th, 2008, 07:46 AM
sysres is going to be installed in /usr/local/, so you may want to assume that. I can't test the script as I do not have KDE or GNOME.
I assumed /usr/share because the spec (http://www.debian.org/doc/debian-policy/ch-opersys.html#s9.1.2) explicitly forbids .deb packages from installing in /usr/local. If you still want me to change it, I will, but it will be in violation of the spec.

LaRoza
September 6th, 2008, 08:33 AM
I assumed /usr/share because the spec (http://www.debian.org/doc/debian-policy/ch-opersys.html#s9.1.2) explicitly forbids .deb packages from installing in /usr/local. If you still want me to change it, I will, but it will be in violation of the spec.

In that case, it will be in /usr/share if we use a .deb.

LaRoza
September 6th, 2008, 09:36 AM
I just started working on the custom restore point, and realised my code always had that function, I just didn't make an interface for it.

GUI devs, you'll just have to set the mode in "makeRestorePoint(self,point,mode="default")" to "custom" (really, anything) and it will use the absolute path of the restore point name. So if a user wants a restore point in /media/disk/ they will have to somehow send the value "/media/disk/$restore_point_name" to the function in "point". It may be easiest to have a directory select dialog and a "name of" dialog (or whatever) and just make an absolute path that way.

My new code will have this in the function "advanced".

LaRoza
September 6th, 2008, 10:15 AM
New testing version up. The CLI version supports creating restore points and restoring from them in any specified location, the GUI's don't, but should work fine.

OutOfReach
September 8th, 2008, 02:56 AM
Update, the Qt interface now supports backing up/restoring to/from custom locations. (Which can be accessed from SysRes>Advanced, or by pressing Ctrl+Shift+A)

LaRoza
September 8th, 2008, 03:04 AM
Update, the Qt interface now supports backing up/restoring to/from custom locations. (Which can be accessed from SysRes>Advanced, or by pressing Ctrl+Shift+A)

Nice work.

I have no complaints (and thanks for the error boxes, trying to restore without selecting a restore point has an error box, but I don't think it is neccessary to dumb down the error messages at the moment)

OutOfReach
September 8th, 2008, 03:16 AM
Nice work.

I have no complaints (and thanks for the error boxes, trying to restore without selecting a restore point has an error box, but I don't think it is neccessary to dumb down the error messages at the moment)

Thanks. :)

anotherdisciple
September 8th, 2008, 04:34 AM
Hey.... sorry if you already mentioned this, or if it's already implemented... but could you make the restore give you the option of which file you want to restore. Like say I want to restore my x-org, but I don't want to go back to my old sources.list or grub menu.

I like the idea and the work you have done so far... thanks!

mssever
September 8th, 2008, 07:36 AM
Here's a patch against the version of sysresqt.py found in sysres-0.9-20080907.tar.gz. I changed a bunch of string literals to comments, since that's really what they are. Marking comments as comments allows syntax highlighters to correctly highlight comments. It also saves a (trivial) amount of resources by not creating string objects.

LaRoza
September 8th, 2008, 08:04 AM
Here's a patch against the version of sysresqt.py found in sysres-0.9-20080907.tar.gz. I changed a bunch of string literals to comments, since that's really what they are. Marking comments as comments allows syntax highlighters to correctly highlight comments. It also saves a (trivial) amount of resources by not creating string objects.

Forgive my ignorance, but exactly how does one use that? Why not update the file? It isn't much bigger.

mssever
September 8th, 2008, 08:18 AM
Forgive my ignorance, but exactly how does one use that? Why not update the file? It isn't much bigger.

cd src/dir
patch -p0 < sysresqt.py.patch.txtI had to look that up to answer your question. :) It's easier to make a patch (diff -u) than to remember how to apply one IMO. I made a patch so that the changes are clear. However, I'm attaching the file itself since you asked. I had to compress it since the forum doesn't like .py files that large.

LaRoza
September 8th, 2008, 08:24 AM
Hey.... sorry if you already mentioned this, or if it's already implemented... but could you make the restore give you the option of which file you want to restore. Like say I want to restore my x-org, but I don't want to go back to my old sources.list or grub menu.

I like the idea and the work you have done so far... thanks!

You can customise the restore point creation to backup any file you want, and that includes removing unwanted ones.

At the moment, this program is much more flexible than Microsoft Windows System Restore, and takes up much less space (a few kb versus several GB). Windows just got pwned by three people on a forum...

LaRoza
September 8th, 2008, 08:28 AM
cd src/dir
patch -p0 < sysresqt.py.patch.txtI had to look that up to answer your question. :) It's easier to make a patch (diff -u) than to remember how to apply one IMO. I made a patch so that the changes are clear. However, I'm attaching the file itself since you asked. I had to compress it since the forum doesn't like .py files that large.

Thanks, that is much easier :-)

I'll keep the patch -p0 routine in mind though, thanks.

<rant>The bzip2 people think they are so better than gzip-pers. I'll show them...</rant>

CptPicard
September 8th, 2008, 08:59 AM
<rant>The bzip2 people think they are so better than gzip-pers. I'll show them...</rant>

The Burrows-Wheeler transform (http://en.wikipedia.org/wiki/Burrows-Wheeler_transform) is remarkably efficient at arranging textual data in a way that then compresses efficiently using something like Huffman coding. The way it works is very interesting, I implemented it once for coursework...

LaRoza
September 8th, 2008, 09:24 AM
The Burrows-Wheeler transform (http://en.wikipedia.org/wiki/Burrows-Wheeler_transform) is remarkably efficient at arranging textual data in a way that then compresses efficiently using something like Huffman coding. The way it works is very interesting, I implemented it once for coursework...

See, that is what I mean. You aren't content with good old fashioned gzip and have to introduce new fangled algorithms.

nvteighen
September 8th, 2008, 09:53 AM
At the moment, this program is much more flexible than Microsoft Windows System Restore, and takes up much less space (a few kb versus several GB). Windows just got pwned by three people on a forum...

:D

Congrats!

LaRoza
September 8th, 2008, 10:15 AM
:D

Congrats!

It was simple, considering we were doing it for convenience sake, not to overcome deliberately designed design flaws.

Windows's flaws come from its efforts to restrict users. Its bloat, its unstability, its waste of space could all be eliminated if they focused on making the operating system work, instead of not work.

Calabresi
September 8th, 2008, 10:19 AM
I'd sugest that, that's real important I think, "Total System Permission Reset".

I didn't read all the thread, sorry if it's sugested already, if there's a way already to run a thing like this, I would be glad to know it.

Reason is, I have one DVD-RAM writer Benq DW1680 and one DVD-ROM reader Sony CRX320EE, Benq stop work like before, all related with HARD, before and now, it's not broked, works on Vista read and write and as I told was working in HARD before.

The permission are like this, in /DEV all related CD, DVD, RW links are ROOT own with lrw-rw---- and group=cdrom is all that right?

The /media folder with cdrom link and 2 cdrom0 (benq) and cdrom1 (Sony) folders I dont understand how it works, they keep changing it's permission behaviour when I insert and remove media's, supose it's normal, but as in floopy the folder follow the link permission right, e.g. if I change the link CDROM the folder CDROM0 change also, but not CDROM1.

I don't know how, but I strongly (sry my en, I know it's wrong someway, but...) believe that some update caused it sometime ago (2, 3 week's), I read in bug site that nautilus is being revised due a bug, can be it?

I hope I could make it clear

thank's in advance

LaRoza
September 8th, 2008, 10:27 AM
I'd sugest that, that's real important I think, "Total System Permission Reset".

If you need to backup and restore previously working settings, sysres can do that.



Reason is, I have one DVD-RAM writer Benq DW1680 and one DVD-ROM reader Sony CRX320EE, Benq stop work like before, all related with HARD, before and now, it's not broked, works on Vista read and write and as I told was working in HARD before.

What changed between it working and not working?



I don't know how, but I strongly (sry my en, I know it's wrong someway, but...) believe that some update caused it sometime ago (2, 3 week's), I read in bug site that nautilus is being revised due a bug, can be it?

That might be it. I'd try a different file manager (try Thunar) to see if it can be used.

By the way, "strongly" was correct, but "broked" wasn't. It should be "it's not broken".

nvteighen
September 8th, 2008, 10:52 AM
By the way, "strongly" was correct, but "broked" wasn't. It should be "it's not broken".

Hey, that *broked is an interesting case of paradigmatic assimilation (contrasted to *braked)! It's still using the correct past stem, but changing the ending to the regular one. If you consider that English verbs, -(e)d is the regular participle ending but constructed from the past stem (where the regular verbs have present stem = past stem), then the whole thing makes sense: brake- (present stem) > broke- (past stem) > *broked.

(In Linguistics, an asterisk (*) before a word, means that word is incorrect)

CptPicard
September 8th, 2008, 11:00 AM
How about my favourite version, *b0rked? :)

LaRoza
September 8th, 2008, 11:05 AM
Hey, that *broked is an interesting case of paradigmatic assimilation (contrasted to *braked)! It's still using the correct past stem, but changing the ending to the regular one. If you consider that English verbs, -(e)d is the regular participle ending but constructed from the past stem (where the regular verbs have present stem = past stem), then the whole thing makes sense: brake- (present stem) > broke- (past stem) > *broked.

(In Linguistics, an asterisk (*) before a word, means that word is incorrect)

We shouldn't use words around you :-)

On this forum (and culture of the people therein), a "*" before a word (or anywhere at all) is a wild card.


How about my favourite version, *b0rked? :)

+1

anotherdisciple
September 8th, 2008, 01:28 PM
I'm just trying to think about forgetful people like me... haha! For instance, I would likely set up a restore point once a week. It would probably be one that makes a backup of everything.

Then, without thinking, I would upgrade to a new kernel, add something (or take something away) from my sources list, and change something in my Xorg. Then, I would find out that I severely messed up my Xorg. I know that I can restore it, but I want to keep my grub, sources, etc the same... only restore my xorg. However, the last restore point I made will reset all of those. Know what I mean?

Would it be possible to have it save all of those items by name/date, then when you go to restore, it gives you a list that says, what would you like to restore... Xorg?, GRUB?, Sources?, ALL? That would be cool. I'm not complaining about volunteer work... I appreciate what all of you are working on... I just wanted to throw in an outsider's point of view.

THANKS AGAIN!

Calabresi
September 8th, 2008, 02:35 PM
If you need to backup and restore previously working settings, sysres can do that.

Nice, but I suppose that I need a sysres backup first. And Iĺl read your full thread when I get home with time.



What changed between it working and not working?

It was working fine, normal operation, reading, writing, now it keep trying to read the media CD or DVD, whatever burned or blank until timeout, it has a long timeout time.



That might be it. I'd try a different file manager (try Thunar) to see if it can be used.

Will try thunar, but I can advance that Konqueror was not able also, btw, I saw that the Sony is not able to open some DVD content in file manager's without "gksu any-filemanager", tell me that I don't have enough permission to see the content, BUT! Is able to play the damn DVD with VLC.



By the way, "strongly" was correct, but "broked" wasn't. It should be "it's not broken".

:D thanks

mssever
September 8th, 2008, 04:07 PM
<rant>The bzip2 people think they are so better than gzip-pers. I'll show them...</rant>
Often, I try both to see which produces the best compression, since which one is the best depends on the input, and I don't know enough about how the respective algorithms work to accurately predict which will be best. In this particular case, I just started typing and bzip2 came out. I didn't run my tests until after I posted, when I discovered that bzip2 is slightly better for that file.

We shouldn't use words around you :-)

On this forum (and culture of the people therein), a "*" before a word (or anywhere at all) is a wild card.+1 nvteighen. I've seen the asterisk used many times to indicate a hypothetical word (often a hypothetical stem), but not on this forum. It's great having a linguist around to mix things up.

LaRoza
September 8th, 2008, 05:34 PM
Often, I try both to see which produces the best compression, since which one is the best depends on the input, and I don't know enough about how the respective algorithms work to accurately predict which will be best. In this particular case, I just started typing and bzip2 came out. I didn't run my tests until after I posted, when I discovered that bzip2 is slightly better for that file.

The point is, there is no reason to use bzip2 over gzip. Anyone not using gzip is obviously a fanboy and that won't be tolerated.

</irrational>



+1 nvteighen. I've seen the asterisk used many times to indicate a hypothetical word (often a hypothetical stem), but not on this forum. It's great having a linguist around to mix things up.

To nvteighen words meaning special have.

Analyze that.

red_Marvin
September 8th, 2008, 05:45 PM
Even special words have meaning.

I am slowly working on updating the gtk version.

mssever
September 8th, 2008, 06:13 PM
Anyone not using gzip is obviously a fanboy
What about females who use something other than gzip? How can they be fanboys? :)

LaRoza
September 8th, 2008, 06:14 PM
What about females who use something other than gzip? How can they be fanboys? :)

I didn't see any females in this thread using it. Interestingly, only a girl can be a tomboy...

nvteighen
September 8th, 2008, 06:27 PM
To nvteighen words meaning special have.

Analyze that.

(Sentence (Dative-Object nvteighen) (Subject words) (Accusative-Object meaning (Modifiers special)) (Verb have))

Which would yield a compiler error :p because English always places modifiers before the modified object.

(The Lisp-ish syntax is a remarkable feature from Chomsky... Did you know he worked at MIT at the same time and in the same department where McCarthy was designing Lisp? I don't know of any meeting between both, but maybe this is not coincidence... also given how Lisp seems to respect Chomsky's "Aspects of the Theory of Syntax" almost litterally...)

LaRoza
September 8th, 2008, 06:29 PM
(Sentence (Dative-Object nvteighen) (Subject words) (Accusative-Object meaning (Modifiers special)) (Verb have))

Which would yield a compiler error :p because English always places modifiers before the modified object.

Not always.



Once upon a midnight dreary, while I pondered, weak and weary,
Over many a quaint and curious volume of forgotten lore,
While I nodded, nearly napping, suddenly there came a tapping,
As of some one gently rapping, rapping at my chamber door.
"'Tis some visitor," I muttered, "tapping at my chamber door —
Only this, and nothing more."

nvteighen
September 8th, 2008, 07:47 PM
Not always.

You got me :p

OutOfReach
September 8th, 2008, 11:01 PM
Interesting conversation you people are having here. ;)



patch -p0 < sysresqt.py.patch.txt

I have never seen this technique before, seems very useful. And thanks for patching up sysresqt.py, I'm so used to creating strings as comments, gotta dump that habbit. :)

msserver
September 8th, 2008, 11:56 PM
Interesting conversation you people are having here. ;)


patch -p0 < sysresqt.py.patch.txthey tnx for sayin my name!!! but i didnt write that!!!

OutOfReach
September 9th, 2008, 12:34 AM
hey tnx for sayin my name!!! but i didnt write that!!!

lol typo, that's what I get for typing fast.

mssever
September 9th, 2008, 12:42 AM
lol typo, that's what I get for typing fast.
I've been waiting for a chance to trot out that account. People frequently misspell my nick.

LaRoza
September 9th, 2008, 03:50 AM
You got me :p

Your advanced knowledge can't keep up with English exceptions.


I've been waiting for a chance to trot out that account. People frequently misspell my nick.

Just don't use it often, dup accounts are technically not allowed: http://ubuntuforums.org/member.php?u=628426

LaRoza
September 9th, 2008, 08:56 PM
Updates:

The next release (note to people following this, the code exchanged here is our way of exchanging. It is almost like getting CVS, but with less security as we have no commits and such) will not have a .deb installer, and will be focused on getting the features needed.
The next release will be hosted at: savannah.nongnu.org, not sourceforge.net (no URL at this time)
The next release and two will be aimed at getting this ready to be properly packages according to standards (whatever they are, people with experience in packaging, advice on structure is welcome.)
We will be writing it in Java next, wait, never mind. Thanks to all the people contributing (especially the GUI devs...) and testing.

mssever
September 10th, 2008, 12:05 AM
We will be writing it in Java next

Why not write it in Whitespace? :)

LaRoza
September 10th, 2008, 12:25 AM
Why not write it in Whitespace? :)

Too readable.

LaRoza
September 10th, 2008, 01:32 AM
Restructured entire program for future .deb. Made a SystemRestore module.

Anyone doing any code, please use this (all function is the same, so anybody testing doesn't need to use this, although anyone interested in packaging should)

Attachment removed, see my next upload (same date, didn't want to confuse anyone)

LaRoza
September 10th, 2008, 02:18 AM
I have created a couple of variants in greyscale for you. I am not sure how to simplify as its just as S made of two arrow.... Do you have something in mind?

adam_kimber: I decided to use one of the icons (I resized it, but that hardly qualifies as work, although I mistook the image view window as one of the gimp windows and couldn't figure out why I couldn't do anything for a while...).

I got a nice desktop icon launcher thingy all set up.

Since I am using your art, could you tell us how you want your name in the credits?

mssever
September 10th, 2008, 03:27 AM
I made a temporary installer. I also integrated the .desktop file and icon into the package. Here's the modified package and a diff.

I had to modify sysresgtk to handle the about file no longer being where it was expected. It's a kludge; any suggestions are welcome.

mssever
September 10th, 2008, 03:28 AM
adam_kimber: I decided to use one of the icons (I resized it, but that hardly qualifies as work, although I mistook the image view window as one of the gimp windows and couldn't figure out why I couldn't do anything for a while...).

I got a nice desktop icon launcher thingy all set up.
You posted while I was working on my installer, etc. We might have duplicated work.

LaRoza
September 10th, 2008, 03:31 AM
You posted while I was working on my installer, etc. We might have duplicated work.

Here is the icon I am using:
http://img253.imageshack.us/img253/7464/sysreslogogreyscalepf3.png (http://imageshack.us)
By laroza (http://profile.imageshack.us/user/laroza)

mike1234
September 10th, 2008, 03:35 AM
Windows System Restore is the basis for this.

The settings are whatever the user decides save.



You mean like aptoncd?

LaRoza
September 10th, 2008, 03:37 AM
You posted while I was working on my installer, etc. We might have duplicated work.

Actually, we didn't really. I didn't get very far.

LaRoza
September 10th, 2008, 03:41 AM
You mean like aptoncd?

No, like Windows System Restore.

Try it out ;)

LaRoza
September 10th, 2008, 03:44 AM
I had to modify sysresgtk to handle the about file no longer being where it was expected. It's a kludge; any suggestions are welcome.

I had fixed that already (but I didn't update the file here.)

Here is everything updated (with your work and mine).

mike1234
September 10th, 2008, 03:51 AM
No, like Windows System Restore.

Try it out ;)

What's Windows? :confused:

M.

mssever
September 10th, 2008, 04:15 AM
With your version, when I run the installer, then sysres --gtk, I get the following:

Traceback (most recent call last):
File "/usr/local/bin/sysres", line 35, in <module>
SystemRestore.Interfaces.sysresgtk.main(rp)
File "/usr/lib/python2.5/site-packages/SystemRestore/Interfaces/sysresgtk.py", line 403, in main
prog = MainProgram(rp)
File "/usr/lib/python2.5/site-packages/SystemRestore/Interfaces/sysresgtk.py", line 294, in __init__
textBuffer.set_text(sysres.about)
AttributeError: 'module' object has no attribute 'about'
Did you mean to call sysres.license, or is sysres.about missing? I couldn't figure out what you intended from looking at the code.

Also, if you--or someone--can get an SVG version of the icon, it'll look much better when scaled. Right now, it looks bad in my menu (I'm estimating that's 24x24).

OutOfReach
September 10th, 2008, 04:21 AM
Question, the icon is supposed to be used for the Qt and GTK windows to, no?

mssever
September 10th, 2008, 04:24 AM
Question, the icon is supposed to be used for the Qt and GTK windows to, no?
It should be, IMO.

@LaRoza: I forgot to mention it earlier, but since my about file kludge is no longer necessary, you can remove line 50 from install.sh (the ln command), since that's now obsolete.

lisati
September 10th, 2008, 04:26 AM
laroza

sounds like (yet another) worthwhile effort. Keep up the good work!

Steve

+1

OutOfReach
September 10th, 2008, 04:33 AM
Ok, because I just set it as the window icon the Qt interface, and as you can see in the attachment it isn't looking so hot. I don't know if you guys want to use a bit larger, higher res icon for the windows or what...?

LaRoza
September 10th, 2008, 04:45 AM
It should be, IMO.

@LaRoza: I forgot to mention it earlier, but since my about file kludge is no longer necessary, you can remove line 50 from install.sh (the ln command), since that's now obsolete.

Here are the original images (use first): http://ubuntuforums.org/showpost.php?p=5662253&postcount=133

Ok, I should have it up to date. I forgot to give the updated system_restore.py as well.

LaRoza
September 10th, 2008, 04:46 AM
Ok, because I just set it as the window icon the Qt interface, and as you can see in the attachment it isn't looking so hot. I don't know if you guys want to use a bit larger, higher res icon for the windows or what...?

The original image is linked to in my above post.

If people want to use SVG, that is fine, but I don't know how to convert it, so I leave that up to those who know how. Also, feel free to edit it.

mssever
September 10th, 2008, 05:00 AM
If people want to use SVG, that is fine, but I don't know how to convert it, so I leave that up to those who know how. Also, feel free to edit it.I'm working on it.

mssever
September 10th, 2008, 05:22 AM
Here's an SVG.

EDIT: LaRoza, have you considered switching to some version control system? SVN is the one I know, but from what I hear, Bazaar might be more appropriate for the style of development going on in this thread. I think that using version control would simplify things greatly, now that several people are actively contributing.

LaRoza
September 10th, 2008, 05:40 AM
Here's an SVG.

EDIT: LaRoza, have you considered switching to some version control system? SVN is the one I know, but from what I hear, Bazaar might be more appropriate for the style of development going on in this thread. I think that using version control would simplify things greatly, now that several people are actively contributing.

Once I get it approved on savannah.gnu.org and I learn how to use it.

nvteighen
September 10th, 2008, 12:08 PM
Hey, this is great! Congrats to the devs! (Can you believe I hadn't downloaded this up to now? To busy with some strange projects of mine...)

But, I have a complain :)

When you execute a GUI version of sysres from terminal emulator, it doesn't give control to the shell back.

In other words, can't you do something like this, for example?:
1. Rename current "sysres" to "sysres.py"
2. Have a "sysres" shell script that executes "sysres.py --gtk &" (or --qt). For --cli, it would be overkill.

If I had *any* shell scripting skill I could have tried to write a fix and not bother you with this... :(