Archive for December, 2005

Posted on Dec 31st, 2005

Two years ago I blogged about a similar subject. I discussed the advantages of Internet Explorer (IE) over Mozilla and other web browsers in a corporate environment. I concluded that IE is by far the better choice. Recently we deployed about 250 new computers and so I considered this question again. Now, Firefox is the main rival of IE. The decision was not so easy this time, but IE won again in the end.

I am using Firefox myself for a quite while and I really like this web browser. However, when it comes to the question of switching to a new web browser in a corporate network, other arguments have to be considered.

Let’s discuss them step by step:

1. IE is a part of the operating system

This basically means that the administrators don’t have much further work after Windows is installed. If you have hundreds or even thousands computers to manage, this is already a very big advantage of the IE. You need some good arguments for deploying an extra browser, if there is already one installed on your machines. Some nice plugins are certainly not enough. One often-mentioned argument is security. I don’t want to discuss this issue here, but if you are really convinced that Firefox is more secure than IE, this might be such an argument.

2. Roaming Profiles

I mention this point here because I discussed it in my German blog two years ago. Firefox, like IE, does store its user-settings, bookmarks, etc., in the user profile, which means that one can now work with roaming profiles. Thus, users can logon on different machines in the network and will always find their own bookmarks. This is a major improvement compared to the rivals of IE two years ago.

3. Central Management

Probably the most significant advantage of IE is that you can centrally manage it using Group Policies. You always want to configure all applications as homogenous as possible in a big network. Sometimes it is necessary to change the settings of all web browsers in your company. For example you might want to change the start page of all browsers or enable/disable certain functions or add new bookmarks, etc.

There is an Open Source Project called Firefox ADM working on this feature for Firefox. They started a year ago and reached version 0.4 now. As long as there is no version 1.0, I would be cautious in using this feature in a productive environment. I had a quick look at the ADM files. It has fewer possibilities in comparison to IE, that’s my first impression. I plan to have a closer look at Firefox ADM again in the near future and will post my findings in my weblog.

4. Patch Management

I have already mentioned the security issue before. We all know that not only Microsoft programmers but also Open Source coders make mistakes. No web browser will ever exist without security holes. Some Firefox advocates say that security patches are supplied at faster pace than in IE. It is a difficult question to answer, and I don’t want to discuss this topic here.

However, when it comes to security in a corporate network, the main question should be how fast and how easy you can patch all your computers. The larger your network is, the more important this point gets. Firefox has an integrated update mechanism which is quite useful for private users, but doesn’t help much in a corporate environment. Because of security issues, normal users are usually not allowed to install software on their computers which also means that they can’t install patches.

If you are a Windows administrator, you probably know that Microsoft offers a free patch management solution. WSUS (Windows Software Update Services) certainly is a great tool. Of course, you can patch IE using WSUS. There are third party patch management solutions which also support Firefox though. If you are already using such a program, patch management might not be something that troubles you too much when you have to decide which web browser to use in your network. However, if you are also using WSUS, patching IE might be less time consuming than patching Firefox with a third party solution. At least, this is true for patch management solutions I’ve seen.

5. Many applications are dependent on the IE

There are many desktop applications which use the rendering engine of IE to display HTML files. There also server-based applications which need an IE and won’t work with just another browser. With the success of Firefox at least the latter’s argument doesn’t hold much anymore since many webmasters don’t want to lock out this large clientele.

However, there are still many desktop apps which are IE dependent. Some of them aren’t dependent on the rendering engine of IE, but integrate themselves in the user interface of IE. Adobe Arcobat is such an application for example. Even if you don’t have one of them in your company now, you’ll never know if this might not change in the future. The point is that if you need IE anyway, why you should deploy and support another browser in your network?

Conclusion

The advantages of the IE are mainly founded in its tight integration with Windows. Firefox has to run on other operating systems, too. Hence, all features should work on all systems not only on Windows boxes. That’s why I’m not expecting too many improvements in this field in the near future. Although projects like Firefox ADM show that better integration is doable and that some Open Source programmers recognized this problem.

All in all, I’m still a Firefox fan, but wouldn’t recommend it for corporate use in larger networks. There are exceptions of course: If all your desktops use Linux or Mac OS. But if you have Windows desktops, the only reason I could think of, is that you really need a certain feature of Firefox which you is not available in IE.

