Presenting UruDistro

Announcements and discussion regarding Chacal's UruDistro

Moderator: Chacal

Re: Presenting UruDistro

Postby Zrax » Thu Jul 09, 2009 12:39 am

While I (respectfully) disagree with your opinion of Java vs. Python, I would still be far in favor of the Drizzle option over the VBScript option... I've never felt very trusting of VBScript, and I don't think it's very reasonable to ask Linux users to require some fancy set-up in order to route the script through Wine (or worse, install Virtualization software just to run Drizzle + UruDistro). I too have used C++, Java, and Python very extensively over the years (VBScript not so much :P), and while the JVM does have it's advantages in terms of cross-platform compatibility and speed, I find myself constantly annoyed at its attempts at babysitting me while I code with it. That doesn't mean it's a bad language, per se, just that I get annoyed with it ;). Also, I've seen both Java and Python frequently used to teach programming concepts to new programmers, so calling only one out on that is a bit unfair. C++, on the other hand, is known for being difficult and finicky -- but it also (still) has the most support out there (possibly simply out of necessity), and it still allows the greatest amount of control over your code among the four languages.

But let's not start a programming language war here ;) (Oops, too late :P). Every language has its strengths and its weaknesses... There is no such thing as a "perfect" programming language, and I don't believe there ever will be. Just as there's no "correct" form of art or music.
User avatar
Zrax
 
Posts: 204
Joined: Fri Sep 28, 2007 5:19 pm
Location: Waist-deep in a conecano

Re: Presenting UruDistro

Postby diafero » Thu Jul 09, 2009 9:34 am

Having coded most of my stuff in C++, I must of course say that is is the best language evaa :D :lol: (though I used Python [you are right about the "true" programming languages :) ] for some scripting recently as I got fed up by bash scripting - surprise, after converting the script to python the code was half as long and 15 times as fast as the bash script I used before :P )

Seriously though: Since UruDistro seems to mostly glue things like an XML processor and the libPlasma tools together, a scripting language like Python sounds best suited for me. Then Drizzle would just have to invoke the python script, I hope that can be done in a platform-independent manner. Having it in Drizzle would facilitate that and ease making a GUI, but I doubt it would be reasonable to write a Python (de)compyler in Java, so they would still be external. It would be even more of a re-write since the tools used would be completely different then. But as long as it is somehow made platform-independent, I'm willing to accept any true or untrue programming language you plan to choose :lol:
I prefer e-mails to "diafero arcor de" (after adding the at and the dot) over PMs.

"Many people's horizon is a circle with a radius of zero. They call it their point of view."

Deep Island Shard | Offline KI
diafero
Deep Island Admin
 
Posts: 2828
Joined: Mon May 05, 2008 5:50 am
Location: Germany

Re: Presenting UruDistro

Postby Chacal » Thu Jul 09, 2009 1:34 pm

Let's consider the vbscript version a proof of concept, or a beta version.
When we're satisfied with it, we can make version 2 a platform-independent version.
Also there is always the possibility that no one will be interested in using it. After all we never know if and when Cyan will release an open-source MOUL. When that happens, it is possible that interest in POTS will disappear.
Chacal


"The weak can never forgive. Forgiveness is an attribute of the strong."
-- Mahatma Gandhi
User avatar
Chacal
 
Posts: 2443
Joined: Tue Nov 06, 2007 2:45 pm
Location: Quebec, Canada

Re: Presenting UruDistro

Postby Chacal » Thu Jul 09, 2009 10:52 pm

You know it's time to go to bed when it takes you 20 minutes to find the error in this code:

Code: Select all
   For each docNode in docNodes.childNodes
      Set newNode=docNnode.cloneNode(False)
   Next


Note to self: always use OPTION EXPLICIT
Chacal


"The weak can never forgive. Forgiveness is an attribute of the strong."
-- Mahatma Gandhi
User avatar
Chacal
 
Posts: 2443
Joined: Tue Nov 06, 2007 2:45 pm
Location: Quebec, Canada

Re: Presenting UruDistro

Postby Robert The Rebuilder » Fri Jul 10, 2009 6:27 am

Chacal wrote:Note to self: always use OPTION EXPLICIT


Note that Python doesn't have such an option - for better or for worse. ;-)
Can we rebuild it? Yes, we can - here's how.

MOULagain KI# 1299

Myst Movie coming soon - spread the word!
User avatar
Robert The Rebuilder
 
Posts: 1383
Joined: Sat Sep 29, 2007 7:24 am
Location: Virginia, US

