
Recherche avancée
Médias (1)
-
The pirate bay depuis la Belgique
1er avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
Autres articles (62)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (10859)
-
How to Choose a GDPR Compliant Web Analytics Solution
2 mars 2022, par Matthieu Aubry — Privacy -
Overthinking My Search Engine Problem
31 décembre 2013, par Multimedia Mike — GeneralI wrote a search engine for my Game Music Appreciation website, because the site would have been significantly less valuable without it (and I would eventually realize that the search feature is probably the most valuable part of this endeavor). I came up with a search solution that was a bit sketchy, but worked… until it didn’t. I thought of a fix but still searched for more robust and modern solutions (where ‘modern’ is defined as something that doesn’t require compiling a C program into a static CGI script and hoping that it works on a server I can’t debug on).
Finally, I realized that I was overthinking the problem– did you know that a bunch of relational database management systems (RDBMSs) support full text search (FTS) ? Okay, maybe you did, but I didn’t know this.
Problem Statement
My goal is to enable users to search the metadata (title, composer, copyright, other tags) attached to various games. To do this, I want to index a series of contrived documents that describe the metadata. 2 examples of these contrived documents, interesting because both of these games have very different titles depending on region, something the search engine needs to account for :system : Nintendo NES game : Snoopy’s Silly Sports Spectacular author : None ; copyright : 1988 Kemco ; dumped by : None additional tags : Donald Duck.nsf Donald Duck
system : Super Nintendo
game : Arcana
author : Jun Ishikawa, Hirokazu Ando ; copyright : 1992 HAL Laboratory ; dumped by : Datschge
additional tags : card.rsn.gamemusic Card Master CardmasterThe index needs to map these documents to various pieces of game music and the search solution needs to efficiently search these documents and find the various game music entries that match a user’s request.
Now that I’ve been looking at it for long enough, I’m able to express the problem surprisingly succinctly. If I had understood that much originally, this probably would have been simpler.
First Solution & Breakage
My original solution was based on SWISH-E. The CGI script was a C program that statically linked the SWISH-E library into a binary that miraculously ran on my web provider. At least, it ran until it decided to stop working a month ago when I added a new feature unrelated to search. It was a very bizarre problem, the details of which would probably bore you to tears. But if you care, the details are all there in the Stack Overflow question I asked on the matter.While no one could think of a direct answer to the problem, I eventually thought of a roundabout fix. The problem seemed to pertain to the static linking. Since I couldn’t count on the relevant SWISH-E library to be on my host’s system, I uploaded the shared library to the same directory as the CGI script and used dlopen()/dlsym() to fetch the functions I needed. It worked again, but I didn’t know for how long.
Searching For A Hosted Solution
I know that anything is possible in this day and age ; while my web host is fairly limited, there are lots of solutions for things like this and you can deploy any technology you want, and for reasonable prices. I figured that there must be a hosted solution out there.I have long wanted a compelling reason to really dive into Amazon Web Services (AWS) and this sounded like a good opportunity. After all, my script works well enough ; if I could just find a simple Linux box out there where I could install the SWISH-E library and compile the CGI script, I should be good to go. AWS has a free tier and I started investigating this approach. But it seems like a rabbit hole with a lot of moving pieces necessary for such a simple task.
I had heard that AWS had something in this area. Sure enough, it’s called CloudSearch. However, I’m somewhat discouraged by the fact that it would cost me around $75 per month to run the smallest type of search instance which is at the core of the service.
Finally, I came to another platform called Heroku. It’s supposed to be super-scalable while having a free tier for hobbyists. I started investigating FTS on Heroku and found this article which recommends using the FTS capabilities of their standard hosted PostgreSQL solution. However, the free tier of Postgres hosting only allows for 10,000 rows of data. Right now, my database has about 5400 rows. I expect it to easily overflow the 10,000 limit as soon as I incorporate the C64 SID music corpus.
However, this Postgres approach planted a seed.
RDBMS Revelation
I have 2 RDBMSs available on my hosting plan– MySQL and SQLite (the former is a separate service while SQLite is built into PHP). I quickly learned that both have FTS capabilities. Since I like using SQLite so much, I elected to leverage its FTS functionality. And it’s just this simple :CREATE VIRTUAL TABLE gamemusic_metadata_fts USING fts3 ( content TEXT, game_id INT, title TEXT ) ;
SELECT id, title FROM gamemusic_metadata_fts WHERE content MATCH "arcana" ;
479|ArcanaThe ‘content’ column gets the metadata pseudo-documents. The SQL gets wrapped up in a little PHP so that it queries this small database and turns the result into JSON. The script is then ready as a drop-in replacement for the previous script.
-
Lawful basis for processing personal data under GDPR with Matomo
30 avril 2018, par InnoCraftDisclaimer : this blog post has been written by digital analysts, not lawyers. The purpose of this article is to explain what is a lawful basis and which one you can use with Matomo in order to be GDPR compliant. This work comes from our interpretation of the following web page from the UK privacy commission : ICO. It cannot be considered as professional legal advice. So as GDPR, this information is subject to change. GDPR may be also known as DSGVO in German, BDAR in Lithuanian, RGPD in Spanish, French, Italian, Portuguese. This blog post contains public sector information licensed under the Open Government Licence v3.0.
The golden rule under GDPR is that you need to have a lawful basis in order to process personal data. Note that it is possible to not process personal data with Matomo. When you do not collect any personal data, then you do not need to determine a lawful basis and this article wouldn’t apply to you.
“If no lawful basis applies to your processing, your processing will be unlawful and in breach of the first principle.“
Source : ICO, based on article 6 of GDPR.
As you may process personal data in Matomo, you have to :
Even if you think you don’t process personal data, we recommend reading this post about personal data in Matomo (personal data may be hidden in many ways).
Note that if you are processing special category data (ethnic origin, politics, religion, trade union membership…) or criminal offence data ; extra responsibilities are applied, and we will not detail them in this blog post.
1 – Define a lawful basis
There are 6 different lawful bases all defined within article 6 of the GDPR official text :
- Consent : the data subject has given consent to the processing of his or her personal data for one or more specific purposes.
- Contract : processing is necessary for the performance of a contract to which the data subject is party or in order to take steps at the request of the data subject prior to entering into a contract.
- Legal obligation : processing is necessary for compliance with a legal obligation to which the controller is subject.
- Vital interests : processing is necessary in order to protect the vital interests of the data subject or of another natural person.
- Public task : processing is necessary for the performance of a task carried out in the public interest or in the exercise of an official authority vested in the controller.
- Legitimate interests : processing is necessary for the purposes of the legitimate interests pursued by the controller or by a third party ; except where such interests are overridden by the interests or fundamental rights and freedoms of the data subject which require protection of personal data, in particular where the data subject is a child.
As you can see, most of them are not applicable to Matomo. As ICO is mentioning it within their documentation :
“In many cases you are likely to have a choice between using legitimate interests or consent.”
“Consent” or “Legitimate interests” : which lawful basis is the best when using Matomo ?
Well, there is no right or wrong answer here.
In order to make this choice, ICO listed on their website different questions you should keep in mind :
- Who does the processing benefit ?
- Would individuals expect this processing to take place ?
- What is your relationship with the individual ?
- Are you in a position of power over them ?
- What is the impact of the processing on the individual ?
- Are they vulnerable ?
- Are some of the individuals concerns likely to object ?
- Are you able to stop the processing at any time on request ?
From our perspective, “Legitimate interests” should be used in most of the cases as :
- The processing benefits to the owner of the website and not to a third party company.
- A user expects to have their data kept by the website itself.
- Matomo provides many features in order to show how personal data is processed and how users can exercise their rights.
- As the data is not used for profiling, the impact of processing personal data is very low.
But once more, it really depends ; if you are processing personal data which may represent a risk to the final user, then getting consent is for us the right lawful basis.
If you are not sure, at the time of writing ICO is providing a tool in order to help you make this decision :
Note that once you choose a lawful basis, it is highly recommended not to switch to another unless you have a good reason.
What are the rights that a data subject can exercise ?
According to the lawful basis you choose for processing personal data with Matomo, your users will be able to exercise different rights :
Right to be informed Right of access Right to erasure Right to portability Right to object Right to withdraw consent Legitimate interests X X X X Consent X X X X X - Right to be informed : whatever the lawful basis you choose, you need to inform your visitor about it within your privacy notice.
- Right of access : as described in article 15 of GDPR. Your visitor has the right to access the personal data you are processing about them. You can exercise their right directly within the page “GDPR Tools” in your Matomo.
- Right to erasure : it means that a visitor will be able to ask you to erase all their data. You can exercise the right to erasure directly within the page “GDPR Tools” in your Matomo.
- Right to portability : it means that you need to export the data which concern the individual in a machine-readable format and provide them with their personal data. You can exercise their right directly within the page “GDPR Tools” in your Matomo.
- Right to object : it means that your visitor has the right to say no to the processing of their personal data. In order to exercise this right, you need to implement the opt-out feature on your website.
- Right to withdraw consent : it means that your visitor can remove their consent at any time. We developed a feature in order to do just that. You can learn more by opening the page “Privacy > Asking for consent” in your Matomo.
2 – Document your choice
Once you choose “Legitimate interests” or “Consent” lawful basis, you will have some obligations to fulfill. From our interpretation, “Legitimate interests” means writing more documentation, “Consent” means a more technical approach.
What should I do if I am processing personal data with Matomo based on “Legitimate interests ?
ICO is providing a checklist for “Legitimate interests”, below is our interpretation :
- Check that legitimate interests is the most appropriate lawful basis.
Our interpretation : document and justify why you choose this lawful basis in particular. This tool from ICO can help you.
- Understand your responsibility to protect the individual’s interests.
Our interpretation : you need to take all the measures in order to protect your users privacy and data security. Please refer to our guide in order to secure your Matomo installation.
- Conduct a legitimate interests assessment (LIA) and keep a record of it to ensure that you can justify your decision. This document is composed of a set of questions on those 3 key concerns : 1) purpose, 2) necessity, 3) balancing.
1) Purpose :
- Why do you want to process the data – what are you trying to achieve ?
- Who benefits from the processing ? In what way ?
- Are there any wider public benefits to the processing ?
- How important are those benefits ?
- What would the impact be if you couldn’t go ahead ?
- Would your use of the data be unethical or unlawful in any way ?
2) Necessity :
- Does this processing actually help to further that interest ?
- Is it a reasonable way to go about it ?
- Is there another less intrusive way to achieve the same result ?
3) Balancing :
- What is the nature of your relationship with the individual ?
- Is any of the data particularly sensitive or private ?
- Would people expect you to use their data in this way ?
- Are you happy to explain it to them ?
- Are some people likely to object or find it intrusive ?
- What is the possible impact on the individual ?
- How big an impact might it have on them ?
- Are you processing children’s data ?
- Are any of the individuals vulnerable in any other way ?
- Can you adopt any safeguards to minimise the impact ?
- Can you offer an opt-out ?
- Identify the relevant legitimate interests.
- Check that the processing is necessary and there is no less intrusive way to achieve the same result.
- Perform a balancing test, and be confident that the individual’s interests do not override those legitimate interests.
- Use individuals’ data in ways they would reasonably expect, unless you have a very good reason.
Our interpretation : use those data to improve user experience for example.
- Do not use people’s data in ways they would find intrusive or which could cause them harm, unless you have a very good reason.
Our interpretation : ask yourself if this data is representing a risk for the individuals.
- If you process children’s data, take extra care to make sure you protect their interests.
- Consider safeguards to reduce the impact where possible.
Our interpretation : Check if your web hosting provider is providing appropriate safeguards.
- Consider whether you can offer an opt out.
Our interpretation : Matomo is providing you the opt-out feature.
- If your LIA identifies a significant privacy impact, consider whether you also need to conduct a DPIA.
Our interpretation : A DPIA can easily be conducted by using this software from the French privacy commission.
- Regularly review your LIA and update it when circumstances change.
- Include information about your legitimate interests in your privacy information.
As you see, going for “Legitimate interests” requires a lot of written documentation. Let’s see how “Consent” differ.
What should I do if I am processing personal data with Matomo based on “Consent” ?
As previously mentioned, using “Consent” rather than “Legitimate interests” is more technical but less intense in terms of documentation. Like for “Legitimate interests”, ICO is providing a checklist for “Consent” which is divided into 3 key categories : 1) asking for consent, 2) recording consent, and 3) managing consent.
- Asking for consent :
- Check that consent is the most appropriate lawful basis for processing.
- Make the request for consent prominent and separate from your terms and conditions.
- Ask people to positively opt in. Don’t use pre-ticked boxes or any other type of default consent.
- Use clear, plain language that is easy to understand.
- Specify why you want the data and what you are going to do with it.
- Give individual (‘granular’) options to consent separately to different purposes and types of processing.
- Name your organisation and any third party controllers who will be relying on the consent.
- Tell individuals they can withdraw their consent.
- Ensure that individuals can refuse to consent without detriment.
- Avoid making consent a precondition of a service.
- If you offer online services directly to children, only seek consent if you have age-verification measures (and parental-consent measures for younger children) in place.
- Recording consent :
- Keep a record of when and how you got consent from the individual.
- Keep a record of exactly what you told them at the time.
- Managing consent :
- Regularly review consents to check that the relationship, the processing and the purposes have not changed.
- Have processes in place to refresh consent at appropriate intervals, including any parental consent.
- Consider using privacy dashboards or other preference-management tools as a matter of good practice.
- Make it easy for individuals to withdraw their consent at any time, and publicise how to do so.
- Act on withdrawals of consent as soon as you can.
- Don’t penalise individuals who wish to withdraw consent.
3 – Inform your visitor about it in a privacy notice
Privacy notices are an important part within the GDPR process. Read our blog post dedicated to privacy notices to learn more.
We really hope you enjoyed reading this blog post. Please have a look at our Matomo GDPR guide for more information.
The post Lawful basis for processing personal data under GDPR with Matomo appeared first on Analytics Platform - Matomo.