Michael Pietroforte is working as a system administrator for more than 15 years. For several years he is now leading an IT department. He also published articles on several computer journals. His weblog http://4sysops.com/ discusses useful tools for Windows and Linux system administrators.

Posted on Dec 31st, 2005

Handling character strings in Java is supported through two final classes: String and StringBuffer. The String class implements immutable character strings, which are read-only once the string has been created and initialized, whereas the StringBuffer class implements dynamic character strings. All string literals in Java programs, are implemented as instances of String class. Strings in Java are 16-bit Unicode.

Note : In JDK 1.5+ you can use StringBuilder, which works exactly like StringBuffer, but it is faster and not thread-safe

The easiest way of creating a String object is using a string literal:

String str1 = "I cant be changed once created!";

A string literal is a reference to a String object. Since a string literal is a reference, it can be manipulated like any other String reference. i.e. it can be used to invoke methods of String class.

For example,

Int myLength = “Hello world”.length();

The Java language provides special support for the string concatenation operator ( + ), which has been overloaded for Strings objects. String concatenation is implemented through the StringBuffer class and its append method.

For example,

String finalString = “Hello” + “World”

Would be executed as

String finalString = new StringBuffer().append(“Hello”).append(“World”).toString();

The Java compiler optimizes handling of string literals. Only one String object is shared by all string having same character sequence. Such strings are said to be interned, meaning that they share a unique String object. The String class maintains a private pool where such strings are interned.

For example,

String str1=”Hello”;

String str2=”Hello”;

If(str1 == str2)

System.out.println(“Equal”);

Would print Equal when run.

Since the String objects are immutable. Any operation performed on one String reference will never have any effect on other references denoting the same object.

Constructors

String class provides various types of constructors to create String objects. Some of them are,

String()

Creates a new String object whose content is empty i.e. “”.

String(String s)

Creates a new String object whose content is same as the String object passed as an argument.

Note: Constructor creates a new string means it does not intern the String. Interned String object reference can be obtained by using intern() method of the String class

String also provides constructors that take byte and char array as argument and returns String object.

String equality

String class overrides the equals() method of the Object class. It compares the content of the two string object and returns the boolean value accordingly.

For example,

String str1=”Hello”;

String str2=”Hello”;

String str3=new String(”Hello”) //Using constructor.

If(str1 == str2)

System.out.println(“Equal 1”);

Else

System.out.println(“Not Equal 1”);

If(str1 == str3)

System.out.println(“Equal 2”);

Else

System.out.println(“I am constructed using constructor, hence

not interned”);

If( str1.equals(str3) )

System.out.println(“Equal 3”);

Else

System.out.println(“Not Equal 3”);

The output would be,

Equal 1

Not Equal 2

Equal 3

Note that == compares the references not the actual contents of the String object; Where as equals method compares actual contents of two String objects.

String class also provides another method equalsIgnoreCase() which ignores the case of contents while comparing.

Apart from these methods String class also provides compareTo methods.

int compareTo(String str2)

This method compares two Strings and returns an int value. It returns value 0, if this string is equal to the string argument a value less than 0, if this string is less than the string argument

a value greater than 0, if this string is greater than the string argument

int compareTo(Object object)

This method behaves exactly like the first method if the argument object is actually a String object; otherwise, it throws a ClassCastException.

String Manipulations

Reading characters from String:

char charAt(index i)

Returns char at specified index. An index ranges from 0 to length() -1.

Searching characters in String

String class provides indexOf method which searches for the specified character inside the string object. This method has been overloaded. If the search is successful, then it returns the index of the char otherwise -1 is returned.

int indexOf(int c)

Returns the index of first occurrence of the argument char.

int indexOf(int c, int fromIndex)

Finds the index of the first occurrence of the argument character in a string, starting at the index specified in the second argument.

int indexOf(String str)

Finds the start index of the first occurrence of the substring argument in a String.

int indexOf(String str, int fromIndex)

Finds the start index of the first occurrence of the substring argument in a String, starting at the index specified in the second argument.

The String class also provides methods to search for a character or string in backward direction. These methods are given below.