Re: Presenting UruDistro

Postby ddb174 » Tue Jul 28, 2009 7:19 pm

I forgot to mention that I made a prp comparing thing for Drizzle with this in mind, and it would not be hard to make it take two prps and automatically create the UruDistro xml and object files for it. So if people already have the modified prp and a clean prp, that could be an option for people.
ddb174
 
Posts: 928
Joined: Thu Apr 10, 2008 7:28 pm

Re: Presenting UruDistro

Postby Chacal » Tue Jul 28, 2009 9:55 pm

That would be a great addition.

I haven't had time to work on UruDistro for the last 3 weeks or so, due to deadlines in my real job. I'll get back to it after my vacation, around the end of August.
Chacal


"The weak can never forgive. Forgiveness is an attribute of the strong."
-- Mahatma Gandhi
User avatar
Chacal
 
Posts: 2443
Joined: Tue Nov 06, 2007 2:45 pm
Location: Quebec, Canada

Re: Presenting UruDistro

Postby Chacal » Sat Nov 27, 2010 9:49 pm

No, I didn't take a 16-month vacation. I was just engulfed in work and real-life priorities.
Also, I was stumped by problems with the PlasmaSum tool, then I was discouraged by my inability to delete visible objects in prps, which was a big show-stopper, as it made any change to existing prps very limited. Add to that the difficulty of going back to a coding project after a year.

Then I learned that you can actually just delete the contents of sum files, as Dustin does with Drizzle, and I found out how to delete visible objects, which is encouraging.

I just completed a tool for deleting visible objects in prps, which can also be integrated into UruDistro.

Recently Sculp has published changes to Cyan's spyroom and Bevin. This has made clear that:
1- Making changes to existing Ages, and trying them is fun and interesting, and
2- Distributing such changes, not so much, and
3- Manually applying such changes, not so much.

And this was for small changes that caused no conflict with other changes.

This gives me some motivation for taking up work on UruDistro again.
Chacal


"The weak can never forgive. Forgiveness is an attribute of the strong."
-- Mahatma Gandhi
User avatar
Chacal
 
Posts: 2443
Joined: Tue Nov 06, 2007 2:45 pm
Location: Quebec, Canada

Re: Presenting UruDistro

Postby Chacal » Mon Dec 06, 2010 3:08 pm

UruDistro is steadily progressing towards a version 1.0.
Almost all functions are coded in VBscript and unit-tested. A lot of functional testing is also done.
Basically, it now works except for a few remaining bugs.

Next comes some intensive system testing. The good news is that UruDistro, by nature, lends itself specially well to automated testing. Basically, I just have to make a distro with all possible cases: adding, changing and deleting files, objects, sdl variables, etc. Also changes with errors: adding a file without including it in the distro, etc.

I have spent a lot of time on the uninstall (or rollback ) functionality, but I feel it is worth the effort.
The main idea here is to allow the player the possibility of rolling back specific changes.

The current way of doing this is to restore backups of whole files. So if you have installed, say, Sculp's changes to Cyan's neighborhood (the secret room), you have to restore a backup of the neighborhood files. This would also wipe out any other changes you would have made on those files, forcing you to remember what they were and reapply them, if at all possible.

By contrast, if you had used UruDistro for applying Sculp's changes, you would also use it for removing them. It would remove only those specific changes.

As previously discussed, UruDistro does this by preparing an uninstall scenario. As it performs each change in the install scenario, it works out the steps for rolling back this change. The next time the user uses UruDistro and selects a previously installed distro, UruDistro proposes the option of uninstalling it. It will then run through all the steps of the uninstall scenario.

The big headache has been to work out the steps for rolling back changes. It is not as simple as it seems.

I won't publish UruDistro before I am reasonably confident about its ability to roll back properly all possible changes.
Chacal


"The weak can never forgive. Forgiveness is an attribute of the strong."
-- Mahatma Gandhi
User avatar
Chacal
 
Posts: 2443
Joined: Tue Nov 06, 2007 2:45 pm
Location: Quebec, Canada

Re: Presenting UruDistro

Postby tangara » Mon Dec 06, 2010 8:32 pm

Chacal wrote: The main idea here is to allow the player the possibility of rolling back specific changes.

That is really great. Looks like you've worked hard. I can not wait to see UruDistro at work! 8-)
User avatar
tangara
 
Posts: 216
Joined: Tue Sep 14, 2010 9:03 am
Location: Nice ( France )

PreviousNext

Return to UruDistro

Who is online

Users browsing this forum: No registered users and 1 guest