Register to post in forums, or Log in to your existing account
 

Post new topic  Reply to topic     Home » Forums » Zugg's Blog Goto page 1, 2  Next
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Fri Feb 18, 2005 7:29 am   

Greedy Developers
 
One of my jobs today was to automate the build process for zApp. This is something I've wanted to do for a *long* time (even with zMUD). By setting up a nightly build, I'll always have the latest version of zApp, or other products, ready to upload at any time.

The steps in the automated build are:
  • Compile the project using the Delphi command line compiler
  • Wrap the resulting EXE file using eLicense
  • Run the WISE InstallMaster software to create the installer

Pretty easy? Well, it gets complicated if you want to automatically update the version resource in the resulting files. I found a free command line utility called STAMPVER that will increment the version resource in an EXE file. Next, the trick was setting up the WISE installer to read this new version and change the install script.

Well, my version of InstallMaster is a bit old (version 6.0). Wise is up to version 9.0 now. Who knows if they've added the functions that I need. All I know is that they want about $1200 for this program, or even about $600 to upgrade my existing version! This is outrageous! This isn't even their Enterprise product aimed at modern MSI installer generation. It's just a silly scripting language for creating install wizards. This kind of software shouldn't EVER cost more than the compiler that I'm using!!

Of course, the problem is that the market leader, Install Shield, charges just as much for their product (which is crappy in my opinion and many others...see the Joel on Software forums for details). These two companies think they have a lock on the installer market and that they can charge as much as they want. I've got source code profilers that do a lot more complicated and important functions that don't cost half this price.

Well, along with many others, I'm not going to take it anymore. I've dumped Wise Installer from my system. Hear that Wise? You just lost a long-time customer with your greed.

Instead, I've joined the many fans of the FREE NSIS installer system from Nullsoft ( http://nsis.sourceforge.net ) This is a wonderful product and has more scripting options that the version of Wise I was using, and produces a much more modern installer, in my opinion.

You can take a look and let me know what you think. I've uploaded the daily build of zApp (End-User licensed version) to http://www.zuggsoft.com/files/zappuser.exe and it uses the new installer. Give it a try and let me know how you like it.

I'll be putting this file somewhere more accessible and will probably upload it once a week or so. I'm not going to automate the FTP process each night because I want a bit more control of what goes out to the world (in case the eLicense wrapper fails or something). But my daily build script is now working great. It automatically updates the version number and propogates that into the NSIS installer script.

And I think I have a new mission in life. After eMobius is done and I'm making enough money from sales to pay my bills, I'm going to start writing more free software. I'm going to find some company that thinks it has a market-lock and is charging outrageous prices for software and I'm going to make a cheap or free competitor.

Even though eMobius won't be free, it has a similar philosophy...quality software at affordable prices. It will be a lot less expensive (especially in overall cost of ownership) than Microsoft Outlook. These companies just need to learn that software shouldn't be this expensive.
Reply with quote
Nezic
Apprentice


Joined: 10 Oct 2000
Posts: 119
Location: Colorado

PostPosted: Fri Feb 18, 2005 8:14 am   
 
The new installer is *much* better than the other one. I had always thought that the previous one looked kind of dated, so you saying it was version 6 at least confirms to me that I'm not crazy Cool.

-Nezic
Reply with quote
Rainchild
Wizard


Joined: 10 Oct 2000
Posts: 1551
Location: Australia

PostPosted: Fri Feb 18, 2005 11:00 am   
 
Yeah I been a fan of the nullsoft installer for a while, takes a bit to package BDE though... probably I should just use the ADO components or something so I don't need to package BDE but most of my programs use the good ole TDatabase / TQuery etc so it'd be a pain to convert all the old code.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Fri Feb 18, 2005 8:01 pm   
 
Rainchild, you should seriously look at the Zeoslib stuff ( www.zeoslib.net ). It supports Interbase (and the newer Firebird versions) directly WITHOUT using the BDE. It provides a TzConnection instead of TDatabase, and TzQuery instead of TQuery, so the changes are minimal. They really tried to make it compatible with people already using the BDE. Also, it is very compatible with the TADOConnection and TADOQuery in case you want to convert to ADO for some crazy reason (or if, like me, you are converting from ADO to Zeos).

Anyway, during my conversion from ADO to Zeos I noticed that they removed a lot of the ADO wierdness and stuff closer to the Delphi standard from the BDE days.

