How to disable the built-in “spyware” in Ubuntu 14.04

Since Edward Snowden hit the news, mass surveillance is a hot topic. No wonder that people are complaining about the privacy problems in Canonicals latest Ubuntu Linux versions. Ubuntu has a search bar in which you type every program you start or document you open. Everything you type in this bar is sent to Amazon (among others). It allows there companies to see when you use your computer and what you use it for. Some people call the privacy endangering component “spyware” or “malicious software”.  Let’s look at the definition of spyware:

Spyware is software that aids in gathering information about a person or organization without their knowledge and that may send such information to another entity without the consumer’s consent, or that asserts control over a computer without the consumer’s knowledge. – Wikipedia

This feature is enabled by default. The only way the user is informed is by some legal notice that is buried many menus/clicks deep. I think most users will never see it. This is why I believe it fully qualifies as spyware. In my opinion it would have been okay if an opt-in was presented during the installation, but this is not (yet) the case. Richard Stallman is also very outspoken on the subject:

One of the major advantages of free software is that the community protects users from malicious software. Now Ubuntu GNU/Linux has become a counterexample. What should we do? – Richard Stallman

When Richard Stallman is asking “What should we do?” he does not mean: “How do we disable it?”. Since the answer to that question is easy, let me start with that one.

This is how to disable the Ubuntu “spyware”

If you happen to be running Ubuntu 14.04 and you value your privacy, then do this:

ubuntu_spyware

Switching off “online search results” solves your privacy problem, but not the real problem. The real problem is that Canonical is trying to sell their users privacy to make a quick buck.

What should we do about this behavior by Canonical?

I feel that switching from Ubuntu 14.04 to an Ubuntu 14.04 based distribution will send a clear signal to Canonical. I would suggest Xubuntu 14.04 or Linux Mint 17 as good alternatives to Ubuntu 14.04. Or if you are completely fed up with Canonical, then you may want to switch to Debian or even Trisquel Linux. No other Linux distribution (than Ubuntu) has this privacy problem. I believe that once the popularity of Ubuntu drops, Canonical will have to reconsider selling their users (private) data.

Testing techniques for better manual testing

gr5

Manual testing continues to be the most popular method for validating the functionality of software applications. Manual testing is simple and straightforward. However, as technologies have progressed and applications become more complex, the process of manual testing has stayed mostly unchanged. “To err is human” and it is quite obvious that manual testing is error prone, time consuming, and monotonous for every tester. We all know that automation testing is more reliable and reduces testing time. But not all the applications can be done by a click of button. Human intuition cannot be replaced by automation. It is best to combine both the automated and manual testing. Manual testing is something that has not changed for almost more than two decades and in some cases it is a better choice than automated testing. With changing requirements and meeting deadlines, it is easier to change the test cases accordingly.

Certain testing techniques can be implemented as a part of manual testing so we can base our test cases better . Although there is no such hard and fast rules, here at LeaseWeb, we utilize the test techniques based on the requirements that best suit the scenario. Some of the techniques that we can use are as follows.

gr8

Equivalence partitioning

Inputs to the application are divided into groups that are expected to exhibit similar behavior. The key goal is to complete the test coverage and to lessen duplication.

Partition system inputs and outputs into ‘equivalence sets’ . If input is a 5-digit integer between 10,000 and 99,999, equivalence partitions are < 10,000, 10,000 – 99, 999 and > 10, 000

Boundary value analysis

In this technique, the test data chosen lie along the data extremes. Boundary values include maximum, minimum, just inside/outside boundaries, typical values, and error values. The idea is that, if a systems works correctly for these special values then it will work correctly for all values in between.

Choose test cases at the boundary of these sets : 00000, 09999, 10000, 99999, 10001

gr3

Decision table testing

Test cases are designed with the combination of inputs that contain logical conditions. In the entry decision table. It consists of four areas called the condition stub, the condition entry (TC1, TC2 etc,.), the action stub, and the action entry. Each column of the table is a rule that specifies the conditions under which the actions named in the action stub will take place. Where 1 is True and 0 is false, and X is a condition that is not applicable or irrelevant.

gr4

Use case testing

Test cases are designed based on the use cases designed by the functional designers. In the use case, the description between the actors, users and the systems is given along with the alternate flows which helps the tester to grab all the scenarios clearly and base the test cases on these. All the preconditions required before testing are clearly mentioned . The flow graphs are useful to understand the working of the system. Use case diagrams are also helpful in the acceptance testing since they are designed with the customer and user participation.