int lastIndexOf(int ch)

int lastIndexOf(int ch, int fromIndex)

int lastIndexOf(String str)

int lastIndexOf(String str, int fromIndex)

Replacing characters in String

The replace method of String can be used to replace all occurrences of the specified character with given character.

String replace(char oldChar, int newchar)

Getting substrings

String class provides substring method to extract specified portion of the given String. This method has been overloaded.

String substring(int startIndex)

String substring(int startIndex, int endIndex)

Note: A new String object containing the substring is created and returned. The original String won’t be affected.

If the index value is not valid, a StringIndexOutOfBoundsException is thrown.

Conversions

String class provides set of static overloaded valueOf method to convert primitives and object into strings.

static String valueOf(Object obj)

static String valueOf(char[] character)

static String valueOf(boolean b)

static String valueOf(char c)

static String valueOf(int i)

static String valueOf(long l)

static String valueOf(float f)

static String valueOf(double d)

Manipulating Character Case

String class provides following methods to manipulate character case in String.

String toUpperCase()

String toUpperCase(Locale locale)

String toLowerCase()

String toLowerCase(Locale locale)

Note : Original String object is returned if none of the characters changed, otherwise new String object is constructed and returned.

Miscellaneous methods

String trim()

This method removes white space from the front and the end of a String.

int length()

Returns length of the String.

String intern()

This method returns interned String object, if already present in the String pool. Otherwise this String is added into the pool, and then interned reference is returned.

Rahim Vindhani
Application Develper [Application Development & Webservices]
IBM Global Services, pune, India
email: rahim.vindhani@gmail.com
web: http://www.javadeveloper.co.in

Posted on Dec 30th, 2005

There are several hundred e-Learning tools out in the marketplace today. Selecting the proper course-authoring tool for developing your company’s online training content is no small undertaking. Today we are going to look at some solid strategies to help you select the course-authoring tool that is right for you and for your company’s e-Learning / Learning Management Systems initiative. First we will start with some basic concepts.

What is a Content-authoring Tool?

According to Wikipedia.org, “a content-authoring tool is a software application used to create multimedia content typically for delivery on the World Wide Web. Content-authoring tools may also create content in other file formats so the training can be delivered on a CD (compact disc) or in other formats for various different uses. The category of content-authoring tools includes HTML, Flash, and various types of e-Learning authoring tools.”

Course-authoring tools can create online courses, while content-authoring tools create subject specific online content. Subject Specific Online Content more than likely has less features and functionality than an online course created with a course-authoring tool, but, this depends upon the software used to create the content. In the e-Learning industry, we generally use the two phrases interchangeably, and in this article, I will do so also.

What is a Learning Management System?

Learning Management Systems (LMSs) are web-based software application platforms used to plan, implement, and assess learning processes related to online and offline training administration and performance management. LMSs provide an instructor a way in which to create and deliver content, monitor learners’ participation, and assess student performance. LMSs also provide learners with interactive features, such as threaded discussions, web conferencing, discussion forums, and other methods of communication.

Generally, a Learning Management System has its own online content-authoring tool as part of the overall system. There are content-authoring tools / systems out there in the market that call themselves “Learning Management Systems”, but really are just front-end and / or presentation-authoring tools, with little or almost no LMS functionality. A good Learning Management System should work with many types of content-authoring tools.

In fact, many companies may start out using one or two content-authoring tools along with their Learning Management System. As their e-Learning initiative grows and changes over time, they use different types of content-authoring tools to achieve the various effects needed. This is often due to business changes and the fact that in many corporate training scenarios, a Learning Management System or other larger, more complex enterprise software systems use content-authoring tools to develop the online training content that is managed.

What does SCORM/AICC compliant mean?

SCORM stands for Sharable Courseware Object Reference Model (SCORM), which is a set of specifications that, when applied to course content, produces small, reusable e-Learning objects. A result of the Department of Defense’s Advanced Distributed Learning (ADL) initiative, SCORM-compliant courseware elements are easily merged with other compliant elements to produce a highly modular repository of training materials.

AICC standards apply to the development, delivery, and evaluation of training courses that are delivered via technology. AICC stands for the Aviation Industry CBT [Computer-Based Training] Committee (AICC), which is an international association of technology-based training professionals that develops training guidelines for the aviation industry.