And then distribution is a snap because db support is compiled in and there is nothing extra needed in your installer for BDE support. And it gives you a really good path to upgrade backend databases in the future to use SQL Server or Oracle or something like that.

Anyway, take a look. You might be surprised how easy it is to convert, even if it means a bit of typing to rename things. The TzConnection is a new object, so converting the TDatabase stuff might be the trickiest. But TzQuery inherited from the same TDataset that TQuery does, so that conversion should be pretty easy.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Fri Feb 18, 2005 11:02 pm   
 
Just finished the final touches on the nightly build script and also wrote some scripts to update my CVS tree each night.

Gee, with nightly builds and all of this CVS stuff, along with the automatted backups, I feel like a *real* professional now Razz

Seriously, this should really all help prevent additional disasters, get releases out sooner and with fewer mistakes, and make it easier to focus on my programming. It's quite a load off my mind.

Thank goodness for quality free software such as NSIS, the NIS Editor, and the TortoiseCVS applications. This stuff is better than a lot of stuff I have paid money for. I'll be sending out some donations today for sure.
Reply with quote
Vijilante
SubAdmin


Joined: 18 Nov 2001
Posts: 5182

PostPosted: Fri Feb 18, 2005 11:58 pm   
 
A few things I noted in your first test of the nightly system.

Installer specific:
Descriptions need to be added to the installer package for each option.
Options seem to turn on and off when being selected outside the check box. This is counter to normal Windows behaivor, but I don't think you can change this. Something to bug report to Nullsoft perhaps.
I didn't have accurate test for this, but it is something I always wanted. Please detect my installation preferences. If I selected a different directory then the default, please suggest installation of update in my preferred directory. If I chose not to have a desktop icon, then have that unchecked for me next time I update. I have enough stuff that is important to me on my desktop without some program adding more.
Most important of all, add an option to not install Start Menu shortcuts. I arrange my Start Menu the way I like it and don't need every program installed to add its shortcuts in again at their default locations when I update. I especially get irritated at those programs that use the All User Start Menu vs. my user Start Menu. Just because I have to click yet another popup just to get rid of the unwanted menu items.

General:
Version number should also be stamped directly onto the installer exe.
Naming, would be equally nice. I tend to keep a few versions of software I heavily use around. Having version numbers in the name is important. On occasion I have checked the bug fixes of software and seen some new "feature" that I knew would cause a problem and specifically avoided updating to that version; while at the same time down loading that version and archiving it since I was already looking at it. I understand this makes even more effort to update all the links to point to the new version, but this sounds like just another place you need some automation.

Other then those qualms, most of which are general installer qualms, I love the new look. I also am extremely happy that you have found the tools needed to achieve the right level of automation. Such automations are what computers were invented for, sadly through human progress the distribution of computer software created more needs for such automations then solutions.
_________________
The only good questions are the ones we have never answered before.
Search the Forums
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Sat Feb 19, 2005 12:51 am   
 
1) I've added the descriptions
2) Not sure what to do about the options. Not major enough to worry about I don't think. They probably think its a "feature"
3) Yeah, there was a bug...it wasn't saving the install directory properly. Should be fixed now. But Nullsoft only allows the install directory to be saved for updates. It doesn't have any way to save everything else unfortunately. Then again, neither did WISE.
4) I turned on the option to allow you to choose the Start menu name. If you clear this field then it won't put anything into the start menu at all. Let me know how it works. It would be nicer to have a checkbox for "Don't create any icons" but it doesn't look like this is supported by default and I'd have to get into the low-level guts of NSIS to add this.
5) I have modified my nightly build routines to stamp the installer with the same version info as the main zapp.exe file. But the Name and Description will show "zApp Installer" rather than zApp. The version currently on the site didn't use this yet, so the version number isn't yet set correctly. The next upload, after the next nightly build, should have the corrected version info.
6) It will *not* put the version number into your shortcuts in the Start menu however. I tried this way back with zMUD and all of the many versions just caused a mess. So, the start menu icon always shows just "zApp". You have to right-click on the file to see the version info.

Thanks for running it and letting me know about these problems. I've also updated the graphics in the new version, so download it again and give it a try. I think it's working pretty well now. Also, if someone could try the Uninstall option and let me know if that works, I'd appreciate it.
Reply with quote
Vijilante
SubAdmin


Joined: 18 Nov 2001
Posts: 5182

PostPosted: Sat Feb 19, 2005 6:27 am   
 
