DarkPhoenix Posted July 19, 2004 Share Posted July 19, 2004 Hey everyone, I need your thoughts and opinions on this project I am working on.The name of the program will most likely be, lame as I am, "BeUpdated". As the name indicates, it will um.. be updated. Here's basically how the program works:There will be a file list on an internet server. (which I will keep updated) Before you make your unattended installation CD/DVD, you run the utility in preparation mode, and choose which programs you'd like BeUpdated to keep updated for you. (The file list will contain dozens of programs, but you don't have to use them all, of course, only the ones you want) Then it will (optionally) download these files, and you burn them, together with BeUpdated. Then, during T-13 or in RunOnce mode or in GuiUnattended mode, or wherever you feel like installing your software, you run BeUpdated. When it is run, it will again download the file list. (on the remote server) If you chose to download those files in preparation mode, BeUpdated will check its file list against them, and if they are up to date, it will just install them. If they are not (or you chose not to download them), BeUpdated will download the updated version, and then install it. This way, even if your CD is not entirely up to date, your installtion can be. You can also save space, by not keeping the actual files on the CD, just downloading them during installation. That's the thought behind this.Of course, the file list will only contain shareware and freeware. There will be no possibility to download full versions of programs that requires registration. (except for a few, like AVG Antivirus)For those who are interested, I've created a flowchart of the installation program... although it was made more for myself. (I'm somewhat clumsy when it comes to programming -- I never really know which parts to do first and which to do last -- so this helps me to put the program together in the right order) It sorta gives you a wrong image of how the program works though. The flowchart suggests a synchronous flow; this program, however, is highly asynchronous in the way it works. I'll show you the (current) configuration file to let you know what I mean:<?xml version="1.0" encoding="utf-8"?><BeUpdatedConfiguration version="1.0"> <!-- NOTICE All tags in this file are case sensitive, and must not be modified. Please only change the values between the "" characters of the value attributes. --> <RemoteFileList> <!-- USE REMOTE FILE LIST If this value is set to 1, then the program will use the value specified in URI to download a remote file list. If set to 0, it will use the local file, filelist.xml, which then must reside in the same folder as the program. If this file is not present, and the value is set to 0, or the remote download fails, and it is not present, the program will raise an error, and end. --> <Use value="1" /> <!-- URI This value specifies the location of the remote file list. If you wish to use DarkPhoenix' updated file(s), just leave this value alone. This value can contain URIs to more than one file, and each file is to be separated by a '|'. (vertical pipe) Since the program currently only supports the http protocol, it will be added automaticlly, so don't have it here. --> <URI value="localhost/filelist.xml" /> <!-- RETRIES IF DOWNLOAD FAILED This value specifices how many times the program should try to download the remote file list file before it should give up and resort to the local file. (which will most likely be out of date) If this value is set to less than 0, it will retry until it succeeds. (not recommended) The recommended value for this is a number between 2 and 20. --> <RetriesIfFailed value="5" /> <!-- TIME TO WAIT BETWEEN RETRIES This value specifies how long the program should wait before it will retry to download the remote file list in seconds. This value should not be any less than 30 seconds, to avoid load on the server, and because if the file is unavailable, it will most likely take at least 30 seconds until it is ready. If this value is set to less than 30, the program will override it, and just set it to 30. --> <WaitTimeBetweenRetries value="30" /> </RemoteFileList> <ProgramDownloads> <!-- TRY TO REACH A BANDWITH OF This program will download and install files asynchronously for most efficiency. Because of this, it will try to reach a certain amount of kb/s in order to be as efficient as possible. This is done by starting the downlaod of one file, letting it run for a while, compare it's download speed with this value, and if it not within reasonable reach of this value, the program will start the next download. Then after a while, it will again test the speed, and this it will repeat until the download speed is within reasonable reach of this value. If the download speed exceeds this value, no action will be taken to reduce it. This is a minimum value, not a max value. If it is set to less than 1, it will not be cared for, and the program will only care for the MaxSimultaneous value. --> <TryReachBandwidthOf value="100" /> <!-- MAX SIMULTANEOUS DOWNLOADS This value indicates how many programs the programs will try to download simultaneously. This overrides the value set in TryReachBandwithOf. If the bandwith has not been reached, but the program is already downloading the amount of files set here, it will not try to download more. If this value is set to less than 1, there is no maximum amount of simultaneous downloads. Combinations of these two values can have the following scenarios: TryReachBandwidthOf > 0, MaxSimultaneous > 0: The program will try to reach the TryReachBandwithOf value, but stop if the amount of files would be more than MaxSimultaneous. TryReachBandwidthOf > 0, MaxSimultaneous < 1: The program will try to reach the TryReachBandwithOf value, and will do so by downloading more files simultaneously until it is reached. (or there are no more files left on the list to add) TryReachBandwidthOf < 1, MaxSimultaneous > 0: The program will always download the amount of files in MaxSimultaneous. (unless there are less files left to download, of course) TryReachBandwidthOf < 1, MaxSimultaneous < 1: No limits set, all files on the list will be downloaded simultaneously. (not recommended) --> <MaxSimultaneous value="10" /> <!-- RETRIES IF DOWNLOAD FAILED This value specifices how many times the program should try to download the program before it should give up and resort to the local file. (if it exists) or skip the program in question. If this value is set to less than 0, it will retry until it succeeds. (not recommended) Recommended value for this is a number between 2 and 20. --> <RetriesIfFailed value="2" /> <!-- TIME TO WAIT BETWEEN RETRIES This value specifies how long the program should wait before it will retry to download the program in seconds. This value should not be any less than 30 seconds, to avoid load on the server, and because if the file is unavailable, it will most likely take at least 30 seconds until it is ready. If this value is set to less than 30, the program will override it, and just set it to 30. --> <WaitTimeBetweenRetries value="60" /> </ProgramDownloads> <!-- SILENT MODE If this value is set to 1, then the program will show a GUI where the file download progress will be shown and which programs that have been installed will be shown. Since some people think that an unattended installation should not show any kind of progress or dialogs, this setting has been included to make it possible to not show any dialogs. Error messages will still be shown. --> <Silent value="0" /></BeUpdatedConfiguration>As you can see, it will (possibly) download more than one program at once. (although it will never install more than one program at a time) To be most efficient, this program will do its best to utilize your whole network speed, and the fact that windows can do multithreading.This program will be made using the .NET Framework. Why? Cause I won't bother doing it the hard way. The .NET Framework is maybe cluttered, but it lets me do stuff quick, it works fine, and since most PCs using XP have enough RAM and processor speed, the fact that it uses .NET Framework shouldn't matter too much. This not a game that needs super fast calculations. If you don't like the .NET Framework and do not want to install it, you cannot use this program either.. but nobody forces you to.I'll show you my sample filelist.xml too, in order to give you an idea how that works.<?xml version="1.0" encoding="utf-8"?><BeUpdatedFileList version="1.0"> <FileEntry token="GetRight"> <Name>GetRight</Name> <Size>3048387</Size> <MD5Hash>EE4D54C9F9F3168BF343A154B8C1BE1</MD5Hash> <Version>5.1.0</Version> <URI>http://www.xright.com/getrt510.exe</URI> <FileName>getrt510.exe</FileName> <SilentSwitches>/s</SilentSwitches> <VerySilentSwitches>/s</SilentSwitches> </FileEntry></BeUpdatedFileList>During my testing phases, I only deal with GetRight.. but when the program is done, this file will contain many more programs. When you run the preparation program, there will be another file that stores the tokens only. Then, when the installation part comes, it will only care about the tokens you picked when downloading and installing programs. SilentSwitches will be those switches that may show up a progress bar or something, but still be unattended. The VerySilentSwitches will hide everything. I figured I'd do it this way, since some people prefer the former, and some the latter.Finally, there are some command-line arguments you can use against BeUpdated. Here:/conf <path-to-configuration>This can be used to for instance have the configuration file on a floppy disk or something, in order to change it without updating your CD./log <path-to-log>If you wish to log how things are going, this is the one to use./silent <1 or 0>This overrides the configuration file. No idea why I added this.Wow, that was a lot of text.. well, if you've read it all, you're probably interested.. so tell me guys.. what do you think? Should I complete this? Would anyone use it? Does it seem useful? Do you have any suggestions or improvements that I should add? More options maybe? Any thoughts? Do tell me. Link to comment Share on other sites More sharing options...
DarkPhoenix Posted July 19, 2004 Author Share Posted July 19, 2004 Hmm.. there's no interest, is there? Oh well, glad I asked then. I've saved myself some working hours. Link to comment Share on other sites More sharing options...
bonedaddy Posted July 19, 2004 Share Posted July 19, 2004 @ darkphoenixgive it a chance, sometimes things here take off slowly.By the way who is going to maintain and keep this site up to date?goodluck bonedaddy Link to comment Share on other sites More sharing options...
Alanoll Posted July 19, 2004 Share Posted July 19, 2004 There will be a file list on an internet server. (which I will keep updated)I just don't know if I really see that point. Sorry.What exactly does it do? That was too much to read, so...yeah....summary? Link to comment Share on other sites More sharing options...
Vann Posted July 19, 2004 Share Posted July 19, 2004 It sounds like his idea is to keep a list of applications and version numbers online, and then have a program (BeUpdated) download some (or all) of those applications and create a Windows installation CD that will automatically install the (hopefully current) applications downloaded at the beginning. Then, during the install, it looks to see what programs you chose to put on your CD and installs any updated versions that have been updated. The idea, of course, is to have your installations as up-to-date as possible without having to burn a new CD every time a new version of XYZ application is released.The problems, of course, are 1) How can we trust this list? and 2) How will the list be maintained?After all, couldn't you change the list to surreptitiously install a, say, key-logging program? Link to comment Share on other sites More sharing options...
DarkPhoenix Posted July 19, 2004 Author Share Posted July 19, 2004 What exactly does it do? That was too much to read, so...yeah....summary? I'll try. Most programs update now and then, right? You put (in my example) GetRight 5.1.0 on your unattended CD and in a few weeks or months, GetRight 5.2.0 is out, and you need to update your CD.What my program does is to check if the newest version of a program is on your CD, and if so, install it. If a newer version has been released (I'll do my best to keep this list maintained, or maybe get someone to help me as well) BeUpdated will download it to your temp folder, and install the newer version instead. This way you can keep your installation updated without actually having to make a new CD for every program update out there. I'll try to include as many programs as possible on this list, ranging from Mozilla, Firefox, Opera, etc. to things like AVG Antivirus, 7Zip, Daemon Tools, etc., so that most people would find it useful.Another way that it can be useful is that you can entirely leave the files out of the CD, and have BeUpdated always download the version it has on its list, keeping the amount of files you need to have on your CD to a minimum, thus leaving space for other files, that are not free/shareware by nature (like Office, Photoshop, etc., which this program will not, naturally, include)Hope that clarifies some of my idea... Link to comment Share on other sites More sharing options...
DarkPhoenix Posted July 19, 2004 Author Share Posted July 19, 2004 1) How can we trust this list? and 2) How will the list be maintained?After all, couldn't you change the list to surreptitiously install a, say, key-logging program?1) Well, yes, I could. I won't, but I could. If that was my intention, I could just build that into the BeUpdate executable, now couldn't I? Just to mention it, so could GreenMachine with his XPCreate and nuhi could basically have a key-logger included in his nLite.exe file. But they don't. And why would I? If you see the configuration file, you could choose not to trust me, and keep a list of your own. I'll be using a method similar to the one GreenMachine uses. You don't have to trust me, but I can promise you that I won't do something like that.2) I'll try to keep it updated myself, (like GM) but if it becomes too much of a hassle, I'll maybe let someone else help me as well. In any case, this program will have a file list more updated than the one your CD has. Of course I can't sit all day updating it, but I'll update it at least twice a week when I'm ready. Link to comment Share on other sites More sharing options...
prathapml Posted July 19, 2004 Share Posted July 19, 2004 @DarkPhoenixPlease go ahead with your idea, I'm interested. I don't know about the others here, but I'm a big-time user of shareware/freeware (which seem to release a new version every 4 days) - and your app seems like one which has a lot of potential to help in these circumstances. Link to comment Share on other sites More sharing options...
kingroach Posted July 20, 2004 Share Posted July 20, 2004 If new versions of programs have different unattanded command then what happen? can u also include the unattanded command with the list? and to reduce ur work let the list be a public project and u or some other person will be moderator then if anybody want to add something to the list then u will review and add to the list ( just to lighten ur work). Link to comment Share on other sites More sharing options...
DarkPhoenix Posted July 20, 2004 Author Share Posted July 20, 2004 If new versions of programs have different unattanded command then what happen? can u also include the unattanded command with the list?The switches the programs will need will always be a part of the file list, so that it will always run smoothly.In any case, there's been someone who wants me to do it, so I guess I will, after all. Maybe more people will use it once it's done. heh. I am allowed to hope, right? Link to comment Share on other sites More sharing options...
mdes Posted July 20, 2004 Share Posted July 20, 2004 Very good idea <SilentSwitches>/s</SilentSwitches>because there not so much installation programs, it will be easyer to define something like<SilentMode><InnoSetup>/s</InnoSetup><Other installation prog>xxx</Other installation prog></SilentMode>with <SilentMode> independant of the applications to install.Or something reversed, i.e. :Level n : Installation programs list tagLevel n+1 : Installation program nr iLevel n+2 : Silent switches tagLevel n+3 : Silent switches valuesLevel n+2 : Very Silent switches tag...Level n : Appication list tagLevel n+1 : Application nr xLevel n+2 : Installation type tagLevel n+3 : Installation type value (e.g. InnoSetup)... Link to comment Share on other sites More sharing options...
DarkPhoenix Posted July 20, 2004 Author Share Posted July 20, 2004 @mdes: I understand the first part of your idea, but the Level n and Level n+1 and so forth escaped my comprehension... Link to comment Share on other sites More sharing options...
killerbee Posted July 20, 2004 Share Posted July 20, 2004 hi,sounds like a great app. If it get's a option to only use freeware would be great...cyaKiller Bee Link to comment Share on other sites More sharing options...
Radimus Posted July 20, 2004 Share Posted July 20, 2004 What I am looking at doing is something along those lines (well, not really)I was going to do a 3 CD setDisk 1 (WinXP + SP + hotfixes + drivers) unattendedDisk 2 (MSO2k3 + updates) unattendedDisk 3 (install.bat, winzip, shockwave, etc) unattendedWhile each disk would have to be recut whenever changes need to be made, it would be simple changes... add additional files, edit the install bat, ISO it, and burn. If Daemon tools was installed, disk 2 and 3 wouldn't even need to be burned (if on LAN) Link to comment Share on other sites More sharing options...
mdes Posted July 20, 2004 Share Posted July 20, 2004 @mdes: I understand the first part of your idea, but the Level n and Level n+1 and so forth escaped my comprehension...It is just a matter to describe dependance (inclusion) of data and tags <level n><level n+1>...</level n+1></level n> Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now