Many e-Learning content-authoring tools are SCORM/AICC compliant. A rule of thumb is, as long as the content-authoring tool is SCORM/AICC compliant (creates SCORM/AICC compliant courses) and the Learning Management System is SCORM/AICC compliant (works with SCORM/AICC courses), they will work together.

Factors to Consider When Evaluating Content-authoring Tools

Situational Parameters

Remember that not all tools are appropriate for all training delivery methods. It’s important to consider the context in which course-authoring tools will be used. As you gather information, keep in mind that as long as your online training is founded on good instructional design principles, the interactivity produced by the authoring tool you choose will strengthen the learner’s experience.

Training Objectives & Delivery Methods

What type of training are you providing? Is it a blended learning experience? Will some training be online and some in classrooms? This will help determine which course authoring tools and LMSs you can use. Will you provide training on a CD Rom? Are your learners certifying on a product, service, or procedure? Are you teaching someone to use a certain software program?

Media Needs

What types of media will you use? Does the content-authoring tool of your choice support those file types?

Resources and Ongoing Support

Do you have the resources to support the types of online training you wish to develop? Graphic designers? Appropriate subject matter experts? Voice talent? Video producers? Models? Production Designers? Outside user testing? Etc.

What about after the training is developed? Does the training need to be refreshed periodically, anywhere from in 6 months to a year or beyond? Will any tests associated with the training change on a regular basis? Will you have the right resources and support in place for any ongoing e-Learning content development needs?

Funds & Timing

How much is budgeted for the project? Will you have a team of people to develop the training? Should you outsource? What things are specific to the type of training you will be developing that may be compromised by outsourcing? How steep is the learning curve associated with the tools you are thinking of using for the project?

Interactivity

What level of interactivity is required for the training? Simulations and other dynamic learning activities are great to have, but are they really appropriate or needed for the type of online training you will be developing? Flash has become the standard tool used for many interactive learning activities. If your authoring tool works with Flash, how much more do you need?

Plug-ins

Some course-authoring tools may need plug-ins, but this has become much less of a problem in e-Learning today than it was just a few years ago. Obviously, if you are dealing with a group of learners who are not technically savvy, have older browsers (IE 4.0 or below; Netscape 4.0 or below), or mostly use slow dial up connections, plug-ins become a real liability in regards for delivering online courses.

Platforms

What platforms will the training be delivered on? Does the online training you develop have to work across a combination of platforms such as PC, MAC, UNIX or others? Does it have to work across a variety of operating systems and / or browsers?

Total Cost of Ownership

It’s always best to evaluate any software or systems acquisition by looking at the total cost of ownership (TCO). TCO is a financial metric designed to help assess direct and indirect costs related to the purchase of any capital investment, such as (but not limited to) computer software or hardware. In this case, the TCO would include the cost of the application, training, upgrades, maintenance, and any other costs associated with the company owning the product over its lifetime.

Conclusion

The course-authoring tool that best meets your needs will depend entirely upon your situation. In the long run, applying due diligence during the evaluation process will save you time and money.

Dana Fine is a Senior Instructional Designer at SyberWorks, Inc. http://www.syberworks.com. SyberWorks is a custom e-Learning solutions company that specializes in Learning Management Systems, e-Learning solutions, and custom online course development. Dana is also a frequent contributor to the Online Training Content Journal http://www.boggse-learningchronicle.typepad.com/the_online_training_conte/.

Posted on Dec 30th, 2005

We’ve all seen the ads on TV for Netzero 3G. You know the ones, "speeds so fast you sworn it was broadband" Well if your using it, you may not think it really is. We’re going to break down the truth behind, Netzero 3G.

Netzero explains the idea of their service perfectly. It can be found on the 3G website, but is hidden, you have to push the "More Details and Limitations" button at the very bottom. To save you some time here’s what it says…