On my original post...sorry I didn't number them.
4. Perhaps you can put Start Menu icons as an option like the Demo Applications then skip the Group screen is the option was unchecked. After rereading your post I saw that you said the same above. From what I see on their website it looks like the scripting language is supposed to handle things like this. I guess it is not that important immediately. Getting zApp and eMobius written is more important.

4.1. Tested the no group name with just 1 icon deleted from first install. The icon was recreated on second install, so I don't think that it was working. Also tested again after uninstall, group with all icons was created.

6. Sorry I was unclear. I meant instead of having "zappuser.exe" as the dowladed file name something like "zappuser 2.1.0.19.exe" would be nice.

New items:
7. When the installation is completed and zApp is run from the final installer screen it is not brought to the front. I had another app covering my whole screen and couldn't see the standard eLicense window pop up.

8. Uninstall left behind Start Menu group and shortcut to Zugg Software Website, this might not be too bad if the url file was directly placed in the menu instead of the menu shortcut reflecting to zapp.url.

9. Uninstall should refuse to run with a message while zApp is running.

10. Both installation and uninstallation logs are nearly impossible to view. I have no problem with the install log disappearing as long as I can look at a file. Uninstall logs though shouldn't vanish until the user has had a chance to review them. Some of us are paranoid about what programs decide to delete during uninstalls.

11. When installation completes the "Cancel" button should not be visible or at least unselectable.

12. Demo apps need to have shortcuts. People first trying out zApp may be a little confused when they get a message to "Run Zeus with command line argument indicating which .ZML file to execute." I know the people that are confused by this aren't your target market, but when the market expands it may be very important.
_________________
The only good questions are the ones we have never answered before.
Search the Forums
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Sat Feb 19, 2005 7:51 pm   
 
Thanks for the additional comments. I've uploaded yet another version Smile

4) Turns out there was an option for displaying a "Dont install shortcuts" that I hadn't seen. So, this turned out to be easy to fix

6) I can't do different filenames. a) I can't easily get the version string from the resource file into a DOS variable in order to rename the file, and b) if the file name was different all the time, then I'd have to change the links on the web site, and that would also be a pain. The version number is actually pretty meaningless anyway when it comes to weekly builds. People using weekly builds should just be overwriting their previous version with the latest version and not keeping old versions around (except for production releases).

7) Doesn't look like there is anything I can do about this one. It's calling a NSIS command called "Exec" to run zApp and there are not any options or anything that can be changed in this. I really have no idea why it's opening behind all your other apps. It's possible I can put something into zApp itself to bring itself to the front when it is executed.

8) This was a typo in the installer and should be fixed now.

9) Done. I also added a message to the installer to quit zApp before installing if it is running.

10) The uninstaller should now wait at the end before closing so you can view the log. I'm not going to change the installer though.

11) I figured out how to hide the Cancel button on the Finish page.

12) Actually, not really. The Demo apps are in flux and there will be more of them, and changes to the existing ones. I don't want to clutter the start menu with lots and lots of shortcuts. What is going to change instead is how zApp reacts when you run it without a command line. Future versions will have a dialog box allowing you to select the zApp application you wish to run. So, don't worry about this much for now.

At some point in the future, if I have a more comprehensive zApp demo, I might add a link to that to the shortcuts. But none of the current demos really fall into that category.

Oh, using your idea about the checkboxes for the options I added an option to determine whether the installer associates the .zml and .zxl extensions with zApp. It was easy, so I decided this was a useful feature too.

I also added a URL link to the finish page.

I really like the flexibility of this installer!
Reply with quote
Darker
GURU


Joined: 24 Sep 2000
Posts: 1237
Location: USA

PostPosted: Sat Feb 19, 2005 10:12 pm   
 
