Shareware licensing
My upcoming shareware application is almost ready. There is some more testing to be done in Windows 2000 and Windows XP. I am also going to try to run it in Ubuntu using Mono, but that will come after the initial release. I’m arguing with myself about whether I should implement the GUI in WPF in a future release or if I should stay with WinForms so that I can run with Mono.
Apart from testing I still have to implement some sort of licensing system. I would prefer having the keys generated by the PayPal manager I have in PHP so that the sales process can be fully automated. It will take some extra care since an issued key has to work in the future. I can’t upgrade that part of the code without invalidating all issued keys.
My first attempt created a key based on the customers email address. The big flaw with it was that it was only possible to do one check so if someone figured out the algorithm for creating the key I would have free keys online forever. I need to create a license key that I can do several different checks on in different versions of my program.
At the moment I’m thinking of using hashes of GUID’s. That way I can incorporate different GUID’s in different compiles of the program. It will also be possible to include lists of invalid GUID’s both in the application and as part of the automatic upgrade manifest.
The next problem will be to inline the validity checks in my c# code so that the potential cracker has more than one place to shortcut. I don’t believe it will be cracker proof. It just has to be hard enough to stand the first attempt at cracking it.
Hopefully I will make the release early September.
The Long Tail and The Diamond Age
I’m almost done reading The Long Tailby Chris Anderson.
It is the kind of book where I feel I’ve thought of the basic ideas presented before. Not that I could have written it myself though. Far from. Chris describes the long tail as all the small niches that doesn’t get any shelf space at Best Buy, but are very lucrative when exposed on the web. This is because web sites like Goggle and iTunes helps bringing niche consumers and niche producers together. It also looks like more and more people are turning away from being hit consumers when it becomes easier to find just the right niche products.
Anyway; this infinite range of products got me thinking about The Diamond Ageby Neal Stephenson. This book portrays a world where mankind has mastered nano technology so that it is possible to crate almost anything on a molecular level. It is a world where diamonds are cheaper than glass since diamonds are made of carbon atoms in straight lines as opposed to the internal chaos of glass. In the homes, of those that can afford it, there are machines that can create things. These machines are connected to a feed from which they get the materia needed. In this post information-industry world the feed is as much class barrier as internet for us today.
Working offline with Team Foundation Server
I’m just about done reading Professional Team Foundation Serverand at the end I found this little gem:
This tip needs the Team Foundation Power Tool (tfpt.exe) to work.
When you are working offline you just clear the read-only attribute on the files you want to edit. Later, when you are online, you open the command line, navigate to your workspace and run:
tfpt.exe online
Now the power tool will find all those writable files and create a change set from them.
Remember that you can not rename files while offline, but it is ok to add or remove files.
My votes for Blog Project Three
Here are my votes for Blog Project Three.
- L’Amour De Blog: 3 reasons why blogging is like being in love
- Three Things to Do Before You Click Publish (and One Thing to Do After)
- Three is a Magic Number
- 3 Tips for Staying Focused with Small Children
- Three things I want my kids to refrain from saying on our upcoming road trip
- 3 + 3 + 3 Places Where You Can Get Free Icons For All Seasons And Reasons
- The 3 P’s for Creating a Successful Website – Passion, Persistence, and Patience
- 3 Must Do Things For A New Blogger
- 3 Things no one told you about web monetizing
- Three reasons to try a marathon…
- 3 Reason Why Entrepreneurs Succeed!
- Top 3 Reasons Why You Have to Work from Home
- 3 Signs that You are in the Wrong Company
- 3 Ways to Track Your Comments
Sharpdevelop, resources and compiler error
When I moved logview4net to SharpDevelop I got the dreaded CodeDomSerializerException in the WinForm designer. It complained about resources not existing.
Since everything worked in Visual Studio and the application compiles and runs I started looking for other things. After some digging around I found that the properties in the typed resource class was declared internal. I changed the modifiers to public instead and now the WinForm designer works again.
New release of logview4net (7.28)
I just made a new release of logview4net.
New features are:
- A StdOut / StdErr listener
- A block ignore action
Goto jsiSoft.com to download it.
CHANGELOG:
7.28
Fixed: Add an IgnoreBlock action that should have an IgnoreStart + IgnoreEnd pattern
Fixed: Make it possible to ingore events on pause instead of caching them.
Fixed: Make the cmd-line parser use the StdOut-listener for .exe-files
Enabled the StdOut listener
Fixed a dispose bug on all listeners.
Planning to switch web host
The paid posts I have started doing here is because I want to finance a new web host. The current one is unbelievably cheap. Cheap as in low cost. But I am starting to have some performance issues though. The service of Manufrog has been very good this far. I will probably keep a site or two with them even in the future.
My sites does not have very much traffic, but on days with a couple of hundred visitors I get server errors and time outs. I’ll stay with Manufrog for a while longer and hope it’s just a temporary glitch.
Anyway; I am thinking about moving to DreamHost but unless I pay for a year in advance there is a setup fee of $49.95. I can see why they want do do it like that, but I think it locks customers to them in an unhealthy way. It seems to be a common thing though.
I have used DreamHost before and was pleased with their service. I canceled the account because I couldn’t justify the cost for just having my own e-mail addresses.
BlueHost and HostGator are also quite compelling. Their offers a quite alike, but they have no setup fees. It is such a tough choice and it is hard to find honest reviews of web hosts. Most sites I find are full of affiliate links (like the ones in this post) so their opinions are questionable.
So… If anyone feel like helping me please go to jsiSoft.com and click the PayPal Donate button.
On Baking requirements
Jeffrey Palermo states in his post ‘Baking requirements – Developing with raw ingredients is waste‘ that requirements has to be thought through before they are presented to the developers.
I think that is a statement that holds true for all levels of requirements. Software development is intangible and it is perceived that changes are easy to do. This leads to bad requirements from everyone. Customers doesn’t think through their needs and expectations before starting software projects. Business designers doesn’t think through either requirements or business rules enough before presenting them.
Very often it is possible to start working on a requirement even though the related business rules aren’t clear. But most times I find the business peoples lack of understanding of the constraints we developers are under to be very frustrating. A rule that is easily implemented or discarded in a manual process might need architectural changes in an automated process. It is frustrating for both parties. The current buzz is that developers should reduce the gap to business, but I think the responsibility to close that gap falls equally much on the business people.
We could argue that learning to program is hard, but failing to learn programming would also be a lesson learned.
logview4net and Windows Vista
For my upcoming release of logview4net I did the manifest magic to elevate the process to run as administrator. I did this because I kept getting SecurityExceptions when I wanted to monitor the EventLog.
I have however decided to remove the manifest so that a user would have to explicitly run the application as administrator to monitor the EventLog or other locked down resources. The reason being that I thought it was annoying to confirm the elevation when I didn’t need it and I felt like I was cheating. The UAC is there for a reason. If a user has to be explicit about elevating the process he can feel a little bit safer when running logview4net without elevation.
By forcing elevation I also made the application impossible to run for users who are not administrators on their machine and that wasn’t very nice of me.
I don’t know how to grant rights to the EventLog so a normal user can read it, but I will figure that out and blog about it later.
Blog Project Three: Final List
Here is the list of all submissions to Blog Project Three:
Blogging
- Top 3+1 Sites about Blog Contests by Lovedeep Wadhwa
- Why I am Still Addicted to Blogging After 3 Years by Ajay
- Increase Your Blog’s Stickiness by Jordan
- L’Amour De Blog: 3 reasons why blogging is like being in love by Phil
- 3 Trends that Shaped up the Blogosphere this Year by Ashwin
- 3 Times A Blogger by Rich
- 3 Ways To Get Back In The Blogging Spirit by Scott
- 3 Ways to Increase your Blog Stats by Ant
- Three Things to Do Before You Click Publish (and One Thing to Do After) by Jacqueline
- Three Things That I’ve Yet To Achieve as a Blogger by Rhys
- 3 Secrets of Writing for Blogs by Tejvan
- 3 Tips to Increase Blog Readership by Kyle
- 3 reasons why comment relish is not good for your blog by Vijay
- Top 3 Reasons You Should Stop Reading Blogs by George
- 3 Reasons Why You Should Use Storytelling by Daniel
- Top 3 tips to pick up girls/boys using blogs by Mario
- Three Reasons Why Group Blogging is Great by Mike
- 3 Ways To Get Me To Not Visit Your Blog Again by Sean
- 3+1 Things Blogger’s Should Never Ever Do. by Arpit
- How To Sell Your Blog in 3 Easy Steps by Ahmed Bilal
- Three essential steps to great blog posts by Corner Scribe
- 3 Sure Fire Way to Advertise Your Blog on a Shoe String by Engtech
- Three Steps to Keeping your RSS Feed Readers by Matthew
- 3 Fatal Errors of Blogging by Tillerman
- Three reasons why I like contest by Ashok
- 3 Reasons I Stayed On With Blogging by Tine
- July Blogtipping by Rob
- Top 3 Things Kermit The Frog Can Teach You About Blogging (and Life) by Dee
- 3 Good Blog Habits To Get Huge Traffic For Your Blog by Amey
- What “The 3 Little Pigs” Can Teach You About Blogging by Jan
- 3 roads to blogging stardom by Jayson
- I’m Engaged! Now What? by Brittany
- Blogging in Three Numbers by Francesco
- 3 Reasons why I suck as a blogger by Ben
- 3 Ways to Track Your Comments by David
- 3 Reasons Why Daily Blog Tips Sucks by Bes
Business & Career
- 3 Easy Steps to Becoming More Effective by Ron
- 3 Great Alternatives to Paper by Using Web-based Solutions by Ryan
- 3 Signs that You are in the Wrong Company by Anne
- Top 3 Reasons Why You Have to Work from Home by Alfa
- 3 Reasons to Persevere by Anne
- Three Mistakes made by teen Online Entrepreneurs by Nick
- 3 Reasons Job Search Spam Should Scare You by Jacob
- 3 Reason Why Entrepreneurs Succeed! by Ray
- Finding Work and Steve, the Maintenance Man and That Third Thing by Hoffman
- Reducing Debt: 3 different Ways by Richard
Entertainment
- Three Things Wrong with Transformers by Nathania
- 3 movies that can change you by WebStuffScan
- The Three That I Miss The Most! by Jimbo
- Got Independence? 3 things you should do this July 4th by Joe
- Magnetic 3D Globe Jigsaw Puzzle by Marcel
- Three Free Willie Nelson Songs by Liz
- Three Great Anime Blogs and Maybe Anime? by Carlie
Health & Fitness
- Get Healthy In Three Minutes by Gal
- 3 Things I Have Done To Save My Own Life by Eric
- Top Three USA Worst Cities for Losing Weight by Cherry
- 3 Things I Miss About Being Fat by Anna Farmery
- 3 Reasons Why PowerTap SL is so Popular by Jasper
- The Top Three Reasons Why I hate Diets by Joey
- Three reasons to try a marathon… by Shane
- 3 Reasons Running is Good for You Alexander
Make Money Online
- 3 ways to use Digital Point Forums to Earn Money Online by Adheeth
- 3 Costly Internet Business Mistakes to Avoid by John
- 3 Things no one told you about web monetizing by Pedro
Technology
- Three Reasons You Should Hate the Prius by Michael
- 3 Ways to Use Social Networking For Your Podcast by The Freq
- 3 Reasons Why I dont Like GMail by Nirmal
- 3+3 free tools for moving your life and your stuff online by Tanya
- Add Impact To Your Photos With “The Rule Of Three” by Brian
- 3 coolest PC Mods by Madhur
- 30 curiosities about number 3 in the games by Marcelo
- Free PDF Readers by Deepak
- 3 Useful Del.icio.us Tags, Life Quotes, & Traffic Generators by Adam Pieniazek
Travel
- Top 3 Ways to Avoid a Crowd at Disney World by Winnetta
- The three places in Japan I would love to visit by Jamaipanese
- 3 Ways to Have a Luxurious Hawaii Vacation on the Cheap by Sheila
- Three reasons to Visit Cyprus by Rajaram
- 3 wonders of the world that designers should have voted for by Mirko
Web Development & Design
- 3 Huge SEO Mistakes I have Made by Jeremy
- How I built 10,000 links in 3 weeks by Patrick
- 3 Ways to Improve the Comment Styles on Your Blog (With Examples) by Ryan
- My three best traffic generators by Johan
- 3 really simple ways to speed up your blog by Hans
- Make your WordPress blog more Search Engine friendly by Shankar
- 3 Must Do Things For A New Blogger by Ramkarthik
- The 3 P’s for Creating a Successful Website – Passion, Persistence, and Patients by Sarah
- The 3 kinds of web statistic tools (or site traffic counters) by Planet Apex
- 3+1 Ways to Make Your Website Load Faster by Pallab
- 3 + 3 + 3 Places Where You Can Get Free Icons For All Seasons And Reasons by Joel
- 3 reasons why you must learn ruby language by Ruby Tips
- 3 Reasons Why I shifted from Blogger to WordPress! by Ashfame
- 3 + 2 Most Sexy and Stylish Firefox Themes For You by DJ Flush
- Top 3 Mistakes of Rookie Web Designers by Kevin
Random Topics
- Three things I want my kids to refrain from saying on our upcoming road trip by Juggling Frogs
- 3 Reasons to be Hopeful of the Future by Anna
- The 3 Easiest Ways To Ruin Your Truck’s Transmission by Jason
- The last three times I lost my wallet… by Johan
- The 3 Most Common Types of Collections by Jason
- Three bad foods that are really good by Graham
- 3 Reasons Why I Love the Bar Exam by Andrew
- Memorials to three dead bridges by Graham Richardson
- 3 Tips for Staying Focused with Small Children by Genesis
- What Happens When Three is Almost Enough: Go Irrational! by Simmone
- Me and three by John
- 3 Sexy Cover Ladies = Infinite Hotness by Celebrienne
- 3 little words by Paris
- 3 Things you can do to have a great sick day by Rich
- 3 things I want to do before I die by Just Me
- Three Reasons Why Superheroes Wear Their Underwear On The Outside by Brown Baron
- Ten things i didn’t know about the number 3 until now by Blaiq
- 3 Reasons to Play EVE Online by Adam
- The 3 Email Newsletters No Church Site Should Be Without by Mark Alves
- Three is a Magic Number by Mary
- Three Cheers for T-Shirts by Jay Wagers