"Speed reference based upon comparison to nationally available dial-up ISPs. NetZero HiSpeed 3G accelerates certain web page text and graphics when compared to standard dial-up Internet service. Actual results may vary. Some web pages such as secure or encrypted web pages will not be accelerated. NetZero HiSpeed 3G is not a broadband service and actual data transmission rates are not faster than standard dial-up Internet service. Transmission of files including, without limitation, streaming audio or video, digital photographs, MP3 or other music files, executable files and other downloads, is not faster using NetZero HiSpeed 3G than with standard dial-up service."

We’ll break this down line by line for you, so you know exactly what they’re talking about.

"NetZero HiSpeed 3G accelerates certain web page text and graphics when compared to standard dial-up Internet service."

This is where it really all comes into place. This means that the 3G service only speeds up text and graphics. Which is great for normal browsing, but if you’re downloading music, loading flash movies, java applets, things like that, it’s going to make no difference.

"Some web pages such as secure or encrypted web pages will not be accelerated."

To put this in terms that you might understand, this means that if your ordering anything online via credit card (or most other payments) it will not be accelerated, so it’s a glimpse back to normal dial-up life.

"NetZero HiSpeed 3G is not a broadband service and actual data transmission rates are not faster than standard dial-up Internet service"

What this means is that the speed that data is sent into your home is no faster than regular dial-up. Why? Because the phone cord and port can only carry so much information, the only way to speed it up is if they transferred it to your house through a cable port, which in turn would make it broadband.

"Transmission of files including, without limitation, streaming audio or video, digital photographs, MP3 or other music files, executable files and other downloads, is not faster using NetZero HiSpeed 3G than with standard dial-up service"

Another very important part, this means what it says, if your watching video online it won’t be sped up, audio nope. If you’re looking at family photos in an online album, don’t expect faster speeds. Downloading music files, nope. Downloading programs, nope. Nothing is sped up with the exception of normal text and simple graphics.

As you can see Netzero 3G is nothing more than over hyped dial-up. If you want to take out word for it, don’t go anywhere near it. Look for a truly faster alternative such as cable or DSL.

This article was wrriten for http://www.p2btech.com

At p2btech.com we offer a podcast for sports and tech. We offer on demand video that covers a variety of categories. We also have user interaction in message boards and chat rooms. You can also listen to your favorite music through our online radio service.

http://www.p2btech.com

Posted on Dec 29th, 2005

A common question about today’s Ecommerce software is, “Do I buy managed shopping cart software or use free open source software?”
Surprisingly, there is a simple and logical answer and many of you will find it’s a pretty standard answer to most things in life. You get what you pay for!

Honestly, can free software really have;
a) Bug free stores and admin panels?
b) The most up to date upgrades constantly built into your store without you doing anything?
c) Up to date search engine optimization?
d) Tech support from the company who created the software?…. and the list goes on. It’s just not possible to have all these very important details built into free shopping cart software, these functions and services quite simply need to be paid for since most companies prefer not to work for free, especially the good ones.

There are two general types of internet merchants, experienced merchants with the ability to do light programming and install software to a server which they may own, then there is the merchant who may have an online store or is just starting and would have a standard internet knowledge. At first I thought, being in the first category, that free software would be just perfect for me, make a few changes to the code, upload it to my server and run a perfect online store for a very low cost. Unfortunately I found that by the time I worked out the code and many bugs, then had the server cost, the security certificate cost and the ongoing enhancement errors, I could have run a managed and paid version for a set monthly fee and focused my time on the actual business. I ended up backwards with what I though would be a cheaper option.

It’s pretty clear that managed shopping cart softwares are becoming the choice for everyone these days. It’s problem free, works out cheaper in the long run and you receive the most up to date ecommerce information you need to succeed.
After all, can you see any free shopping carts ranked number 1 in the world?

James O’Brien http://www.ashop.com.au Internet merchant IT Professional SEO Consultant

Posted on Dec 29th, 2005

The Windows registry is a huge database that ensures normal computer operation. Installing and uninstalling software can make your registry a mess, leading to decreased PC performance and causing computer crashes. Find out how you can fix this and other problems yourself.

Registry Mecic

Registry Medic uses a highly intelligent engine to scan your computer’s registry for invalid registry entries. With the click of a button, you are able to repair or remove registry entries that refer to a file or folder that has been moved or deleted. You can also scan and remove invalid software data and Start menu data from the registry. Furthermore, this easy-to-use utility can kill trojan viruses that use the registry to spread and do damage to your PC.