Oooo, The SuperPimp Installer. Been using it for a couple years, not just for installers, but even for little utility programs at work, like on login, switching registry flags to control disallowed-users access to the internet (I force them to use an internal proxy, and then remove the Connections tab from IE. It's dastardly :) )

Anyway, Zugg, the registry functions in NSIS should let you store/re-read keys that you can use in future installers to set defaults based on options chosen in a previous install process. The software is just so damn nifty, I love it.

Let me know if there's specific things that you get stuck on, I'd be happy to help.
_________________
Darker
New and Improved, for your Safety.
Reply with quote
Darker
GURU


Joined: 24 Sep 2000
Posts: 1237
Location: USA

PostPosted: Sat Feb 19, 2005 10:14 pm   
 
Oh, and you can change the installer's icon, too. :)
_________________
Darker
New and Improved, for your Safety.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Sat Feb 19, 2005 10:25 pm   
 
Cool, glad to hear someone else has experience with this too! Turns out that the default StartMenu page *does* save the previous settings. So, that should already be working.

And yeah, I love the power of the registry setting stuff. Dealing with setting the association for the ZML and ZXL file extensions was a lot easier than with the silly GUI that WISE forced on us.

And yeah, I wasn't sure what to set the icon to, so I just used one of the blue default icons. Maybe I should use the standard Windows installer icon or something? I'm interested in suggestions.

The only thing I couldn't figure out how to change is the blue icon shown on the right side of the top of the screen (just below the custom zuggsoft banner) on the main pages (after the starting page). Does it force this to be the same as the icon you are using? I'd like to change it to the orange icon that matches the rest of the theme of the page.

And what do people think of the line of gray text that identifies this as using the Nullsoft installer. That can also be changed, but I thought it might be good to leave it the way it is so that other people will find out about this great installer software. Question is, does using a "free" installer like this make Zuggsoft seem less professional?
Reply with quote
slicertool
Magician


Joined: 09 Oct 2003
Posts: 459
Location: USA

PostPosted: Sun Feb 20, 2005 12:14 am   
 
Wow, it looks _really_ nice. I especially like the start menu page, because I categorize my start menu to keep it compacted more... I clicked on the appropriate start menu folder in the list and it automatically put \zApp after it so I didn't have to =)

I might have to look into using the NSIS for some of my apps as well.
_________________
Ichthus on SWmud: http://www.swmud.org/
Reply with quote
Darker
GURU


Joined: 24 Sep 2000
Posts: 1237
Location: USA

PostPosted: Sun Feb 20, 2005 3:41 pm   
 
Zugg: Yeah, that's the same as the installer's .exe icon. Sounds like you're building your installer through the NSIS gui. I hand-code mine. :P

Unfortunately, I use a different skin than you do, so I'm not familiar with how to set the icon (nor through the gui), but I'm sure that if you go through the helpfiles or to the help/forum section of the website you'll find the answer.
_________________
Darker
New and Improved, for your Safety.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Sun Feb 20, 2005 8:42 pm   
 
Yeah, I started with the NSIS Editor program wizard. That gave me a good template so I could see how the system worked. I'm using the Modern UI interface, which I like and seems to be highly customizeable. And yes, the more I explore the various examples, the more I learn.
Reply with quote
Castaway
GURU


Joined: 10 Oct 2000
Posts: 793
Location: Swindon, England

PostPosted: Mon Feb 28, 2005 11:48 am   
 
Why would using the Nullsoft installer make Zuggsoft seem less professional?

1) Your average user won't know/notice that its a free installer (unless it says so all over the install).
2) Your average user just wants to get the software installed, and even if they know/notice, won't care.
3) Your slightly more than average user may notice, and think 'great! I don't have to pay extra on this software, because the company is using a free installer, so it's cheaper for me!'
4) The odd (read: strange) user may know and care, but seriously, if any were that biased as to not install your software because it uses a free installer, I don't think I'd want them as customers anyway.

Surely its all the rage these days, anyway.. I would guess any professional reviews you get (and I hope there are many positive ones, when the time comes), will still focus on what the installer gets done, and not where it's from.

In My not so Humble Opinion, anyways..

Lady C.
Reply with quote
Kiasyn
Apprentice


Joined: 05 Dec 2004
Posts: 196
Location: New Zealand

PostPosted: Mon Feb 28, 2005 12:50 pm   
 
I have always considered the "self-extracting" winzip installers unprofessional... but then again, winzip comes in one of them and winzip is used like, everywhere :P

NOTE: Although i consider it unprofessional, i wanna see the candy, not the wrapper? :P (the program not the installer :))
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Tue Mar 01, 2005 8:02 am   
 
Yeah, I definitely agree that programs with just self-extracing winzip installers seem very unprofessional, but hey, if the program you are installing only needs something simple like that, I guess it's fine. My software tends to be more complex than that.

And yeah, I've decided to go ahead and leave the Nullsoft info there. Mainly because I noticed that I got annoyed at some other software vendor when it was obvious they were using Nullsoft, but had cleared out the Nullsoft info, and I felt that Nullsoft should get credit for writing something that is so good. When I realized I had reacted negatively to seeing the Nullsoft info removed, I decided that I won't remove it in my software.
Reply with quote
Darker
GURU


