Saturday, May 24, 2014

Destroy Windows viruses with Linux

While studying at C-DAC, I sometimes needed to take a printout of my project, and when I returned after taking a printout from a nearby shop, I'd find that the pen-drive I took to the shop now had some extra files in it.

These files I found, were viruses which entered my pen drive when I connected it to the computer in the shop, for taking a printout. I was able to see these viruses as normal files, on Linux. Also visible, were the scripts which automatically activated the virus and copied the virus onto any read/write media (pen drive/floppy drive/external hard-disk ) you insert into the computer with a Windows OS. These are viruses that aren't very harmful. About boot sector viruses, I don't know yet. The last time I encountered one was on a floppy, and at that time I didn't have Linux.

Ways to destroy a Windows virus:
[as I discovered by myself and created my own technique at around October 2008. The reason I'm posting this is because I found that not all antiviruses were capable of detecting all viruses. Of course, your best bet is an antivirus and other malware protection tools, but this is one of the ways you can rid yourself of a common annoyance]

  • Access the pen-drive in Linux. Most virus files would be located on the root directory of the pen-drive. You'll recognize these files as files that weren't there initially. Simply right click the file and delete it. You can also disable the virus just by deleting the autorun script that activates it.
  • Sometimes, to see the virus you may need to open up a terminal and type "ls -lrth" or "ls -altr".
  • If you're unable to simply delete the virus, open up a terminal and type "rm -rf virusfilename" (without the quotes of course)
  • If even the "rm" command can't get rid of it, then open up the vi editor by typing "vi virusfilename" or "vim virusfilename" at the terminal and the contents of the virus file will be displayed to you. It's mostly a bunch of junk characters that you'll see. Now simply delete one or more characters in the file, save and exit with the command sequence:  Press the Esc key, then type a colon ":" and then type "wq!". The exclamation mark at the end ensures a force-save, even if the virus file is read-only. And tadaah! the virus is disabled.
Even a disabled virus will be detected and quarantined by a Windows antivirus. Looks like it has a rather prominent virus signature.

Is Linux safe from viruses?
Now, if you've always felt that Linux is safe, think again. Here's how malware can infect Linux:

How about the Mac OS?
Same with the Mac. Do a search for Mac antivirus and you'll see.

There was a time when I was in school, that I was quite annoyed with the first virus that infected my PC, and wanted to join an antivirus company to fight off viruses and malware. The mock-antivirus on this page was a fun attempt at that.
Recently Symantec announced that standalone antiviruses are dead. Apparently attackers are finding other ways to bypass security. There is also a research group (had read about it long back but unable to find the page now) that plans to rebuild the internet from scratch, designing the security of the new internet like how a natural body has multiple layers and levels of security. Of course, what needs to be seen is how the market responds to the idea.

Saturday, May 10, 2014


It's about the person we all know as a 'brain' or a very talented person, but it's a person you've never been able to get close to or understand, because the person has always been emotionally distant.
For the sake of this blog post, let's respectfully call him/her as "Person".

Image from 123RF

Just watched North 24 Kaantham (a movie) which carefully portrays such a Person.

For some reason, the social group of people dislikes having a Person in their midst. People who run a business love to have Person around though; for the field of expertise that Person has.
I've seen a lot of Person's being misunderstood and haven't liked it when I see them being discriminated, laughed-at and being treated as an outcast by the social group.

If you know a Person:
  • Realize that Person has been through difficulties in life. It takes a lot of time for it to heal. Being rude to them or ignoring them won't allow them to heal.
  • Never treat Person like a baby or with a lot of sympathy. They won't like it. Treat them respectfully and interact with them as you would with your social group. Person might not respond like the social group does, which would hurt you, but realize that secretly, Person is appreciating the respect you're giving. They just might not want to express the appreciation immediately.
  • Give Person a bit of your attention and time. Even a few seconds of friendly interaction everyday can make a big difference. Person might not want too much of interaction.
  • If Person does not want to join in with your social activities, don't force it on them. But invite Person anyway (just in case Person feels comfortable enough to join in).
  • Discourage people from making fun of Person. Try creating a healthy environment, where people respect Person for what they're good at, and encourage Person to contribute those skills. Appreciate them for it. Person almost always has skills that are far more advanced than skills the social group has.
  • Given a healthy emotional environment to be in, Person will eventually open up and be comfortable interacting with you. If Person isn't talking to y'all, it's because the social group would have been rude/mocking/insensitive. Don't blame Person for it.

Sunday, May 4, 2014

Conference: Leveraging digital media. For startups

While it's understandable that people have to gather data about people to be able to advertise and keep their business running, I feel it's very necessary for advertising to be done with a sense of ethics and respect for people's privacy and personal lives. The conference I attended, sadly didn't touch on this topic.

A bit different from the conference on open source, this conference at IIM-B was a concentrated amalgamation of years of experience from various entrepreneurs who shared their knowledge with other entrepreneurs (pretty much like the corn farmer).
Learnt a lot about the business language and perspective of technology.

Moderated by professor Seema Gupta and with panelists:
  • Mr. Lakshmipathy Bhat, Director, Code Conclave
  • Mr. Achintya Gupta, Evangelizer, Kuliza
  • Ms. Sweta Sharma, COO, Simplify360
  • Mr. Nikhil Ramaprakash, Head of Marketing, Urban Ladder
  • Mr. Vinay Prashant, Head of Marketing, Amagi Media Labs

The intro
A bit different from conventional mass media, is digital media, where what you create, should be 'findable'. Acquiring customers and brand building are the two facets of digital marketing. This involves search engine marketing, search engine optimization, social media marketing, web analytics, email marketing and mobile marketing.

You have to know the number of page hits, why people are leaving your website and the ranking of your content on Google (which currently has 75% market dominance). As your competitor will always keep trying to better themselves and rank higher, the way around that which you have, is to use paid advertising (noticed those adverts that come up on top of your Google search results when you search for something?)

The old and the new
  • One flaw of conventional mass media, is that there's no measurement. ie: there's no way to know (apart from rough 'people meters' or it's portable version) how many people are watching your ad's.
  • Marketing is powerful only when the consumer is intent to buy. A consumer using digital media is shown targeted ad's when they're actively searching for something they want to buy. This readiness state of the consumer is the strength of digital marketing.
  • Compared to mass media, digital marketing has a rate card. It doesn't discriminate between startups and established corporations. In mass media for example, a corporation with deep pockets would be able to create a larger ad. Digital media levels the playing field to a large extent.
  • Mass media tries to minimize waste (there may be many people who aren't interested in an ad) but digital media maximizes efficiency. The cost of communication comes down and you can reach niche audiences. The best part being, that it'll cost you lesser money if you have great content! As a startup if you're having a low click through rate, your strategy should be to start displaying your ad by bidding for a high initial amount. Bidding is based on hunches/trial-error.
  • Mass media via television has a big advantage in conveying personification, character and emotion. It captures the attention of the consumer. A digital ad is lousy compared to this. But digital, allows you to fire bullets (try advertising with less money first) and if it works, then fire the cannonball (splurge on advertising). Mass media doesn't allow you to try this as effectively as digital media.
  • Unlike mass media which interrupts a consumer during a show, brand building via digital media happens via content consumption. Targeted, specific ads. So customer reception is more positive.

Some advice given to startups 
  • Limit paid media to 65% of total cost (of course, abroad, 60% is used just for content creation because they realize content is king). Remaining money can be used for earned media (likes and shares online) and for content creation. Plan for a web presence (but intelligently; Eg: people don't search online for soap, so don't use digital media to advertise it) and treat your digital PR agency as a guide who walks with you and understands your brand.
  • Be platform agnostic (your ad's should be accessible via any device and any operating system)
  • Understand the criticality of content creation.
  • Your quality score = keywords + click through rate.
  • Also, connect online with offline. Eg: one company noticed that people tended to see their ads more when they played poker. They also noticed that people played poker more when it rained. So this company started targeting their ads at cities where and when it was raining.
  • The how's: Identify content that people are interested in. Eg: As a mutual fund company, you know that people who play golf are rich. Keep track of their golf scores, their friend's golf scores, provide tips on how they can beat their friends and integrate your brand into this advertising. So the next time they look to invest money, they'll consider your brand.
  • It's time for multilingual: Research shows the internet is increasing at 67% in non-metros and at just 16% in metros. Having content that a local population can understand, can enhance the value of your advertising. Of course, the discoverability of vernacular languages is difficult because of the dominance of search being in English.
  • If you're providing a niche service, find forums and blogs which discuss your kind of products and advertise there instead of on Google ads.
  • Email marketing is very effective. For every rupee spent on email marketing, you get an ROI of Rs.40.

"Nobody reads ads. People read what interests them. Sometimes it's an ad." —Howard Gossage

Some of the combined knowledge of the panelists
  • Television reaches more people than other media combined. The startup Amagi, showed us how targeted TV seamlessly shows different ads at the same instant, across various states in India.
  • Listen to existing, prospective and competitor's customers. Use the info gathered to improve content. Be your own PR and know where your audience is.
  • People tend to engage on the smaller screen and tend to transact on the large screens.
  • Create visually engaging posts. It creates virality and ROI.
  • Hire analysts rather than people who just run campaigns, because what you really need are people who can analyze data gathered and improve the campaign.
  • Relate ad's with day-to-day context. Like how Facebook has lifestyle and lifestage targeting; or like the sitOrSquat mobile app started by a toilet-paper company (Charmin) which shows you the nearest toilets (which contain their toilet paper of course); or like the chewing gum brand which designed a game based on people having to move their jaws in a chewing motion to play the game. 
  • Use a blog as a voice of authority on a subject and do not underestimate the utility of newsletters.

Met some interesting people too. A freelancer entrepreneur who helps with SEO, information architecture and has written her own book on life. A person who started his own hospital and was looking on how he could make people want to return to the hospital by improving their emotional experience of visiting the hospital. An entrepreneur who looks to change the way we handle organic waste by converting it into compost and was looking for better ways to advertise and market her brand.

Saturday, May 3, 2014


I intend to keep putting up more LOL pages every month, so when you visit, you just might find some new piece of humour (and sometimes some insight) I created for your enjoyment.

At the traffic signal
share with this link

Mini flyovers would have been more economical in terms of fuel and time

Microwave buttons
share with this link

Continued in the next LOL page.

Thursday, May 1, 2014

A simplified reference to various license terms

Most people find it a nightmare to read through licenses and make sense of them. Legally, you're required to actually read through each and every word of it, but I thought I'd simplify the process for you by putting it in more simple terms (at your own risk).
During the course of my work (I'm a software developer; not a lawyer), I've had to evaluate many open source and proprietary licenses.
There are even groups that can help with the legal problems related to licensing.
For choosing a license there's this, for a comparison there's this and also some nice charts here.

Short form

FOSS licenses also come with a disclaimer that there is no warranty.

  • Copyleft license: You can use, modify and distribute the license under the same or equivalent license, but you should also share the source code.
  • Berkely Software Distribution license (BSD): You can combine the software with your proprietary software and release it under a proprietary license, but you have to retain the BSD license text and notices. This license may also have one or two more clauses about using the author's name or advertising.
  • Gnu Public License (GPL): You can use, modify and distribute the software for free or for a fee, but you have to also distribute the source code with it, and if the software is combined with other software, that software will also have to be released as GPL, unless it is not an aggregate (it does not interact with the GPL software)
  • Lesser Gnu Public License (LGPL): Same as GPL, but you're allowed to link your proprietary software with LGPL software and release it under your terms. But there are some conditions under which you can do so.
  • Affero Gnu Public License (AGPL): Same as GPL, but it additionally says that your software is considered as having been distributed, if someone else is able to use it (like if you keep it on a server and they can run it from the server).
  • Massachusetts Institute of Technology license (MIT): You are allowed to use, modify and distribute copies of the software as long as you allow the same rights to the person to whom you distribute the software
  • Apache License: If you follow the Apache license, you're allowed to use, modify and distribute copies of the software, and you can add your own copyright statement to the changes you make. You can also provide additional or different license terms and conditions for use, reproduction or distribution of your modifications.
  • Mozilla Public License (MPL): You can use, modify, distribute and sell the software, provided you also give the recipient the source code. You can also sub-license the modified work, provided you don't restrict the recipients rights to the source code.
  • Boost Software License: You can use the software and create derivative works out of it provided you include the license text and disclaimer in all derivative works (no need to include the text if the derivative work is object code).
  • Expat License: You can use the software for free, use it, modify it, sublicense it and sell it and allow those who receive it to do the same, provided the license text is included in all or a reasonable number of sections of the software.
  • Do What The Fuck You Want To Public License: Strange as the name is, this is a real license. This license when applied to a software, allows you to do whatever you want with it. No restrictions.
  • X11 License: You can use the software for free, use it, modify it, sublicense it and sell it and allow those who receive it to do the same, provided the license text is included in all or a reasonable number of sections of the software. Additionally, you cannot use the name of X Consortium to advertise or promote the sale of the software without their written permission.
  • Zlib License: You can use the software freely, even commercially. You can modify and redistribute it provided you do not claim to have written the original software. If you're using this software, an acknowledgement in the product documentation would be nice, but not explicitly required. If you alter the source code, it should be explicitly mentioned that it is altered source code. The license text should be present in all unmodified and modified copies of the source code.
  • Common Development and Distribution License (CDDL): You can use, modify and sublicense the software, even as part of a larger software. You have to make the source code available to those you distribute the software to. Any modifications you make are also covered under this license, and you should mention that you modified it. You aren't allowed to modify any of the other copyright notices and you can't alter the terms of the license in a way that restricts the rights of those who receive it. You can charge a fee if you offer warranty, support or liability, but none of the other contributors of the software can be held responsible for it.
  • Common Public Attribution License (CPAL): If you're a developer, you can use, modify, sublicense and use the software as part of a larger work. If you're distributing or contributing to the software, you can use, modify, sublicense and sell the software from the date the contributor who gave you the software first makes commercial use of the software. The software can be distributed only under the CPAL and all copies of the software should contain the license text and if you've modified the software, you should provide documentation of what you modified and include the name of the initial developer. You also have to make the source code available to the recipient. You can distribute the executable under your own license (provided you also comply with CPAL), but the accompanying source code should not restrict the recipients rights provided by the CPAL. You can combine the CPAL code with other code, but have to ensure that the code under CPAL remains covered by CPAL.
  • Common Public License (CPL): You can use, modify, sublicense, sell the software. There is no guarantee on infringement of intellectual property rights. You can distribute the program in object code form under your own license provided you comply with CPL, not hold any of the contributors liable for any problems, specifically mention that which of the license terms are yours and specify how the recipient can obtain the source code. If you distribute the source code, it has to be under the CPL and you have to supply a copy of the CPL along with it. You cannot alter/remove any copyright notices and if you've contributed to the source code, you have to mention it.
  • Eclipse Public License (EPL): You can reproduce, distribute, sublicense the software in source code and object code form (provided it complies with the EPL, has a disclamer of warranties and states that the source code is available and where it is available from). Every contributor to the software should mention which portion of the software they contributed to. You can distribute the software commercially so long as other contributors to the software are not liable for any problems and if you agree to defend the other contributors from losses, damages and costs arising from legal action. Unless explicitly stated, the EPL offers no warranties or liabilities.

Some people have emailed me asking if they could thank me for saving their time. The best way to thank me is by contributing to Open Source. Being a sweetheart if you'd like to give a more personal thank you, then I don't really like the idea of monetary donations, but  maybe a wishlist wouldn't be that bad.


Long form
[explained only for select licenses]

A Copyleft license:
  • Any license which gives a person the freedom to use, study, copy, share, modify and distribute the work under the same or an equivalent license.
  • When distributed, the source code of the original or modified work should also be provided along with the software.
Types of copyleft licenses:
  • Strong copyleft (Eg: GPL, Design Science License) : Programs and derivative works should carry the same license.
  • Weak copyleft (Eg: LGPL, MPL) : Allows programs of any license to be compiled and linked against the copylefted library and the derived software can be re-distributed under any licensing that the author chooses.
  • Full copyleft: All parts of the work may only be modified and distributed under the copyleft license terms.
  • Partial copyleft: Distribution of some parts of the work is allowed under terms different from the copyleft license terms.
  • Share-alike: Any freedom given by the license should be given in exactly the same way or a compatible way in any derived work.
And be careful; the copyleft symbol has no legal significance, so it doesn't indicate any legal rights to any work to which you apply it to.

ps: Some free software licenses that are non copyleft are X11 license, Apache license and BSD.

The BSD License

You're allowed to use BSD licensed software in your proprietary software. You can also release this combined work (your software + the BSD licensed software) under a proprietary license as closed source software. The software is provided with no warranties or liabilities.

2 clause BSD License:
  • Redistributions of the source code should retain the copyright notice and the list of conditions of the license
  • Redistributions of the binary form of the software should show the copyright notice in the documentation that is provided with the software.
3 clause BSD license:
Same as the 2 clause license, but with this addition:
  • You are not allowed use the name of the organization that created the software or the names of the contributors to the software, in order to endorse or promote products created from the software without written permission from those people.
4 clause BSD license:
Same as the 3 clause license, but with this addition:
  • If you mention the features or use of the software (which is under this license) in any advertising you do, the advertising material should include the following sentence: "This product includes software developed by the [name of the organization that made the software]".

The GNU General Public License (GNU GPL / GPL)

Accepting this license is not required if you're just receiving or running a copy of a software covered by GPL. But you'll be breaking copyright law, if you propagate or modify the software without accepting the license. By applying GPL to your work, you're protecting user's legal rights from anti-circumvention laws (the laws which restrict 'fair use' of digital info).

If you're handling the source code of a software under GPL:
  • Copies of the source code have to retain the copyright notice and warranty. 
  • You can use copies of the code for free and distribute copies for free or for a fee (but you should tell those who receive the code to follow and display the same license rules).
  • There is no warranty for the code, but you can offer support or warranty protection for a fee.
  • Patents cannot be used to make the program non-free (free, meaning "freedom". Not money)
  • The use of code under GPL with a separate module of code (which may be under a different license and is not an extension of the code under GPL) is allowed if the other module of code is not combined with the code under GPL to form a larger program and if the resulting copyright of both modules of code does not restrict the legal rights of the code under GPL. In such a case, the GPL does not apply to the other module of code.
  • You can combine the code under GPL, with code under version 3 of the GNU Affero GPL, provided that section 13 of the Affero GPL will also apply to the combined product.
  • If you modify the source code or create a software based on the code covered by GPL, the work must have a clearly visible legal notices in the GUI, stating that you have modified it and at what date you did so. Also, the resulting code will also be covered under the GPL.

If you're handling only the compiled/binary form of the software under GPL:
  • If you give someone a compiled form of code under GPL, you also have to give them a copy of the source code (you can charge them the minimum fee for the cost of giving it to them - cost of CD/DVD/Transport etc.).
  • If you're distributing a modified form of the software, you should provide information required to install and execute the program.
  • The copy of the source code you distributed, must not be protected by a password or other ways of preventing a person from accessing the code.

You can also add these terms to your GPL license:
  • You can specify different conditions for liability and warranty (different from what is given above)
  • Specification that legal notices or author attributions should be retained
  • Not allowing someone to wrongly mention the origin of the software or requiring that modified versions of the software should specify that the software was modified.
  • Placing limits on the use of the author's name for publicity.
  • Not allowing rights under trademark law for the use of some trade names
  • Mentioning that the author or licensor of the software is not liable if someone takes up liability for a modified version of the software that they distribute.

Termination of the license:
  • If you distribute or modify software under GPL in any way that is not covered under the license, your rights to the software (including patent rights) will end.
  • If you stop violating the license, then your rights to the license is given back to you conditionally, if the copyright holder terminates your license. Your rights are terminated permanently if the copyright holder does not notify you about the violation before 60 days from when your license rights ended.
  • Your license rights are granted to you permanently if you fix the violation within 30 days of the copyright holder notifying you of a violation of license terms (and provided it's the first time you're receiving such a notification).
  • If your rights have been terminated, you cannot receive any more licenses for the same software, but this does not terminate the licenses of others who have received rights or copies of the software from you under this license.

How to apply the GPL to your program:
  • Attach the notices given at the bottom of the license page, to the start of each source file. Each file should have at least the copyright line and a pointer to the location of the complete license terms. 
  • Also include your contact information (email and paper mail)
  • If necessary, get your employer or school (if you're a student) to sign a copyright disclaimer for the program.

The GNU Lesser General Public License (LGPL)

The LGPL does not require you to comply with section 3 of the GPL, which prevents a person from limiting the operation/modification of a work that's released under LGPL.

Modifying and distributing a software under LGPL
If your modified code uses a reference to a function or data (this function or data has to be supplied to your modification by an application that uses your modification), then you're allowed to distribute a copy of the modified version under LGPL, provided that you ensure that in case the other application does not supply the function or data, your modifications should still work as per the purpose it was created for.
In such conditions, you can also release it as GPL.
Just remember, that the passing of the function or data by the application should be done by any means other than as an argument passed when your modification is invoked.

Using object code of an application + LGPL software's headers
You can distribute software under your own license if the object code of your own application uses material from a header file that's covered by LGPL.
But, if the header file contains anything more than numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), then you have to give a prominent notice with every copy of the object code, that the header file of that particular LGPL software is used in it and that the library and the use of the library are covered by LGPL. Also, the object code has to be distributed with a copy of the GPL and LGPL.

Combining your software with a software under LGPL
You can combine your software with an LGPL software if:
  • You shouldn't restrict modifications and reverse engineering (for debugging) of the combined work
  • Give a prominent notice that the LGPL software is used in the combined work and that the LGPL software and it's use are covered under LGPL.
  • Distribute the combined work with a copy of the GPL and LGPL.
  • If the combined software displays any copyright notices when it runs, you should also display the LGPL notice and let the user know where you placed a copy of the GPL and LGPL.
  • If the user would need instructions on how to install and execute the combined work, you should also provide installation information as specified in the GPL. You should also do either (1) or (2). Your choice of which you choose to do. See below
  1.  Distribute the source code of the combined work (note that you're only required to distribute the sections of your source code and the source code of the code under LGPL, which are linked together. Parts of your source code that are not linked with the LGPL code, you don't have to distribute). You have to distribute it under terms that allow the user to recombine/relink the application with a modified version of the linked version. This way the user will be able to produce their own combined work.
  2. Use a shared library mechanism for linking with the software under LGPL. The mechanism has to use at runtime, a copy of the library already present on the user's computer and it should operate properly with a modified version of the LGPL software which has a compatible interface with the linked version of the software.
 Combined libraries
You're allowed to create a single library that is composed of the library you created by combining your software with the LGPL software, and along with other libraries (even if these other libraries are not under LGPL, but they should be libraries; not applications). Such a library you create from a cluster of libraries, you can distribute under your own terms and conditions if:
  • You give a prominent notice with the combined library, that part of it is based on the library that is covered under LGPL and provide information on where the user can find the uncombined version of the library.
  • You also have to give the user a copy of the uncombined form of the library under LGPL and a copy of the LGPL.

Affero General Public License (AGPL)

The AGPL was designed to close a perceived application service provider loophole in GPL, where, someone could avoid the copyleft provisions of the GPL by using, but not distributing the software.

AGPL is same as GPL, but it additionally says that your software is considered as having been distributed, if someone else is able to use it. Eg: if your application is on a server which someone is able to access and use, then even though you haven't actually distributed your application to the user, it is considered as distributed, when under AGPL.

MIT License

For a software that is covered by MIT license: The software is provided with no warranties or liabilities. You are allowed to use, copy, modify, merge, publish, distribute, sub-license, and/or sell copies of the software as long as you allow the same rights to the person to whom you distribute the software and also provided that you display the MIT copyright notice and permission notice in all copies of the software or at least in a majority of the portions of the software.

Apache License

Every contributor to an Apache license has to give you worldwide, no-charge, royalty-free, license (which cannot be revoked/withdrawn) to reproduce the software, create derivative works from it, to publicly display the work, to publicly operate the work, to sublicense the work, to distribute the work and derivative versions of it in source form or as object code.
The Apache license does not grant any warranty or liability, but when redistributing the work or derivative works, you can choose to offer and charge a fee for acceptance of support, warranty, indemnity or other liability and/or rights that follow this license. You can do so only under your own responsibility. No other contributor of the work will be liable.

Patent license
 Every contributor to an Apache license has to give you worldwide, no-charge, royalty-free, patent license to make, use, sell, import and transfer the work, where the license applies only to those patent claims which the person has contributed to the work.
If you start a patent litigation against anyone, saying that the work or a contribution in the work is a patent infringement, then the patent licenses granted to you shall end on the date you file the litigation.

Redistribution of the work
You can reproduce and distribute copies of the work and derivative works in any medium, with or without modifications, and in source or object code form if you follow these conditions:
  • Everyone who receives the work or derivative work from you, should also receive a copy of this license.
  • All modified files must have notices which say that you changed the files
  • In the source code, you must retain all copyright, patent, trademark and attribution notices (you don't have to retain notices that don't belong to any part of the derivative work)
  • The above point applies to any "NOTICE" text that's part of the distribution too. The contents of such a notice are only for informational purpose. It doesn't modify the license. You can also add attribution notices of your own to derivative works you create.
You're also allowed to add your own copyright statement to the changes you make to the work, and can also provide additional or different license terms and conditions for use, reproduction or distribution of your modifications or for such derivative works. This is allowed only if your use, reproduction and distribution of the work follows the conditions of the Apache license.

Contributions submitted by you
Unless you specify any terms, any contribution you intentionally submit to be included in the work, will be under the terms and conditions of the Apache license.

This license doesn't give permission to use the trade names, trademarks, service marks or product names of the licensor except for use in describing the origin of the work and reproducing the content of any NOTICE file.

Mozilla Public License (MPL)

For intellectual property rights, you are given a world-wide, royalty-free license under intellectual property rights to use the software, reproduce it, display it, perform it, either by modifying it or without modifying it. A contributor to the software has the right under patent claims, to make, use, sell, offer for sale, import and transfer contributions of the software or have made contributions to the software or the contributor version of the software. These rights granted are effective for each contribution on the date the contributor distributes the software.
The software is given with no warranty or liability. Any litigation may be brought only in the courts of jurisdiction where the person maintains their main place of business and such litigation will be governed by the laws of that jurisdiction. Anyone can bring cross-claims or counter-claims too.

Limitation on the grant of license
No other license is granted, apart from what is specified above. If a contributor has removed code from a software or if there's any patent infringement by you or a third party, the contributor gives you no patent license. You're also not allowed to use any trademarks, service marks or logos of any contributor, unless you're doing so to follow the requirements of displaying a license notice as specified in the "Notices" section below.

This license does not limit rights of fair use, fair dealing or other equivalent rights as per copyright.

Distributions of source code
All distributions should be under this license and you must inform the recipients of the software about the terms of this license.

Distribution of the executable version of the software
  • If you distribute the executable, you also have to provide the source code to the recipient. If you incur any cost in giving them the source code, you can charge them that exact amount.
  • You can either distribute the executable under this license or sub-license it under different terms, provided you don't restrict the rights of the recipient, for the source code.

Distribution of a larger work
If you combine the software with other work in separate files (which are not covered by the Mozilla public license), you can distribute the combined work under terms of your choice, provided you also follow the requirements of the Mozilla public license. If the other work is covered by a license that is compatible with this license, you're allowed to distribute such covered software under terms of the other license, so that the recipient of the combined work can have the option to further distribute the software under the terms of either this license or the other license.

You aren't allowed to remove or alter any notices that are contained in the source code form of the software. However you can alter any inaccuracies of fact in the notices.

Additional terms
You can offer and charge a fee for warranty, support, indemnity or liability (you can place limitations on the jurisdiction of the liability) to those whom you distribute the software to, but by doing so, none of the other contributors of the software will be liable.

Inability to comply with the license terms
If you cannot comply with the license terms for a legal reason, you must comply with this license as much as possible and describe the limitations and the code it affects, in a text file that should be included in all distributions of the software. The description should be detailed in such a way that a person should easily be able to understand it.

  • The rights granted to you will be automatically ended if you don't comply with the terms of the license. However, if you comply to the license again, the rights will be granted to you again provisionally, unless a contributor terminates your license grant and it's granted to you again on an ongoing basis if the contributor does not notify you of the non-compliance before 60 days from when you have begun compliance. Your rights will also be given back to you if this is the first time the contributor has notified you of a non-compliance and you become compliant within 30 days of receiving the notification.
  • If you start a litigation against anyone by specifying a patent infringement claim saying that a contributor version of the software directly or indirectly infringes any patent, then the rights granted to you will terminate. In such a situation, rights granted to those whom you distributed the software to, will not be terminated.

  • A law or regulation which says that the language of this license shall be interpreted based on the person who created this license, shall not be used to interpret the license against a contributor.
  • Nobody other than Mozilla Foundation has the right to modify or publish new versions of the license.
  • You can distribute the software under the current license terms or future versions published by Mozilla Foundation.
The bottom of the page of the Mozilla Public License provides the notice text which you can use for the source code form of the license and the notice for incompatibility with secondary licenses.

Other licenses listed by the free software foundation can be found here