What Can Registry Medic Do For You? First, it finds invalid registry entries and repairs registry entries that refer to a file/folder that has moved. It also removes invalid registry entries and invalid software/Start Menu data in the registry. Registry Medic also allows you to kill trojans and viruses that use the registry to spread and do damage.

More Information: http://www.deprice.com/registrymedic.htm

CCProxy

What’s CCProxy exactly? It’s a web proxy software that enables you to browse web pages, download files, send and receive e-mail. It’s also a web cache proxy, and web caching dramatically expedites the speed of surfing the net. The proxy user control provides powerful management functions including seven ways to control the Internet access on the LAN. These are IP address, IP range, MAC address, User Name/Password, IP User Name/Password, MAC User Name/Password and IP MAC.

Using CCProxy’s time schedule, you can freely control the users’ on-line time. It can allocate client surfing service respectively. This gives you an authority to open the different proxy services to the different users. Some of them may browse the web pages or send and receive e-mails and others may enjoy all the Internet surfing functions.

In addition to that, CCProxy can allocate proxy client bandwidth respectively. The bandwidth control can allocate the different bandwidth to the different users. Thus, it can control the speed of net surfing and occupation of the bandwidth resource of each user and avoid the traffic jam of net, which is caused by some users who try to download files. Plus, Web filter can ban the undesirable sites with unhealthy and irrelevant contents. This proxy software will help you keep the employees concentrate on their work or children stay away from the bad sites.

More Information: http://www.deprice.com/ccproxy.htm

DOC Regenerator

DOC Regenerator is a new recovery solution for lost, damaged, deleted, overwritten MS Word document files. It efficiently recovers lost word document files from an existing partition as well as lost documents from a corrupted, deleted partition, or a reformatted disk.

Document corruption always comes with the risk of data loss. Many other document recovery programs recover corrupted documents from a single file. The result of such recovery is a document with probable data losses. In contrast to other recovery software, DOC Regenerator regenerates Microsoft Word documents not from a single file, but from the entire disk and without any loss of data.

If a Microsoft Word document was deleted, the program will scan the entire disk to find contents of the deleted document. If the contents of the document were overwritten, it will be regenerated from file fragments found on the disk. The product supports all versions of FAT and NTFS and regenerates Microsoft Word documents even from lost, deleted partitions and reformatted disks.

More Information: http://www.deprice.com/docregenerator.htm

John Deprice finds and reviews new software daily. To access old archives, please visit http://www.deprice.com/utilities.htm

Posted on Dec 28th, 2005

Are you looking for church management software that fits your ministry and your pocket? Would you like to try out the latest applications but don’t want to commit yourself?

Whether you’re looking a solution for a small church with just a few members or a sophisticated solution for a church with hundreds of members, there will be a software solution to match your needs.

Before you start surfing the net looking for a solution, consider what exactly you are looking for. Do you need it primarily to manage your accounting function, are you looking for something that will create your church website, or maybe you just want something to manage the task of creating your church directory (groan!). Make a list of the essential and desirables that you are looking for first.

Free Church Software

Many of the most reputable companies providing church management software solutions offer a free trial to enable you to try their system for yourself. This is an ideal way to try out, without risk, the latest softwares that may offer the solution that you have been seeking.

Traditional uses of church software include management of financial and accounting functions.

It is now possible to find software that will manage your membership, create a church calendar, keep records of donations, manage your church library, publish your church bulletin, update your church directory, integrate church music, worship songs and data projection.

In short, if there is something you need done in your church, there’s almost certainly software that will do it for you!

For further information and reviews on all the free trials & church management software providers, visit Free Trials - Church Management Software

This article was submitted by Jennifer Carter of Church Software Reviews

Posted on Dec 28th, 2005

We were recently faced with a decision: either to let a program that took us one year to code die, simply because we do not have enough time to maintain it, or make it open source.

Open source looked like a good idea for while, but there was one problem. We wanted to keep the software under our control and to be able to make money selling it later. And let us just be honest and admit it: we wanted monopoly over our software and why not? It took us one year to write the software, and its documentation. Yeah we believe in ‘Free Software’, but who works for free. Free software can never be successful in the long run, if there is no way to make money.