Joined: 24 Sep 2000
Posts: 1237
Location: USA

PostPosted: Tue Mar 01, 2005 1:57 pm   
 
Wimp.
:)
_________________
Darker
New and Improved, for your Safety.
Reply with quote
Kjata
GURU


Joined: 10 Oct 2000
Posts: 4379
Location: USA

PostPosted: Tue Mar 01, 2005 3:23 pm   
 
While on the topic of installers. Here's something interesting. Seems like Microsoft has released their internal MSI builder toolset as an open source project under SourceForge. Here's a blog entry in MSDN talking a bit about it:
http://blogs.msdn.com/robmen/archive/2004/04/05/107709.aspx

and the SourceForge project home page:
http://sourceforge.net/projects/wix

I haven't checked it out much (I only used it once for a very small project while at Microsoft las summer), but the MySQL people seem to like it. They've incorporated it as their toolset for developing their Windows installer.
_________________
Kjata
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Tue Mar 01, 2005 7:46 pm   
 
Hmm, that's interesting. But I've always stayed away from MSI installers because they don't work on older versions of Windows without having the user go install all of the Microsoft MSI stuff. I've just never seen a good reason for switching to MSI over a standard installer, especially with stuff like the Nullsoft installer available. Is there a good reason I should care more about the MSI stuff?
Reply with quote
theNerd
Adept


Joined: 01 Mar 2005
Posts: 277

PostPosted: Tue Mar 01, 2005 7:47 pm   
 
I've worked with InstallShield which is, in my opinion, a lousy and very expensive installation maker. We bought it at work here and it cost $1,000 per developer’s license (we got two.) After finding it far too buggy I started using InnoSetup (free and developed in Delphi) which is far better and more stable! I also work with thInstall and if you are unfamiliar with it you should really check it out!! It wraps your entire EXE and dependencies into a single exe. It does not need to register anything on the user's PC because it uses it's own virtual registry and virtual file system. Using thInstall it is theoretically possible (legalities aside) to create a thInstall of IE4, 5 and 6 and have them run simultaneously without affecting the end-user's pc at all.
Reply with quote
slicertool
Magician


Joined: 09 Oct 2003
Posts: 459
Location: USA

PostPosted: Wed Mar 02, 2005 1:56 pm   
 
MSI files have the feature of being smaller than most other installers, because it's just the components and script for install without the overhead of the actual installer. It does have the ability for the user to go back and 'repair' the installation if something gets corrupted and can be attached to group policies in Active Directory for automated publishing to computers and users.
_________________
Ichthus on SWmud: http://www.swmud.org/
Reply with quote
Krule
Adept


Joined: 12 Nov 2000
Posts: 268
Location: Canada

PostPosted: Wed Mar 16, 2005 3:52 am   
 
MSI files can also be deployed to Windows Domains automagically (although it is capable of creating an msi file using a vanilla machine and taking 2 snapshots..which is what I do at my office when I am confronted with programs that don't use msi's)

I hadnt read the reply above me, but thats basically what I was saying.
Reply with quote
theNerd
Adept


Joined: 01 Mar 2005
Posts: 277

PostPosted: Wed Mar 16, 2005 3:42 pm   
 
Here is an example of a greedy developer. Around 2 years ago I purchased an awesome product called thInstall. It cost around $749 at the time (expensive but cheaper than InstallShield and had awesome technology.) I got one year of free upgrades. I used my version of thInstall at work here to demonstrate its potential (a proof of concept.) They loved it and went to purchase it - then decided not too. thInstall now costs $4,000 per application or $75 per desktop that uses the application it creates if it is used internally in the company. We have over 8,000 agents who would use software based on that. The only thing that has been added to thInstall since I purchased it were some bug fixes and scripting.

As a quick run down on what thInstall is, in case some don't know: unlike traditional install packages, thInstall installs nothing. It contains a thin virtual OS, virtual registry, virtual file system, etc. One example they are going to create is FireFox in a single file that could be put on a Flash drive. Any application created in thInstall will run even on a guest account. You could check out more at www.thinstall.com, however, I am certain it is now out of the price range of 99.9% of all developers.
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » Zugg's Blog All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
© 2009 Zugg Software. Hosted on Wolfpaw.net