|
|
|
|
First I want to thank everybody who has been reading my blog. Even though PainlessSVN has not been "officially" released, I did put it up for the public. I'm giving a discount for my blog readers. Please use "blogearlybirdaug2008", without the quotes to get $30 off the regular price. This will last until September 5, 2008, midnight Mountain Standard Time (UTC-7). The official release is September 6th, 2008. I just got done creating the final install package. On a lark, I went and installed it on my Windows 2008 Server 64-bit. It works! 
I got the integration between ActivePurchase and the Infralution license generating system working now. It took most of the weekend, but that was because this was my first time doing something like this. It will probably take no more than an hour for the next product I need to integrate. I'm writing a big HOWTO article, that will take people through the steps to make this work. This will have both screenshots and code. I started writing it, but it will take a little while to get it done. I have 2 loose ends with PainlessSVN itself, then I'm turning my attention to fixing up some pages in this site. I already put up the download trial and buy buttons, but you'll only see them if you are logged in. I will be putting in a couple discount codes. So if you want to buy PainlessSVN at a discounted price, you'll need to watch this blog. Create an account, and you may see some other goodies. MMC 3.0 has a horrid About box mechanism. You have to put the information in an external dll. This dll needs to be a regular C++ dll, that only contains the resources. This about box looks pretty horrible even after jumping through all these hoops. The information in the dialog is hard coded. Here's what it looks like: 
I thought this was a big no-no, so I decided to add my own about box. This will let me communicate more information to the customers, without all the hassle. Here's what the custom about box looks like: 
I'm quite happy with the results. Kudos to anybody who understands that last phrase in the license key text. HINT: It's not Spanish.  I've been coding quite a bit in the last few days. I finally got the licensing bit from Infralution working correctly. I had to create a custom license generator for Infralution that would work for both the application and as part of ActivePurchase. It took me a while to figure out that I couldn't just use the source code classes from the licensing system. It was expecting a specific signature from an assembly. Once I added a reference to this assembly, then the custom Infralution key generator started working perfectly. All in all, I spent less time than what I had scheduled in my FogBugz (free version) case. What can I say? I'm a horrible estimator!  I decided to use a new PayPal account for the payment processor. I was previously using my personal PayPal account, but decided to make my life easier and got me a PayPal Business account. I just verified all the bits, so this is ready to go. My last bit of work now, is to create a custom step in ActivePurchase that will generate the key, then email it to the customer. Thankfully, I have experience writing modules for DotNetNuke, and I had already translated a VB.NET custom step sample provided by Will to C#. So, I'm not going in totally blind. It looks like I'm going to make my early September release after all. Maybe even September 6. I had a LOT of people ask me about how to recover/reset passwords in a damaged DotNetNuke (DNN) installation. I wrote a quick Winform app to do just this. It's fairly crude, but it get things done. I cleaned up the code a bit and wrote intructions in the read me file. Here is the opening screen: 
Here is the screen after you press the Get Users button 
This is what it looks like when a password is ok. The password will show up in green. 
This is what it looks like when the password is damaged and can't be recovered through the ASP.NET Membership APIs. The Reset Password will reset the password in the DotNetNuke database, then the UI will display the randomly generated password you can email to your user. 
The zip file contains the source. It is a Visual Studio 2008 C# project. Please read the "Read Me.txt" file, inside the zip file, for how to setup the config file. This program will not work if the config file is not setup correctly! I didn't want to spend time creating a wizard to create the configuration file. Internet Explorer users - Please right-click on the links below and select "Save Target As"
DNNUserManager_source.zip DNNUserManager_binaries.zip I have chosen September 6, 2008 as the current tentative date to release PainlessSVN 1.0. The actual hands-on work is less than a month to complete, but life has a way to interfere with my plans. I had to take into consideration my slow recovery from cataract (eye) surgery. I still get pretty tired by the time I get to work though. My eye doctor doesn't want to get me a new prescription until at least 3 weeks after the surgery. I'm on my second post-surgery week. I'm finally down to only one medication (from 5). I'm still getting some really fierce headaches every day. That's the number 1 reason why, I'm not coding more at home, after work. I've also taken into account family obligations. Thankfully, I'm not doing any moonlighting, so I have more free time. My wife got a job closer to home, so I'm carpooling with her. My parents will be visiting us this week. They haven't seen my family since I got married almost 8 years ago. I've been getting myself ready to code at home, by working to fix small bugs and usability in the free utilities. I've only been able to concentrate for about 25 to 30 minutes at a time, in between headaches. I wanted to put out a public date, so that I will push myself to get this thing out the door. I'm sorry that I have been silent for a while. I have been prepping for my eye surgery for a while, and finally had it this Tuesday. I had a cataract removed from my right eye. Recovery had been made more difficult than usual, because I had scar tissue from a long lasting Iritis. I have been putting 4 different kinds of eye drops, four times a day as part of my post-op treatment. I have to wait 5 minutes between each drop. All of the pain medication that I'm taking has made me woozy. Also, my right eye now sees better than my left eye, and my eyeglasses need the lens changed. It makes looking at any screen a chore. I'm finally all moved into my new home office, so at least that's taken care of. I know that a lot of you have been anxiously waiting for PainlessSVN to finally come out. I'll finish what's left, once my eyeglass prescription is fixed. It's sort of disturbing to look at the screen with my old prescription, and very hard to get much done. Well, I had a hair pulling session trying to recover the passwords on my hobby site. Both my admin and host paswords got hosed, so I couldn't just login and fix them.
I first went Googling to find a winform app to help with this problem. Well, all the solutions were just modules to install on your DotNetNuke installation. Since I can't even login as host, this approach is just totally useless. Thankfully, DNN uses the ASP.NET 2.0 Membership Providers.
So, I started with Membership.Provider.RetrievePassword(). Oops, "Bad Data". Crap! I tried other account passwords with the same result. Double-Crap! I modified my little winform app, to now reset passwords. This time I used Membership.Provider.ResetPassword(). Got a new password for host, and I was able to login now. YES! I'm using .NET 2.0 for this winform app.
So if you want to get this working, here is what you need to do:
Make sure that you include the following sections from your DNN's website web.config file:
connectionStrings
system.web
You only need the membership and machineKey sections inside system.web.
Import System.Configuration and System.Web into your project. All of the needed API calls will be under Membership.Provider namespace. You'll find a lot of samples on how to use on Google. Anyways, I wanted to put it somewhere, so that I can find it later, WHEN I would need to do this again. It seems that there is a problem with Subversion 1.4.x running on Windows 2008 Server. Specifically svnserve.exe throws an exception when run either manually or as a service. This happens for all editions of Windows 2008 server, in both x86 and x64 versions. I was able to get the 1.5 version (RC5) of svnserve.exe to run on Windows 2008 server. I used the CollabNet version of 1.5. Be aware that CollabNet bundles the binaries in different directories than the Tigris.org packages. I came across this problem because I'm updating my servers in my private network. I thought others might find this information useful. |
|