Dual Licensing and GPL:

Then we said to each other: ‘Hey, RedHat and MySQL are open source. Still they make lot of money. How?" The answer lies in the strategy known as ‘Dual Licensing’. It is very simple. The Open Source company first has to copyright the source code, and then make it available to public. Now, since the company owns the source code copyright, it can distribute it under two different licenses: one open source and the other commercial. The open source license in such case will almost always be GNU GPL (General Public License), which allows anybody to modify the source code, redistribute it and incorporate it into other projects. However, there is one catch (a big, and annoying catch). The restriction is that any project that uses GPL’d code must also be released under the GPL license (GPL, we believe, works like a virus. It keeps on spreading). Which simply means (regarless of what open source ativists tell you), you cannot sell the GPL’d code or any project that incorporates it for profit. For that purpose, you will have to offer a commercial license.

Some well known companies that use Dual Licensing are: RedHat Inc, MySQL, AB., Sleepycat among many others. These companies one hand attracts people and developers who want to move the Open Source movement, and on the other, they want to make some serious money with dual licensing.

Let us look at an example: a guy was creating a commercial database application that was intended to bring him some cash. He used MySQL database at the backend, thinking it was free. He later found out that he violated the GPL license that MySQL uses. Anybody is restricted from distributing an application that uses GPL in modified or unmodified form unless the whole project is licensed under GPL. So that guy was left with no choice, but to buy commercial licenses (based on per copy) from MySQL, AB.

Is Dual Licensing Evil?

Yes. But there is nothing wrong with it. If no product revenues are coming in, the project will eventually die or will always be in a very bad shape (a lot of open source evangelists might try to contradict us and compare open source with religion, which it is not). In other words, if a guy is not making money from a project why in the hell would he keep supporting it. An example of one such software is PuTTY (with apology to Simon Tatham). Even though it is immensely popular, it still leaves a lot to be wished for. The User Interface is meager, the documentation is of low standard and there is no (customer) support. Strange for a very popular software.

Now if PuTTY was released under dual license, it might have been a lot different than it is now. The PuTTY company would have expanded, hiring new people and giving customer support. That did not happen and the result is that PuTTY is not used in large corporations who prefer commercial software with customer support and someone to blame if anything goes wrong. For example, Vandyke SecureCRT, Whitehorn Secure Terminal or Celestial Telnet are some popular commercial SSH clients.

So you mean Open Source is bad? Why people go open source then?

No. It is not. The number one advantage of open source is that it can cut the development time by as much as 50%. The other reason why people go open source is to make sure that project will always stay alive with the help from development community (many commercial software applications die in their first year). Some people participate in open source development just to make a name for them.

The bottom line is that Dual Licensing is not as evil as many people think it is. It is the only way to go if you want to make money from your open source project. We would like to end this article with a line from the infamous ‘Open letter to hobbyists’ written by Bill Gates: "Nothing would please me more than to be able to hire ten programmers and deluge the hobby market with good software."

DISCLAIMER: All information given in this article is provided on ‘AS IS’ basis. The author’s do not assume any responsibility for any consequences and do not swear that the information given in this article is accurate. This article is not affiliated with any organization. This article can be distributed and redistributed as long as Author’s names are not changed and the original text remains intact.

Ali Mansoor (malimansoor@hotmail.com) has written several famous commercial applications. Umer Mansoor (umer.mansoor@gmail.com) spends most of his time programming or thinking about money making schemes. He is inspired by his Dad, God, Microsoft, and more recently, Google. Visit his open source project page at: http://www.pegsol.com/newdesign/development.htm

Note from the authors: No we are not nerds or geeks and we define FREE as in ‘free beer’, not as in ‘free speech’. Cheers..

Posted on Dec 27th, 2005

Looking at screen-scraping at a simplified level, there are two primary stages involved: data discovery and data extraction. Data discovery deals with navigating a web site to arrive at the pages containing the data you want, and data extraction deals with actually pulling that data off of those pages. Generally when people think of screen-scraping they focus on the data extraction portion of the process, but my experience has been that data discovery is often the more difficult of the two.