gr7

Ad-hoc testing

Testing is done based on the skills, intuition, and experience. There are no strong test cases for this type of testing.

An example of ad-hoc testing is exploratory testing, which is defined like simultaneous learning, and means that tests are dynamically designed, executed, and modified. When we first look at a new feature or system, we don’t know much about the system. We design experiments (or tests) to help us learn more about it. We then explore the system qualities and risks that we believe the customers, users, or other stakeholders may care about.

Functional Design: Why making requirements matters

Within our daily life, changes come along, as do the decisions on how we deal with them. These changes appear in your personal life and also in your professional life. And this is no different at LeaseWeb. Technology is changing and so are the wishes of our customers (and customers can come from within LeaseWeb and from the outside). And sometimes the changes that are requested are big and sometimes the changes are smaller.

But at the start of every change there’s always the same question: “Why do you want this change?” This can be to sell more products, to increase customer satisfaction, to keep ahead with the competition, to lower the manual actions so less hours are spend and more money can be earned and so on.

When the reason of the change is clear, it must be made clear what needs to be changed and what the change should look like. Say, for example, that you are a woodwork shop and a customer tells us he wants a new bed. As a woodworker, how do I know how this bed must look like? As I start building the bed with only this information, there is a big chance I will build something like this:

bed

Image source: IKEA, FJELLSE Bedframe

How do I know, before I start to build it, the customer is thinking about this:

cloud4

Image source: Rocking Bed – Private Cloud 

Obviously, LeaseWeb does not make beds, but we do run into this kind of problem, when we try to build software.

So all this comes down to the problem of making requirements. By asking the customer what he wants in detail, the chance is bigger that the development of the product will possess the correct critical properties and not possess the properties that were not requested. Expectations will be met more precisely and any rebuilding of the product will be less. So the costs will be lower (at the end) and time will be saved (by not rebuilding and remodeling the product). And most importantly, the customer will be more satisfied with the result. So, the most important activity in starting to build a (new or changed) product is to properly gather the requirements for the product.

There are four core activities within the requirements engineering process:

  • Elicitation: defining and refining the needs and wishes from different stakeholders in a most detailed way
  • Documentation: the elicited requirements are described adequately
  • Validation and negotiation: requirements are checked if they meet the predefined quality criteria; requirements that are inconsistent, are negotiated between stakeholders
  • Management: measures that are necessary to structure requirements, to prepare them so they can be used by different roles, to maintain consistency after changes, and to ensure their implementation

These are also well described on the requirementskenniscentrum website (in Dutch) and in the post called “requirements engineering explained” by Mike Polga.

So, the next time, when someone from functional design is at your desk and you’re thinking: “Why all these questions? I only want a bed”. Then realize that these questions are asked to understand the requirements: what kind of bed you want, what you’re going to use it for, how long you want to use it, for what purpose and for which costs? By telling him (or her) everything you’re thinking about (and more), you increase the chance that you get a product that meets your expectations, within time and within your budget.

LibreOffice 4.1.0 Final (released 2013-07-25)

Yesterday (on 2013-07-25) LibreOffice 4.1.0 Final was released. This is good news for people running Linux, Windows or Mac, since the software is available for all three platforms.

They call it “a landmark for interoperability”, because it mainly contains compatibility fixes. This is a version you should upgrade to, because it will make your “free Office” experience even smoother.

Let’s get to a selection of the new features:

  • Add “Match Case” option to the search bar.
  • Improvements to Microsoft OOXML import and export filters
  • Improvements to legacy Microsoft Office and RTF file filters
  • Font embedding in Writer, Calc, Impress and Draw
  • Support for Mac OS X for PowerPC has been dropped.
  • Calc: Excel 2013 for ODF OpenFormula compatibility.
  • Calc: Import large HTML documents with more than 64k table cells
  • Calc: Count the number of selected cells.
  • Calc: Add a Stepped Lines line type to Line and XY (Scatter) graphs.
  • Writer: Comments to text ranges can now span over multiple paragraphs.
  • Writer: Rotate images in 90 degree increments.
  • Impress: It is now easy to include a series of photos with the “Photo Album” feature.

see: https://www.libreoffice.org/download/4-1-new-features-and-fixes

see: http://blog.documentfoundation.org/2013/07/25/libreoffice-4-1-interoperability/