The data discovery step in screen-scraping might be as simple as requesting a single URL. For example, you might just need to go to the home page of a site and extract out the latest news headlines. On the other side of the spectrum, data discovery may involve logging in to a web site, traversing a series of pages in order to get needed cookies, submitting a POST request on a search form, traversing through search results pages, and finally following all of the “details” links within the search results pages to get to the data you’re actually after. In cases of the former a simple Perl script would often work just fine. For anything much more complex than that, though, a commercial screen-scraping tool can be an incredible time-saver. Especially for sites that require logging in, writing code to handle screen-scraping can be a nightmare when it comes to dealing with cookies and such.

In the data extraction phase you’ve already arrived at the page containing the data you’re interested in, and you now need to pull it out of the HTML. Traditionally this has typically involved creating a series of regular expressions that match the pieces of the page you want (e.g., URL’s and link titles). Regular expressions can be a bit complex to deal with, so most screen-scraping applications will hide these details from you, even though they may use regular expressions behind the scenes.

As an addendum, I should probably mention a third phase that is often ignored, and that is, what do you do with the data once you’ve extracted it? Common examples include writing the data to a CSV or XML file, or saving it to a database. In the case of a live web site you might even scrape the information and display it in the user’s web browser in real-time. When shopping around for a screen-scraping tool you should make sure that it gives you the flexibility you need to work with the data once it’s been extracted.

Todd Wilson is the owner of screen-scraper.com (http://www.screen-scraper.com/), a company which specializes in data extraction from web pages.

Posted on Dec 27th, 2005

Imagine something that follows you home and sets itself up in your house. It eats your food, enjoys your drinks, reads everything you bring home or purchase. It runs up your phone bills and no matter where you go, it can follow you and takes notes on everything you do.

Generically labeled spyware, your stealth visitor is a program or set of programs designed to track your Internet activity. And, while it hasn’t gone as far as above, it can and will make your life uncomfortable.

The most benign form of spyware simply takes note of what types of websites you visit and communicates the information to its source. For advertisers, this adware form of spyware allowed them to only send advertisements you were likely to be interested in.

The theory being that it saved wasting anyone’s time on products you wouldn’t likely care about or want to buy. Of course, that was the theory. The practice has become one of abuse, with so many packaged adware or spyware programs downloaded, you may never know who is watching.

While there are different viruses that act spyware and render malicious damage to your PC, bandwidth and sometimes your modem, spyware may take the same format and render similar damage.

Most spyware is installed after downloading some type of free program or attachment from someone you don’t know. Sophisticated processes can hide in .dll files and be incredibly difficult to remove even for spyware zapper programs.

The initial idea behind spyware or adware may not have been so bad. However, they will take up lots of valuable CPU and RAM space on your machine, clogging your Internet bandwidth, which can create noticeable delays when you are doing normal day-to-day activities. It can slow down reboot processes because of adding unwanted programs to your start up menu.

Those downfalls are just what happens with the programs not designed to hijack your browser, point it at porn sites, download pornographic material, steal your address books, stored credit card information or create a waypoint for hacking into other’s machines.

Spyware is a very real villain in the cyber world. The majority of computer and Internet users do not believe these types of programs affect them, yet more often than not; they have hopefully been protected by firewalls and anti-virus software that combat them.

Avoiding irresponsible net behavior, such as downloading programs or files from an unknown sender, the taking of free offers of packaged software, including games, giveaways, software and utilities may prove detrimental to the life and function of your machine. Many of these packaged programs carry hidden within their walls spyware of some type.

So whether it is designed to discover which web merchants you visit most often or what credit card information you have stored on your machine, spyware is a very real threat in a world where the Internet is seemingly as important to everyday activity as a pair of shoes. The best advice is to be aware, in addition to installing anti-virus software with firewall.

===========================================================

Discover all you ever wanted to know about spyware. Latest discovery methods, latest incoculation treatments, latest removal techniques. Click for useful info and daily updated blog of spyware news and articles. Click http://www.spyware-revealed.com/

Tom Jenson has worked in software development for 20 years. He’s seen spyware develop from an occasional problem, to a daily, hourly threat to all pc’s. He made it a mission to research these threats, and work out how best to combat them. Now this series of article helps others protect their computers too.

- Next »