<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog |</title><link>https://carlos-hugoblox.netlify.app/en/blog/</link><atom:link href="https://carlos-hugoblox.netlify.app/en/blog/index.xml" rel="self" type="application/rss+xml"/><description>Blog</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-GB</language><image><url>https://carlos-hugoblox.netlify.app/media/icon_hu_aa3341e371185529.png</url><title>Blog</title><link>https://carlos-hugoblox.netlify.app/en/blog/</link></image><item><title>Responsible AI in RSE - a living register to support practitioners, leaders and policymakers</title><link>https://carlos-hugoblox.netlify.app/en/blog/2026/07/responsible-ai-in-rse-a-living-register-to-support-practitioners-leaders-and-policymakers/</link><pubDate>Tue, 14 Jul 2026 00:00:00 +0000</pubDate><guid>https://carlos-hugoblox.netlify.app/en/blog/2026/07/responsible-ai-in-rse-a-living-register-to-support-practitioners-leaders-and-policymakers/</guid><description>
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Note&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;This collaborative post was originally published at the
and was authored by some of the Responsible AI Study Group members: Joseph Shingleton, Carlos Cámara-Menoyo, Oscar Seip, Stephan Druskat, Sam Harrison, Arielle Bennett and B. Almarzouq.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The research software community is nothing if not diverse. It brings together practitioners loosely connected by their relationship with the broad and sometimes nebulous idea of &amp;lsquo;research software&amp;rsquo;. The day-to-day experience of, say, an engineer developing and maintaining computational fluid dynamics simulations is very different from that of a data architect supporting clinical data pipelines. It is unsurprising, then, that this diversity of experience gives rise to a wide range of hopes, concerns, and uncertainties - particularly within the context of Generative Artificial Intelligence (GenAI).&lt;/p&gt;
&lt;p&gt;Research software’s rich diversity of experience is explicitly recognised in the Alliance for Data Science and AI’s (ADSA) and US-RSE’s recent community
in the RSE workplace:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;“The conversation around software engineering in the age of GenAI has […] left relatively little space for nuanced discussions of […] the complexities of developing research software in a future where GenAI is widely available.”&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The nuance and complexity identified by ADSA make the development of GenAI guidance and policy particularly challenging. In the context of a highly diverse, reactive, and evolving discipline like research software engineering, there is no “one-size-fits-all” approach to GenAI governance. Rather, we must develop systems that capture the nuanced and shifting concerns of practitioners, leaders, funders and other stakeholders; systems that can also act as an evolving reference for best practice. The
(RAIRR) is intended as one such system.&lt;/p&gt;
&lt;p&gt;RAIRR is a living register designed to support open discussion of how GenAI adoption is affecting research software practice. It allows contributors to document risks identified in their day-to-day work, alongside possible mitigations, examples, and shared responsibility for responding to them. We expect the register to become a useful resource to inform the development of AI policies that are grounded in the actual experience of RSE practitioners, rather than hype, promises, expectations or unfounded fears. RAIRR is open for anyone to use and contribute to, being particularly relevant to practitioners, leaders and policymakers.&lt;/p&gt;
&lt;h2 id="pilot-and-technical-implementation"&gt;Pilot and technical implementation&lt;/h2&gt;
&lt;p&gt;We introduced RAIRR at the
as an opportunity to test the idea in practice. Working in small groups, attendees were asked to identify the ways in which GenAI adoption might lead to harm, failure, or undesirable outcomes in their professional work. Crucially, they were also asked to consider valid approaches to mitigation of these risks, and suggest examples of best practices they have seen, either in institutional guidance or individual practice. This provides a pragmatic and actionable account of practitioners&amp;rsquo; perception of AI risk in research software.&lt;/p&gt;
&lt;p&gt;An example of one such risk is shown below (
), which highlights the potential for the accidental reuse of licensed code in software with incompatible licenses (e.g. the use of copyleft-licensed code within more permissively licensed software). Given the provenance of AI-generated code is not visible to developers using GenAI (i.e. there is no way of knowing whether the generated code is mostly or entirely based on code with a restrictive license), there is a real risk that such code will be unintentionally reused in violation of licenses.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="https://www.software.ac.uk/sites/default/files/2026-06/RAIDD.png" alt="" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Risks can be added to and updated in the register through issue templates provided in the repository. As well as adding new risks or updating existing ones, the templates also allow users to add relevant or interesting resources. Since each risk is directly associated with a GitHub issue, users wishing to discuss a risk further can easily do so by adding a comment to the issue. This facilitates open discussion and allows users to add additional context or framing to existing risks. Of course, some users may wish to submit more sensitive risks – in such cases, an alternate route for anonymous contributions via an online form is also available.&lt;/p&gt;
&lt;h2 id="whats-next"&gt;What&amp;rsquo;s next?&lt;/h2&gt;
&lt;p&gt;The register is open to new contributions describing risks around AI adoption within research software practices. We also welcome discussion of existing risks via their associated GitHub Issues, and encourage people to add examples of how risks can be mitigated, and to point to examples of best practice. We will be running a further workshop at RSECon26 in Sheffield, so please keep an eye out for opportunities for collaborative contribution sessions.&lt;/p&gt;
&lt;h2 id="contributing-to-rairr"&gt;Contributing to RAIRR&lt;/h2&gt;
&lt;p&gt;You can view the full register and contribute to it
. Please make sure to read the
and
for more information about what makes a good contribution to the register.&lt;/p&gt;
&lt;p&gt;The register is maintained by the SSI Responsible AI Study Group – a recently established group interested in understanding ways in which AI may be adopted safely, fairly, and constructively within research software practices. The group is open to new members from both within the SSI and externally – if you’re interested in joining, then please contact joseph.shingleton[at]glasgow.ac.uk or oscar.seip[at]manchester.ac.uk.&lt;/p&gt;</description></item><item><title>The UK must use the Break Clause and Terminate its Contract with Palantir</title><link>https://carlos-hugoblox.netlify.app/en/blog/2026/06/the-uk-must-use-the-break-clause-and-terminate-its-contract-with-palantir/</link><pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate><guid>https://carlos-hugoblox.netlify.app/en/blog/2026/06/the-uk-must-use-the-break-clause-and-terminate-its-contract-with-palantir/</guid><description>
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Note&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;This collaborative post was written by the Rights and Tech Group at the University of Warwick and was originally published at
&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;As the digital transformation of health continues to reshape health systems globally, states face a stark choice: how to strengthen cash-strapped health systems and get command of health data? While some might think high-income countries are better at protecting their sensitive health data than low-income countries, in fact the UK’s current problems with security and defence firm Palantir show no one is immune to the pressures of the private sector. In this piece, we outline some of the key concerns that emerge through the outsourcing of critical infrastructure to the private sector in the case of the UK. We make an argument that given these concerns, the UK should exercise its break clause and terminate Palantir’s contract in 2027.&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/en/blog/2026/06/the-uk-must-use-the-break-clause-and-terminate-its-contract-with-palantir/pexels-googledeepmind-18069694.jpg"
alt="Photo by"&gt;&lt;figcaption&gt;
&lt;p&gt;Photo by&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;In 2023, the NHS awarded U.S. data analytics firm Palantir a 
to provide software and manage the NHS Federated Data Platform to connect fragmented NHS databases and allow data from different systems to be shared and analysed. While the digital transformation of health has sped forward, it has led to a proliferation of tools and platforms, creating siloed pockets of health data that cannot easily be shared from clinic to hospital to decision-maker. This fragmentation creates multiple challenges, ranging from sharing lab results in time with doctors who need them, to spotting the next epidemic in time to prevent its spread. For cash-strapped health agencies, the appeal of Palantir is its promise to improve efficiency by integrating data and making it easier for diverse platforms to connect, communicate, and use the data for public health.  &lt;/p&gt;
&lt;p&gt;Health data, however, is extremely sensitive, and without building necessary governance safeguards, purpose limitations, and transparent data processing methodologies, the creation of large and centralised data infrastructures poses serious risks for everyone; in particular, for marginalised groups at greater risk of violence, discrimination and inequitable access to healthcare. These populations are the ones whose trust the NHS most needs to keep. The 
, is an illustration of how such incidents can undermine trust and drive those away from health services who need them most. &lt;/p&gt;
&lt;p&gt;As a group of scholars working on digital rights at the University of Warwick, we are concerned and echo civil society calls for the UK government to exercise the break clause in the contract and terminate the agreement with Palantir for the reasons set out below:&lt;/p&gt;
&lt;h2 id="ideological-incompatibility"&gt;Ideological incompatibility&lt;/h2&gt;
&lt;p&gt;Palantir’s appeal for those who manage public services is that it provides efficiencies at scale. However, as the recently published 
by the co-founder, Alex Karp, articulates a world view that is imperialist, US-centric, anti-democratic, anti-pluralist, and openly hostile to public institutions, including 
. Reflecting on the Palantir manifesto, philosopher Mark 
argues that ‘efficiency’ is framed as a political value, which takes precedence over values of pluralism, democratic deliberation and institutional independence.&lt;/p&gt;
&lt;p&gt;This demonstrates that Palantir is not merely a tech company offering a technical solution, but an ideological project that is fundamentally at odds with the values of a democratic and multicultural UK. In addition, Palantir’s close ties with the US military and whose technology has been key to target citizens in warfare and border control in the US and internationally raises serious questions about its political independence and ethics. For the UK government, continuing the NHS contract, therefore, requires reflection on how it can justify working with a company whose stated principles undermine the very norms upon which public services depend.&lt;/p&gt;
&lt;h2 id="institutional-dependency-and-loss-of-sovereignty"&gt;Institutional dependency and loss of sovereignty&lt;/h2&gt;
&lt;p&gt;The continuation of Palantir’s role within the NHS must also be understood in the broader context of the company’s expanding deals with other wings of government. Palantir now provides or is in talks to provide services to the 
, the 
, 
, and 
. These institutions have distinct functions, mandates and forms of expertise. Yet the 
increasingly blur these boundaries and erode institutional independence. &lt;/p&gt;
&lt;p&gt;The fact that Palantir is being used in other UK sectors means that it can require the NHS or local governments to extend their contracts to those areas to “increase functionality”. This participates in a race of tech companies for the monopolisation of public services, especially as this is where the “big money” is. Although it might provide faster access to records (for example, during an emergency surgery), the risks of hyper-centralised data infrastructures are substantial. These include increased vulnerability to hacking, physical fragility (where the failure of a single node can disrupt the entire system), and the potential for co-option by “unwanted” or “unelected” actors. &lt;/p&gt;
&lt;p&gt;Further, through the outsourcing of such critical department functions to Palantir, the state cedes its sovereignty to private enterprises. Critical media scholars Grohman and Barbosa call this as 
. The successive adoption of Palantir across sectors renders the sovereignty of the UK state to be now purchased and offered on the terms of a platform as part of its proprietary offering. &lt;/p&gt;
&lt;p&gt;Take the promise of interoperability. Although companies claim that they can deal with many different datasets from different sources, the proprietary condition of their software means that they are not interoperable with other platforms and datasets. This means in practice that the client is made dependant on their services across governmental areas and over time. This results in transnational big tech companies monopolising local and national services, eliminating competition and locking governments to pay for unsolicited updates and upgrades of their systems. It is, therefore, critical that the UK government does not become just a consumer of outsourced services. As a democratic state, the UK government derives legitimacy from the public and must retain the capacity to collaborate with multiple suppliers rather than surrendering control to a single platform provider whose CEO has publicly declared (and demonstrated) their allegiance to the US. The case of NHS and Palantir poses a further geopolitical question, which is whether critical infrastructures such as public health providers can be in the hands of powerful transnational companies. &lt;/p&gt;
&lt;h2 id="erosion-of-trust-especially-among-marginalised-groups"&gt;Erosion of trust, especially among marginalised groups&lt;/h2&gt;
&lt;p&gt;Allowing Palantir access to data on patients, and in particular on patients from marginalised communities, also raises serious concerns. For instance, racialised communities and people with insecure legal status already worry about sharing data between the NHS and the Home Office. This has happened in the US, where Palantir&amp;rsquo;s systems facilitated data sharing and identification to
), which was then used in raids to unlawfully target and deport migrants. Palantir’s capacity to cross personal data with surveillance technologies or to share it with other bodies, like the police, increases fear and anxiety among vulnerable populations, damaging their trust in the public health system. As a result, they may avoid seeking healthcare altogether: for example, a migrant with an infectious disease might stay away from their GP out of fear of being interrogated or deported. This loss of trust undermines the right to healthcare for all.&lt;/p&gt;
&lt;h2 id="maldistribution-of-resources"&gt;Maldistribution of resources&lt;/h2&gt;
&lt;p&gt;Finally, the substantial sums allocated to Palantir to facilitate managerial decisions in the NHS are drawn from wider public budgets. This diverts resources way from welfare provision and eliminates services that are essential for addressing social inequality and supporting the most vulnerable members of society. The promises of combining large amounts of data and having speedy decision-making cannot replace the need for adequate healthcare infrastructure or the labour of care provided by healthcare professionals, from doctors and nurses to cleaners and other employees. These raise pressing questions. What are the broader implications of these cuts and repurposing of public resources? Are any of the savings that the use of Palantir is promising to be ploughed back into the healthcare system, for example by fixing hospitals, hiring more healthcare workers, or improving working conditions? There is a serious risk that this approach will amplify existing inequalities in access to, and quality of, healthcare across the UK (see 
or a survey from 
). Palantir is monetising these inequalities and presenting technological solutions as quick fixes for deeply structural problems, which risk being exacerbated. &lt;/p&gt;
&lt;p&gt;Palantir’s involvement in NHS databases has received significant reaction from civil society. Campaigns led by organisations, such as the 
and 
highlight the lack of transparency and human rights due diligence in the contractual process, as well as the dangers of infrastructural lock-in. Palantir’s purported 
is also called into question. These concerns provide compelling grounds for the UK government to exercise the break clause and terminate its agreement with Palantir, as 
system has. The decision should be based not only on technical considerations, but also on fundamental issues of ideological incompatibility, institutional dependency, digital sovereignty, public trust and unjust distribution of public resources.&lt;/p&gt;
&lt;h2 id="call-to-action"&gt;Call to action&lt;/h2&gt;
&lt;p&gt;February 2027 marks a window of opportunity 
. For the reasons argued here (ideological incompatibility; loss of sovereignty; erosion of trust; and maldistribution of resources), we enjoin the UK government to exercise the break clause in the contract and terminate the agreement with Palantir as a first and immediate step towards ensuring that the rights and data of all UK citizens (and particularly, the most vulnerable) are protected. However, this should not be the end goal: other actors may come and pose similar threats. The case of Palantir has surfaced a series of structural issues when it comes to digital rights and technology providers. We have highlighted a few: &lt;em&gt;how can digital sovereignty for critical infrastructures be preserved? How can vendor lock-in can be avoided? How can data from subjects be protected from unlawful or nefarious purposes? Who benefits the most with these contracts? How can any efficiency savings be redirected to underfunded and under-resourced critical services?&lt;/em&gt; We contend that technological decisions are also political and, therefore, call on the UK government to ensure these issues are addressed.&lt;/p&gt;
&lt;p&gt;The case of the UK and Palantir is not unique, but it is paradigmatic of a global trend in turning data, and particularly, health data, into commodities that threaten the human subjects that lie behind those figures. As the World Health Organization drafts its new &lt;em&gt;Global Strategy on Digital Health 2028-33&lt;/em&gt;, the challenges faced by the UK should spark broader discussions about health data governance, with development of new and clearer standards so that all countries establish clearer guardrails to ensure that the public sector continues to serve the public interest.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="authors-bios"&gt;Author&amp;rsquo;s bios&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Siddharth Peter de Souza&lt;/strong&gt; is an Assistant Professor at the Centre for Interdisciplinary Methodologies, University of Warwick. His research and teaching focus on how data is governed globally in contested, and plural settings. He is the author of Designing Indicators for a Plural Legal World (Cambridge 2022)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Derya Ozkul&lt;/strong&gt; is an Associate Professor and Co-Director of the Social Theory Centre at the Department of Sociology, University of Warwick. Her teaching and research focus on the politics of migration and (im)mobility in the digital age.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Serena Natile&lt;/strong&gt; is an Associate Professor at Warwick Law School. Her work on digital technology is mainly concerned with questions of social reproduction and maldistribution, at the intersection of law, feminist political economy, labour, and finance. She is the author of&lt;/em&gt; 
 &lt;em&gt;(Routledge 2020) and is currently completing the ISRF project&lt;/em&gt; 
&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Carlos Cámara-Menoyo&lt;/strong&gt; is a Senior Research Software Engineer at the Centre for Interdisciplinary Methodologies, University of Warwick. He is an interdisciplinary researcher whose work sits at the intersection of technology and society, with a particular focus on the ways in which worldviews embedded in technology shape the experiences of under-represented communities.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Nerea Calvillo Gonzalez&lt;/strong&gt; is a Reader at the Centre for Interdisciplinary Methodologies, University of Warwick. They work on digital infrastructures, environmental pollution and queer ecologies, and they are author of Aeropolis: Queering air in toxipolluted worlds (Columbia, 2023).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Sara (Meg) Davis&lt;/strong&gt; is a Professor at the Centre for Interdisciplinary Methodologies, University of Warwick; and Principal Investigator for the Digital Health and Rights Project, an international consortium of academics, health advocates, human rights lawyers, and communities of people living with and affected by HIV. She is author of The Uncounted: Politics of data in global health (Cambridge 2020).&lt;/em&gt;&lt;/p&gt;</description></item><item><title>No Vibes, Just Struggle: Notes From a Research Software Engineer on Vive Coding</title><link>https://carlos-hugoblox.netlify.app/en/blog/2026/06/no-vibes-just-struggle-notes-from-a-research-software-engineer-on-vive-coding/</link><pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate><guid>https://carlos-hugoblox.netlify.app/en/blog/2026/06/no-vibes-just-struggle-notes-from-a-research-software-engineer-on-vive-coding/</guid><description>&lt;!-- Tip: open with the why, then show results, code, and next steps. --&gt;
&lt;p&gt;Last 14th May, I participated in the workshop &amp;ldquo;Convivial Code: The Politics and Pedagogies of Vibe Coding&amp;rdquo;, organised by the
and the
at the University of Warwick.
The workshop takes a cue from Illich’s notion of convivial tools: technics that expand autonomous, imaginative use without requiring prior certification or imposing compulsory dependence and moved beyond vibe-coding specifically to further ask what a politics of convivial code might look like today? (e.g., publicly-led, democratic governance of technology capable of attending to the challenges of the current conjuncture: pluralization versus monopolization, autonomy versus dependence, and situated invention versus the norm-seeking tendencies of generative output).&lt;/p&gt;
&lt;p&gt;The workshop was a hybrid session combining methods workshop, studio and
(see recording below) to chart this domain; where staff and student participants tested AI infrastructures, discussed their implications and develop a shared critical understanding of the potentials, limits and harms of AI-assisted programming. I had the opportunity to give a short talk in which I shared my positionality and concerns in relation to AI in general and vive coding in particular. The talk was controversial, insofar it raised some opposition, but also interesting questions and reactions, so I wanted to share it here, hopefully to continue discussions.&lt;/p&gt;
&lt;h2 id="no-vibes-just-struggle-notes-from-a-research-software-engineer"&gt;No Vibes, Just Struggle: Notes From a Research Software Engineer&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m going to share a couple of struggles that I&amp;rsquo;m experiencing in my everyday work as a Senior Research Software Engineer at the Centre for Interdisciplinary Methodologies. But before doing so, I need to disclose my positionality in relation to AI and vive coding, particularly about its meaning and how I use it.&lt;/p&gt;
&lt;h3 id="positionality"&gt;Positionality&lt;/h3&gt;
&lt;p&gt;Coding is a very polisemic word, and people may assign different meanings depending on their background or context. As a Research Software Engineer, when I think about &lt;em&gt;coding&lt;/em&gt; I am mainly referring to the action of creating scripts or software that can be used in an academic setting. This setting is very important to me because it comes with a series of values and requirements that are different from other settings (e.g. hobbysts or industry), such as reproducibility, provenance, or correctly citing sources as an integral part of academic integrity.&lt;/p&gt;
&lt;p&gt;I have never vive coded. I&amp;rsquo;ve seldom used vector-mediated coding: when I use it, I do it reluctantly or triggered by curiosity. Either case, I always feel it as a defeat. This is not because I&amp;rsquo;m so proud that I feel my ego threatened, or because I&amp;rsquo;m a good or fast coder that doesn&amp;rsquo;t need such aids. I&amp;rsquo;m actually neither. Probably because of that, through commons-based peer production, I&amp;rsquo;ve learnt a series of techniques, good practices and cultural norms that helped me to overcome my individual limitations. Two paradigmatic examples are to use and adapt code and frameworks that other, smarter people, have created and decided to share it with others through open licenses; and to rely on processes and automations&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; to reduce errors, to understand when something doesn&amp;rsquo;t work and to seek help when I can&amp;rsquo;t find the answer, and to do so, to be able to explain to others what I want to do and what I&amp;rsquo;ve done.&lt;/p&gt;
&lt;h3 id="why-im-struggling-with-ai"&gt;Why I&amp;rsquo;m struggling with AI&lt;/h3&gt;
&lt;p&gt;Now that my stance is clear, I&amp;rsquo;m in a better condition to share my struggles with AI in general and AI-assisted coding.&lt;/p&gt;
&lt;p&gt;The first has to do with the fact that technology is never neutral, and AI has been built through extractive and exploitive practices that are assumed, validated and reproduced when using them. Examples of this can be seen in how LLMs have been trained by systematically stealing IP, or by employing humans to manually tag content in terrible working conditions and at the expense of their mental health.&lt;/p&gt;
&lt;p&gt;And not to mention the large amount of resources this technology and the required infrastructure (i.e., datacentres) require for functioning, such as energy, water, oil but also hardware such as RAM or SSDs and Hard drives. Even though the tech and the companies behind ofuscate date to make it really difficult to quantify the environmental costs (and therefore, making it easier to be disregarded), we are already seeing their effects. This week alone news echoed how Maryland taxpayers would need to pay $2 billion dollars to upgrade the power grid to host data centers, or that important SSD and HDD manufacturers have sold all their production until 2029 exclusively to serve Data center needs, creating new forms of scarcity.&lt;/p&gt;
&lt;p&gt;But probably, the clearer example about the worldviews and political agenda that are encapsulated in this technology is how AI companies are directly or indirectly promoting surveillance, and even genocides, and how their CEOs feel empowered enough to publish supremacist manifestos in the name of their companies &lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;The combination of these factors makes me feel that &lt;strong&gt;every time I use AI-tools I&amp;rsquo;m forced to disregard my values and the political and moral beliefs that I stand for, and makes me feel closer to a world and a society I wouldn&amp;rsquo;t wannt anyone to live in. And this is not an easy pill to swallow&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The second one has to do with AI assisted coding, or vector coding. It is easy to be flashed by the ability to produce something that works in a reduced amount of time and with few or little knowledge on coding. It is really impressing to see that what would take a lot of time is accomplished (at least in appearance) in a matter of minutes, and with little effort. I can see how many people (particularly those who do not know how to code or are in early stages) may see it as a way to overcome their limitations and how this seems like it&amp;rsquo;s democratising coding. I really do, I would believe it myself it wasn&amp;rsquo;t because it is the opposite.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vive coding produces code, but it does not make &lt;em&gt;programmers&lt;/em&gt;, it makes &lt;em&gt;prompters&lt;/em&gt;.&lt;/strong&gt; This is not just a semantic difference. I contend that the former is empowering, whereas the latter is disempowering. Vive coding epitomises neoliberal worldviews by stating that only the outputs matter&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;, disregarding decades of disciplinary and interdisciplinary knowledge built over decades. &lt;strong&gt;Coding is not about just producing code, it is also a cultural and social practice, a method.&lt;/strong&gt; Equally as important than the output are issues related to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Correctly attributing everybody&amp;rsquo;s work, and complying with licences. Using AI can easily lead to copyright infringements and flags questions about Intellecutal Property and accountability: Who is the author of the code? Can we make sure that we are complying with the licence terms of the code that the AI is reproducing?Can we be sure that we are not leaking any personal or sensitive information (either in the code or the prompts)?.&lt;/li&gt;
&lt;li&gt;Writing understandable and explainable code, not just to make it easier for us to maintain and improve it over time and for others to contribute to or scrutinise (again, this is important in an academic setting). If we cannot explain what the code does, how can our research rely on it? Can we use it in research if we cannot write a basic methods section?&lt;/li&gt;
&lt;li&gt;Considering and addressing failure. Any relatively complex piece of code will, inevitabily, fail. Far from approaching failuire from a nihilistic standpoint, software engineer need to actively address them by putting measures to minimise the errors (e.g. automated testing), or to be able to debug them when they ocurr so they are easily fixable. Or, as Cory Doctorov
: &amp;ldquo;Writing code&amp;rdquo; is about making code that &lt;em&gt;runs well&lt;/em&gt;. &amp;ldquo;Software engineering&amp;rdquo; is about making code that &lt;em&gt;fails well&lt;/em&gt;&amp;quot;. How are we going to maintain the software in the medium and long term? What will we do when it fails? (because inevitabily, all code fails) Shall we start over again? Is then efficient?&lt;/li&gt;
&lt;li&gt;Saving resources, both material and human. Is it fair to ask others to read, understand, test, and improve code that can be generated at faster pace than any human can review? Many projects&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;, such as drupal&lt;sup id="fnref:5"&gt;&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref"&gt;5&lt;/a&gt;&lt;/sup&gt; or some GNU/Linux distributions, are not accepting contributions if the authors cannot explain them, as it suposes a liability but also a waste of resources and time from a team that has already a lot on their plate.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But probably the most important flaw in this framing is how it shifts the paradigm away from &lt;em&gt;processes&lt;/em&gt;. Because programing is a never-ending task, it requires constant iteration, improvement, learning&amp;hellip; it is, above all, a process. And so it is the learning process that makes you be a (good) programmer. Admittedly, coding is challenging, it requires a series of skills that take time to learn, and even more to master. But once learnt, they are ours, nobody can take that from us. This is what is really empowering. On the other hand, being a promter means relying on something external (AI) to generate code. What will a &lt;em&gt;prompter&lt;/em&gt; do if they lose access to those tools? Considering the track history of enshitification and lack of human consideration of these companies, this is not a hypothetical question.&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Code linters, Continuous Integration, Automated testing&amp;hellip; are examples of such automations that are not AI-powered and have been commonplace in software development.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;See excerpts from Alexander C. Karp &amp;amp; Nicholas W. Zamiska&amp;rsquo;s &lt;em&gt;The Technological Republic: Hard Power, Soft Belief, and the Future of the West&lt;/em&gt; at Palantir&amp;rsquo;s X account:
&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;Open-AI cofounder Andrej Karpathy coined the concept of vive coding as this (
):&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;There&amp;rsquo;s a new kind of coding I call &amp;ldquo;vibe coding&amp;rdquo;, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It&amp;rsquo;s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like &amp;ldquo;decrease the padding on the sidebar by half&amp;rdquo; because I&amp;rsquo;m too lazy to find it. I &amp;ldquo;Accept All&amp;rdquo; always, I don&amp;rsquo;t read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I&amp;rsquo;d have to really read through it for a while. Sometimes the LLMs can&amp;rsquo;t fix a bug so I just work around it or ask for random changes until it goes away. It&amp;rsquo;s not too bad for throwaway weekend projects, but still quite amusing. I&amp;rsquo;m building a project or webapp, but it&amp;rsquo;s not really coding - I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.&lt;/p&gt;
&lt;/blockquote&gt;
&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;Refer to the
for a complete list of software that are not accepting any form of AI, and an exhaustive rationale for not doing that.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:5"&gt;
&lt;p&gt;Drupal&amp;rsquo;s founder&amp;rsquo;s blog: &amp;ldquo;
&amp;rdquo;&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Digital Sovereignty - Lexicon Entry</title><link>https://carlos-hugoblox.netlify.app/en/blog/2026/04/digital-sovereignty-lexicon-entry/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://carlos-hugoblox.netlify.app/en/blog/2026/04/digital-sovereignty-lexicon-entry/</guid><description>&lt;p&gt;Last 21st April, I attended to a workshop on Developing a Governance Lexicon for Digital Public Infrastructures, organised by my colleague Siddharth de Souza and Emrys Schoemaker at the University of Warwick (see details below). The workshop brought together researchers, practitioners and policy makers in the UK and beyond to examine, unpack and build a lexicon for governance approaches needed to ensure that DPIs are public, inclusive, and accessible.&lt;/p&gt;
&lt;p&gt;In this post, I&amp;rsquo;m sharing the first version of the entry for Digital Sovereightny, which I authored with Emrys.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="preamble-sovereignty-sovereignties"&gt;Preamble: Sovereignty, sovereignties&lt;/h2&gt;
&lt;p&gt;Sovereignty refers to the ultimate authority someone has over things. Historically, sovereignty has been used to refer to the power of States to exert independent control and lawmaking over their territories (i.e. without the involvement of any other party in such decisions and enforcement).&lt;/p&gt;
&lt;p&gt;However, with the rise of social movements advocating for alter-globalisation, climate justice, social justice, or the &lt;em&gt;Commons&lt;/em&gt;, the subject of such authority has also been applied to other smaller units beyond Nations (such as regions or communities), and its meaning has permeated to many other contexts, such as physical resources (food&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;, energy, water) and, more recently, digital resources (infrastructure, data, platforms, AI&amp;hellip;).&lt;/p&gt;
&lt;p&gt;Regardless of their scale or domain, these new forms of sovereignties share an aim to protect communities from external shocks and coercion by demanding that critical systems are completely governed without depending on any external agent with a different agenda. This is usually achieved through favouring the conditions for these systems to be produced locally and democratically and the empowerment of all the communities involved in their production, distribution, and consumption. These demands are usually rooted in the following pillars: a rejection of globalisation and neoliberal dogmas about markets, and a pursuit of fairer, more democratic and resilient systems.&lt;/p&gt;
&lt;h2 id="digital-sovereignty"&gt;Digital Sovereignty&lt;/h2&gt;
&lt;p&gt;Digital sovereignty&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; refers to the political perspective in which the digital technologies and infrastructures that are essential for competitiveness and welfare are in accordance with the laws and interests of a particular community or region (usually, but not always, a nation). This is typically achieved through favouring
, open formats and protocols, federated platforms or self-hosting, or, the creation of [[Digital Public Infrastructures]] (DPI), particularly in public organisations and governments.&lt;/p&gt;
&lt;p&gt;Digital sovereignty is increasingly supported, demanded and enforced by governments (e.g. France&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;, Canada&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;), organisations, or social movements and communities of users, and their motivations range from economic motivation, justice (e.g. [[Digital Rights]]) or -more recently, due to the complex geopolitics context- &lt;em&gt;security&lt;/em&gt; and &lt;em&gt;privacy&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The reason can be found in the following: today, almost every facet of our lives is mediated by the digital. There are few (if any) instances in the way we work, socialise, consume and access to leisure or culture that do not require any kind of digital infrastructure (e.g. servers, hardware), technology (e.g. software) or data. At a national level, this means that the economy is more and more dependent on such technologies, the vast majority of which is provided by a handful of big techs from the US (with China gaining momentum). Microsoft, Amazon, and Alphabet (Google) alone “control almost 70% of the cloud market, and over half of the world’s undersea cables once Meta is included. The accelerated adoption of artificial intelligence (AI) has only made the situation more acute”&lt;sup id="fnref:5"&gt;&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref"&gt;5&lt;/a&gt;&lt;/sup&gt;. These companies, along with Apple, Nvidia and Tesla (known as the “Magnificent seven” due to their high performance in the stock market) have a combined market capitalisation of $20.8 trillion, surpassing the GDP of the European Union (approximately $19.4 trillion).&lt;/p&gt;
&lt;p&gt;This over-representation of US big tech along with their monopolistic practices often collide with EU&amp;rsquo;s interests and regulations. Some recent examples of these tensions are the number of lawsuits&lt;sup id="fnref:6"&gt;&lt;a href="#fn:6" class="footnote-ref" role="doc-noteref"&gt;6&lt;/a&gt;&lt;/sup&gt; against US big techs for not complying with EU regulations (e.g.
,
, and
), which triggered heated reactions from their CEOs. The US-president, Donald Trump, threatened to impose tariffs&lt;sup id="fnref:7"&gt;&lt;a href="#fn:7" class="footnote-ref" role="doc-noteref"&gt;7&lt;/a&gt;&lt;/sup&gt; as a form of retaliation against what he considers to be “discriminatory” against American companies and, therefore, “unfair”. Other examples include Microsoft blocking email accounts based on U.S. sanction over investigations of Israel&lt;sup id="fnref:8"&gt;&lt;a href="#fn:8" class="footnote-ref" role="doc-noteref"&gt;8&lt;/a&gt;&lt;/sup&gt;. Given the growing hostilities with the USA, Digital sovereignty has become a strategic priority for the many countries, including the EU&lt;sup id="fnref:9"&gt;&lt;a href="#fn:9" class="footnote-ref" role="doc-noteref"&gt;9&lt;/a&gt;&lt;/sup&gt;, where it is supported by leaders like Ursula von der Leyen (European Commission) and Mario Draghi (European Central Bank).&lt;/p&gt;
&lt;h3 id="who-is-working-on-digital-sovereignty"&gt;Who is working on Digital sovereignty?&lt;/h3&gt;
&lt;h4 id="governmental"&gt;Governmental&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;European Commission — Digital Sovereignty Strategy&lt;/strong&gt;: The EU&amp;rsquo;s overarching framework including the GDPR, Digital Markets Act, Digital Services Act, and AI Act. Aims to regulate Big Tech, protect citizens&amp;rsquo; data, and reduce Europe&amp;rsquo;s dependency on foreign digital infrastructure.
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;France–Germany Digital Sovereignty Task Force:&lt;/strong&gt; Joint Franco-German initiative launched in November 2025 to develop a common definition of European digital services, sovereignty indicators for cloud and AI, and measures to promote European competitiveness and tech independence.
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Canada&amp;rsquo;s Digital Sovereignty Framework:&lt;/strong&gt; a framework aimed to improve Canada&amp;rsquo;s “digital readiness” to “manage and protect its data, systems and infrastructure to operate securely and independently in a globally connected environment”.
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="organisations-and-grassroots"&gt;Organisations and grassroots&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Open Rights Group&lt;/strong&gt;: UK-based digital campaigning organisation protecting privacy and free speech. Challenges government surveillance legislation, mass data collection, and censorship through legal action and public advocacy.
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Digital Sovereignty Coalition:&lt;/strong&gt; a coalition to protect civil liberties, democratise technological power, and ensure that the future of artificial intelligence, data, and digital infrastructure reflects the values of freedom, equity, and self-determination.
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="initiatives"&gt;Initiatives&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="dpi-and-digital-sovereignty"&gt;DPI and Digital Sovereignty&lt;/h2&gt;
&lt;p&gt;Digital Public Infrastructure (DPI) has emerged as one of the most prominent policy instruments through which states, particularly in the Global South, seek to translate [[Digital Sovereignty|digital sovereignty]] commitments into operational practice.&lt;/p&gt;
&lt;p&gt;The DPI approach centres on foundational digital systems (identity, payments, data exchange) built on open standards, open-source software, and interoperable architectures, with the explicit aim of enabling states to exercise genuine authority over the technologies their societies depend on, rather than outsourcing that authority to foreign commercial providers (Massally, Matthan &amp;amp; Chaudhuri, 2023; Varma et al., 2024). By moving from siloed, vendor-specific solutions to shared public infrastructure, DPI promises to convert digital dependency into digital choice, restoring, in principle, the conditions for critical systems to be governed in the interests of the communities they serve (TechPolicy.Press, 2025).&lt;/p&gt;
&lt;p&gt;The structural irony of this promise is that DPI systems require substantial cloud computing capacity to function at scale, and for most governments deploying DPI to reduce foreign dependency, that capacity runs on the very same hyperscalers identified above: Microsoft, Amazon, and Google (Rest of World, 2026). India&amp;rsquo;s own case is telling, while the India Stack represents domestically designed and governed foundational systems, the cloud and AI backend sustaining those systems is provided by Microsoft, Google, Amazon, and Nvidia (TechPolicy.Press, 2025). These companies have responded to the sovereignty moment not by retreating but by expanding, launching &amp;ldquo;sovereign cloud&amp;rdquo; offerings that repackage dependency as a product feature (Lawfare, 2025), deploying them directly in markets where governments are undertaking DPI programmes (Fierce Network, 2024). The concept of sovereignty that mainstream DPI discourse mobilises also sits in tension with the pluralist, community-rooted understanding described above.&lt;/p&gt;
&lt;p&gt;Dominant DPI framings operate from a Westphalian, state-centred conception: sovereignty as the capacity of national governments to assert control and set the terms of digital governance within their territory (Pohle &amp;amp; Thiel, 2020). As Pohle (2024) argues, this framing displaces other legitimate sovereignty claims, from sub-national communities, civil society, and indigenous peoples, that the broader concept could and should accommodate. The sovereignty DPI delivers is sovereignty &lt;em&gt;for the state&lt;/em&gt;, often mediated through infrastructure that remains, at its operational core, in someone else&amp;rsquo;s hands.&lt;/p&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;p&gt;Fierce Network (2024) &amp;lsquo;Google, AWS, Microsoft invest in sovereign cloud in Asia-Pac&amp;rsquo;, 11 July.
Lawfare (2025) &amp;lsquo;Tech&amp;rsquo;s &amp;ldquo;Sovereignty Washing&amp;rdquo; in Europe Will Ripple in the Global South&amp;rsquo;, 9 October.
&lt;/p&gt;
&lt;p&gt;Massally, K.N., Matthan, R. and Chaudhuri, R. (2023) &amp;lsquo;What is the DPI Approach?&amp;rsquo;, Carnegie Endowment for International Peace, 15 May.
&lt;/p&gt;
&lt;p&gt;Pohle, J. (2024) &amp;lsquo;Unthinking Digital Sovereignty&amp;rsquo;, &lt;em&gt;Policy &amp;amp; Internet&lt;/em&gt;, 16(1).
&lt;/p&gt;
&lt;p&gt;Pohle, J. and Thiel, T. (2020) &amp;lsquo;Digital sovereignty&amp;rsquo;, &lt;em&gt;Internet Policy Review&lt;/em&gt;, 9(4).
&lt;/p&gt;
&lt;p&gt;Rest of World (2026) &amp;lsquo;India AI Impact Summit pitches &amp;ldquo;third way&amp;rdquo; beyond U.S. and China&amp;rsquo;, 11 February.
&lt;/p&gt;
&lt;p&gt;TechPolicy.Press (2025) &amp;lsquo;India&amp;rsquo;s Digital Infrastructure Is Going Global. What Kind of Power Is It Building?&amp;rsquo;, 22 July.
&lt;/p&gt;
&lt;p&gt;Varma, P. et al. (2024) &lt;em&gt;The Future of Digital Public Infrastructure&lt;/em&gt;, Carnegie India.
&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;h2 id="about-the-workshop"&gt;About the workshop&lt;/h2&gt;
&lt;p&gt;Across the world, there is increasing interest and urgent concern in building state capacity to meet the opportunities of digitalization, and to confront the challenges of the concentration of power from big tech. Digital public infrastructures (DPI) refer to large state led digital systems that are used in domains related to health, social security, finance, and through their implementation are argued to improve administrative efficiency, create possibilities for economic growth, and enable better delivery of public services. These foundational digital infrastructures are recognized as important because they are argued to create value from the exchange of data for all involved parties and argued to work for the ‘common good’ (Mazzucato, 2023).&lt;/p&gt;
&lt;p&gt;With the increasing popularity of DPI across the world, as is evidenced in the DPI Map produced by UCL, or the adoption of the DPI Safeguards by UNDP partners, it is critical to develop a vocabulary around governance, that foregrounds how to build an inclusive, collaborative process around the development of DPIs. Such attention is particularly significant to reflect the interests of marginalized and excluded groups, and to ensure the stability of support for digital systems.&lt;/p&gt;
&lt;p&gt;With the increasing interest in DPI, there is a need for approaches to governance that are plural, contextual, and reflective of contexts in the global Majority.&lt;/p&gt;
&lt;p&gt;This workshop aims bring together researchers, practitioners and policy makers in the UK and beyond to examine, unpack and build a lexicon for governance approaches needed to ensure that DPIs are public, inclusive, and accessible.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Food sovereignty was coined in 1996 by Via Campesina (“the peasants way”), an international organisation formed by 182 organisations in 81 countries that describes themselves as “an international movement which coordinates peasant organisations of small and middle-scale producers, agricultural workers, rural women, and indigenous communities from Asia, Africa, America, and Europe”. The term refers to a system where the people who produce, distribute and consume food also have control the mechanisms and policies that regulate those processes. Usually, this means that food is produced locally.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;The term is often used interchangeably with Technological sovereignty and there are some overlaps with Data Sovereignty, Cloud sovereignty or AI Sovereignty, albeit this term aims to be more inclusive, as the latter refer to specific ways in which the digital is operationalised.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;Last 8th April, France government (At the initiative of the Prime Minister, the Minister of Action and Public Accounts, and the Minister Delegate for Artificial Intelligence and Digital Affairs, the Inter-Ministerial Directorate of Digital Affairs ) organised a seminar to discuss how to to reduce their non-European digital dependencies. In their official announcement, the term “digital sovereignty” is explicitly mentioned several times. Specific, immediate plans include migrating the operating systems of their government PCs and laptops from Windows to GNU/Linux. Source:
&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;Canada has recently implemented a Digital Sovereignty Framework to improve their “digital readiness” to “to manage and protect its data, systems and infrastructure to operate securely and independently in a globally connected environment”. Source:
&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:5"&gt;
&lt;p&gt;Rikap C., Durand, C., Paraná, E., Gerbaudo, P. and Marx P. (2024). Reclaiming digital sovereignty: A roadmap to build a digital stack for people and the planet. Available at:
&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:6"&gt;
&lt;p&gt;Refer to
&amp;#160;&lt;a href="#fnref:6" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:7"&gt;
&lt;p&gt;
&amp;#160;&lt;a href="#fnref:7" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:8"&gt;
&lt;p&gt;
&amp;#160;&lt;a href="#fnref:8" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:9"&gt;
&lt;p&gt;
&amp;#160;&lt;a href="#fnref:9" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Some R Packages I would love to explore (October 2020)</title><link>https://carlos-hugoblox.netlify.app/en/blog/2020/10/some-r-packages-i-would-love-to-explore-october-2020/</link><pubDate>Tue, 20 Oct 2020 00:00:00 +0000</pubDate><guid>https://carlos-hugoblox.netlify.app/en/blog/2020/10/some-r-packages-i-would-love-to-explore-october-2020/</guid><description>&lt;!-- Tip: open with the why, then show results, code, and next steps. --&gt;
&lt;p&gt;These are some packages I have just discovered which I would like to try/use in the future. For future reference, I have added a brief description and links to source code:&lt;/p&gt;
&lt;h2 id="data-munging"&gt;Data munging:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
: has simple functions for examining and cleaning dirty data. It was built with beginning and intermediate R users in mind and is optimized for user-friendliness. Advanced R users can already do everything covered here, but with janitor they can do it faster and save their thinking for the fun stuff.&lt;/li&gt;
&lt;li&gt;
makes writing regular expressions easier by using a friendlier syntax. I always have some difficulties memorizing regex expressions and usually have to use the
(a great resource, by the way) as a reminder.&lt;/li&gt;
&lt;li&gt;the
+
+
+
team. These group of packages from the same author seem to work as a team. &lt;code&gt;validate&lt;/code&gt; validates data&amp;rsquo;s structure (It can even validate data
written in &lt;code&gt;yaml&lt;/code&gt;), &lt;code&gt;errorlocate&lt;/code&gt; finds the faulty observations, which can later be corrected by either &lt;code&gt;dcmodify&lt;/code&gt; or &lt;code&gt;deductive&lt;/code&gt; (from predefinded rules)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="visualization"&gt;Visualization:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
provides additional Themes and Theme Components for my beloved &lt;code&gt;ggplot2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
provides additional color palettes and backgrounds for &lt;code&gt;ggplot&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
: positioning annotations in &lt;code&gt;ggplot&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="geospatial"&gt;Geospatial:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
: a mapzen API client for R (
). I am always looking for good geocoding services (currently using
), and this package uses Mapzen&amp;rsquo;s Pelias geocoding (amongst other things).&lt;/li&gt;
&lt;li&gt;
parses messy coordinates and converts from different formats to decimal. Also, provides helper functions such as getting hemisphere.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Considerations on the importance of data and science in data science</title><link>https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/</link><pubDate>Sun, 05 Apr 2020 00:00:00 +0000</pubDate><guid>https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/</guid><description>&lt;!-- Tip: open with the why, then show results, code, and next steps. --&gt;
&lt;p&gt;I must confess: during these days of lockdown, I have been toying with dashboards and infographics about COVID-19 outbreak, just like everyone else.
with nice plots, some formatted tables and even some (basic) maps. It&amp;rsquo;s shiny and nice, you can spend some time playing with it turning layers on and off, hovering, zooming&amp;hellip; And, honestly, I have to admit that I am proud of some of the results I have achieved. &lt;strong&gt;And yet, it is flawed. Just like everyone else&amp;rsquo;s&lt;/strong&gt; (or almost). And yet, I will keep improving it, even though I&amp;rsquo;m afraid it will always be flawed and even though I acknowledge that it will never be a contribution to improve knowledge on the topic.&lt;/p&gt;
&lt;p&gt;Why, then, am I persisting on keeping working on it if I know I cannot change its fate? Admittedly, at some point, I asked myself that very question and I even considered quitting. Not only I didn&amp;rsquo;t want to lose my time (even in these days when we are locked down at home there are plenty of things we can do), but I didn&amp;rsquo;t want to contribute to generating noise, misinformation and even more dramatism about an already important drama. Because that&amp;rsquo;s what flawed graphics do. But in the end, I realised that &lt;strong&gt;working on a dashboard like that could be a great opportunity for learning by doing.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Many types of lessons can be learnt from it, like those related to technical skills, or those related to how data is gathered, visualized and analyzed. &lt;strong&gt;Today, when data and figures on COVID-19 are everywhere, I want to share some reflections on the science (or lack of it) in data science.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="1-get-the-right-data"&gt;1. Get the (right) data.&lt;/h2&gt;
&lt;p&gt;As obvious as it sounds, there is no data visualization nor data science without data to visualize or analyze. Therefore, the first thing that anyone who wants to make any type of data visualization or data analysis is to get the data. Second: we cannot use any type of data. We need to use &lt;em&gt;good data&lt;/em&gt;, and &lt;strong&gt;by &lt;em&gt;good&lt;/em&gt; I mean &lt;em&gt;reliable&lt;/em&gt;, &lt;em&gt;usable&lt;/em&gt; (in terms of licences, formats and structure), up-to-date and frequently &lt;em&gt;updated&lt;/em&gt;, and, hopefully, &lt;em&gt;official&lt;/em&gt; data that is &lt;em&gt;representative&lt;/em&gt; enough to explain the phenomenon we are studying.&lt;/strong&gt; While this is usually non-trivial, it is even more crucial if we are to explain a completely new phenomenon that it is happening as we speak and it does at a global scale like COVID-19.&lt;/p&gt;
&lt;p&gt;Usually, there are only two possible options&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;: either gather data by ourselves or rely on others&amp;rsquo; data. Whereas gathering our own data might be the best choice for some scenarios, in the case of COVID-19, it is unlikely that we are in a position to gather the kind of data that might be useful for us (in fact, even governments are struggling to do so, as we will see). Therefore, we are left to just one option. Of course, we cannot rely on some random person or institution, we need to rely on someone we can trust, like universities (because they tend to provide rigorous data), governments (because they provide official data) or organizations (like the
). But where do we get the data from?&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/WHO-dashboard.png"
alt="WHO&amp;rsquo;s COVID-19 dashboard (Screenshot from 02-04-2020)"&gt;&lt;figcaption&gt;
&lt;p&gt;WHO&amp;rsquo;s COVID-19 dashboard (Screenshot from 02-04-2020)&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;While most governments provide data in open licences that allow its use and reuse for any purpose, they usually fail to address another important issue: the file format and data structure. As a result, in countries like the UK or Spain, data is not ready to consume as it is, without manual work&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;. Others, such as WHO, provide nice dashboards with data, but they do not provide the raw data to be consumed by 3rd parties. The good news is that there are people and institutions who are working in releasing clean data with open licences, such as
,
that gathers data from different governments and WHO, and even
that fetches data from UJH and provides a nice data frame for developers and data scientists to use in their projects.&lt;/p&gt;
&lt;p&gt;As a result, it is no wonder that most infographics and dashboards worldwide rely on the same data sources. It seems a sensible decision: not only we get data which is ready to use, but we do it from trustful sources. And yet, as I will argue, it is because of that reason that most of them are wrong. But what could possibly go wrong?&lt;/p&gt;
&lt;h2 id="2-dont-take-data-too-seriously"&gt;2. Don&amp;rsquo;t take data too seriously&lt;/h2&gt;
&lt;p&gt;Now that we know where to get the data from, there is something we have to be aware of: by relying on data generated by others we have not solved the (main) problem of data gathering, we have simply transferred the responsibility to somebody else, but someone still has to deal with what we have been trying to avoid. And, surprise, not every country gathers the data in the same way.&lt;/p&gt;
&lt;p&gt;Take the case of the most basic and crucial question: &lt;strong&gt;how are the number of confirmed cases defined&lt;/strong&gt;. Since COVID-19&amp;rsquo;s symptoms are very similar to those of influenza and the only way to know if someone is infected by it is by testing positive in the tests&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;. This seems a great definition: we have an objective test which is same the for everyone and all countries seem to use the same criteria. Unfortunately, those tests require equipment which is scarce (compared to the current worldwide demand), can only be made in hospitals, and require up to two days to get the results. Therefore, there are many other scenarios that are not considered within this test, such as those shown in figure 2a. &lt;strong&gt;So yes, every government provides that figure, yet all of them are much lower than the real figure. How much lower? There is no way to know.&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/iceberg.png"
alt="Confirmed figures ≠ actual figures. There are many more cases than the official ones. How many more? We can&amp;rsquo;t possibly know"&gt;&lt;figcaption&gt;
&lt;p&gt;Confirmed figures ≠ actual figures. There are many more cases than the official ones. How many more? We can&amp;rsquo;t possibly know&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Let&amp;rsquo;s focus on another example: &lt;strong&gt;the number of deaths by COVID 19&lt;/strong&gt;. Apparently, this should be easier. Every country keeps a record on the number of deaths per day and its cause of death, so it should be easy to filter those who died from COVID-19 amongst all the possible causes. Well, no. As we have seen, if we can&amp;rsquo;t define with precision the number of people who are infected by COVID-19, we will not be able to know the number of people who have died as a result of it.&lt;/p&gt;
&lt;p&gt;But it can be even trickier if we consider that every country has different criteria on how they count the number of deaths of people who were tested positive&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;. Take the case of UK&amp;rsquo;s definition:&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;The figures on deaths relate in almost all cases to patients who have died in hospital and who have tested positive for COVID-19.[&amp;hellip;] These figures do not include deaths outside hospital, such as those in care homes, except as indicated above.&lt;sup id="fnref:5"&gt;&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref"&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So, again: real figures are much higher than those reported, no matter which country made the measurements. All of them are wrong. Some people argue that governments do not want to provide real figures not to create even more social alarm, lose popularity with their voters or even to look better than other countries. However, often the simpler answer is the most probable one&lt;sup id="fnref:6"&gt;&lt;a href="#fn:6" class="footnote-ref" role="doc-noteref"&gt;6&lt;/a&gt;&lt;/sup&gt;: it is not that governments want to hide information from us, it is just that no country has the means to face this outbreak, nor to mention to take accurate metrics. &lt;strong&gt;And here lies another drama of COVID-19 that goes beyond the personal tragedy: no country in the world is prepared for the stress test that COVID-19 represents.&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/conspiracy-mulder.gif"
alt="It is not that Governments are conspiring hiding information, it is just that they do not have the means to get better figures. And here lies the tragedy!"&gt;&lt;figcaption&gt;
&lt;p&gt;It is not that Governments are conspiring hiding information, it is just that they do not have the means to get better figures. And here lies the tragedy!&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;But let&amp;rsquo;s go back to our path: that of data and figures. At this point, we have to acknowledge that all the data is flawed and we cannot get a perfect picture of the real situation out of them. If we wanted to do so, we would need to use other data sources, like comparing the record of total daily deaths&lt;sup id="fnref:7"&gt;&lt;a href="#fn:7" class="footnote-ref" role="doc-noteref"&gt;7&lt;/a&gt;&lt;/sup&gt; with the same period last year(s). Of course, this will need more time, and, in turn, this also has other implications and problems (for example, it will not give an accurate number of deaths by COVID-19, as there is no way to know their cause of death, but the significant difference between periods could be a good proxy).&lt;/p&gt;
&lt;p&gt;So we have two options now, either losing faith completely in all COVID-19 infographics and metrics or to acknowledge their limitations and assume that they are just a rough approximation to reality.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/morpheus-red-pill.jpg"
alt="We have two options: either losing faith completely in all COVID-19 infographics or assuming they are no more than a rough approximation to reality"&gt;&lt;figcaption&gt;
&lt;p&gt;We have two options: either losing faith completely in all COVID-19 infographics or assuming they are no more than a rough approximation to reality&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id="3-choose-the-right-figures-and-visuals"&gt;3. Choose the right figures and visuals&lt;/h2&gt;
&lt;p&gt;Great! If you are reading this it means that you are ok assuming that reality is (as always) far more complex than what nice dashboards can ever show, no matter how fancy they are. And speaking of that: &lt;strong&gt;beware of fancy visuals!&lt;/strong&gt;&lt;/p&gt;
&lt;div class="gallery" style="display: flow-root"&gt;
&lt;a data-fancybox="gallery-img/showcase" href="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/FT-rollingdata2.png" &gt;
&lt;div style="background-image:url(/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/FT-rollingdata2_hu_1f1616995ea14377.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-img/showcase" href="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/NYT%20Coronavirus%20in%20the%20U%20S%20Latest%20Map%20and%20Case%20Count.png" data-caption="Map of OVID-19 Cases&amp;amp;rsquo; growth in USA. Source:"&gt;
&lt;div style="background-image:url(/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/NYT%20Coronavirus%20in%20the%20U%20S%20Latest%20Map%20and%20Case%20Count_hu_5a5fd1138b4495f5.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-img/showcase" href="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/Screenshot_2020-04-03%20How%20the%20Virus%20Got%20Out.png" &gt;
&lt;div style="background-image:url(/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/Screenshot_2020-04-03%20How%20the%20Virus%20Got%20Out_hu_5ce9a6ca027a2d3e.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-img/showcase" href="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/Table-decoration.png" data-caption="A table combining data with (rough) visualization. Source:"&gt;
&lt;div style="background-image:url(/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/Table-decoration_hu_bad38023cded6fd6.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-img/showcase" href="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/UKs%20COVID-19%20Dashboard.png" data-caption="Total UK COVID-19 Cases Update Source:"&gt;
&lt;div style="background-image:url(/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/UKs%20COVID-19%20Dashboard_hu_2fd06161bcda2cb4.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-img/showcase" href="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/WHO%20Health%20Emergency%20Dashboard.png" data-caption="WHO map. Source:"&gt;
&lt;div style="background-image:url(/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/WHO%20Health%20Emergency%20Dashboard_hu_bb8a533c588ccc49.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-img/showcase" href="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/covid19_fallecimientos-por-region-superpuesto-offset-log_since-5deceased.png" &gt;
&lt;div style="background-image:url(/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/covid19_fallecimientos-por-region-superpuesto-offset-log_since-5deceased_hu_d267f7d3f28bc5df.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-img/showcase" href="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/numeroteca-small-multiples.png" data-caption="Numeroteca&amp;amp;rsquo;s Evolution of cases in Spain&amp;amp;rsquo;s regions, as part of an exhaustive analysis on Spain, France and Italy. Source:"&gt;
&lt;div style="background-image:url(/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/numeroteca-small-multiples_hu_28f23740e063950f.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-img/showcase" href="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/numeroteca_covid19_casos-registrados-por-comunidad-autonoma-superpuesto-log.png" data-caption="Numeroteca&amp;amp;rsquo;s Evolution of cases in Spain&amp;amp;rsquo;s regions, as part of an exhaustive analysis on Spain, France and Italy. Source:"&gt;
&lt;div style="background-image:url(/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/showcase/numeroteca_covid19_casos-registrados-por-comunidad-autonoma-superpuesto-log_hu_222f72e4c88c4194.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;I&amp;rsquo;m sure that at this point you may have seen plenty of neat infographics of any type, like the ones above: some of them use boxplots, other lines, other scatterplots&amp;hellip; some of them have smooth edges, others have axis with logarithmic scales. Even there are some that want to introduce geospatial analysis and present maps of different kinds (choropleths, bubbles, sizes)&amp;hellip; and if you are like me, you can enjoy watching them and interacting with them during hours. But are they really effective to display useful data? Unfortunately, most of them are not (even some of my own).&lt;/p&gt;
&lt;p&gt;One of the most basic yet frequent is to display a big figure of the total cases within a country. &lt;strong&gt;Big figures are really catchy and easy to understand, but they usually lack some context to make them really meaningful&lt;/strong&gt;. Of course, anyone can understand that a 7-figure number is a big one, but it is really difficult to know how big it is. We need to compare it to something else to wholly grasp its real magnitude. Also, since we are dealing with a cumulative figure, knowing the analysed time span is a must, as it is not the same to reach a certain figure in one day, one week, one month or one year.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/big-figures.png"&gt;
&lt;/figure&gt;
&lt;p&gt;A common variation of that is to provide a line plot of cumulative cases, with the dates on the X-axis and total cases in Y-Axis. There are several variations of that: displaying relative data (eg: number of cases/population), with logarithmic scale (in order to make it easier to see the variations of the first days when compared to most recent ones), displaying several categories, either representing different regions or type of cases&amp;hellip; Whereas they are really effective and most of them are right from a technical standpoint (especially considering that some of these variations make a great difference), it is the representation of figure itself that may be of little or no use. Is it really representative of something? What kind of questions can we answer by providing a number that, by definition, will always grow?&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/WHO-cumulative.png"
alt="Line plot displaying cumulative cases. Is it really meaningful? Source:"&gt;&lt;figcaption&gt;
&lt;p&gt;Line plot displaying cumulative cases. Is it really meaningful? Source:&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;It is for that reason that some have decided to use other indicators in order to assess the evolution of the pandemic, such as the number of new cases per day, as they allow us to easily identify if figures are better or worse than the previous day. Again, the same variations of the previous plots can be made in order to make this even more insightful, such as the following barplot, which displays the daily variation of cases, grouped by types. Not only we can see that they are starting to lower, but also, that the number of recovered cases is increasing over the deaths or active cases.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/cases_day_type.png"
alt="Daily cases, by type. Source:"&gt;&lt;figcaption&gt;
&lt;p&gt;Daily cases, by type. Source:&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;This is indeed more useful than cumulative cases, although it is somewhat volatile and can lead to confusion. Take the image below, as an example:&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/weekend-effect2.png"
alt="Can you see that weird unexpected variation? It is the weekend effect! (That&amp;rsquo;s why in the next dashboard version I will be highlighting the weekends). Source:"&gt;&lt;figcaption&gt;
&lt;p&gt;Can you see that weird unexpected variation? It is the weekend effect! (That&amp;rsquo;s why in the next dashboard version I will be highlighting the weekends). Source:&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Can you see how all figures suffer from a dramatic fall on 29th and 30th March just before peaking again the day after? This is indeed an unexpected behaviour and really difficult to explain. Unless we realise that those days were Saturday and Sunday, and due to the fact that there are fewer people working at hospitals, data is not taken as fast as usual and therefore, accumulates on Monday. This phenomenon has been called &amp;ldquo;the weekend effect&amp;rdquo; (Did I mention that you should not take data too seriously? &amp;#x1f609;)&lt;/p&gt;
&lt;p&gt;It is because of that that some others, such as
from Financial Times, prefer to use a rolling average of a fixed period (such as 3 or 5 days), which is a more stable figure, such as that shown in the figure below.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/FT-rollingdata.png"
alt="Source:"&gt;&lt;figcaption&gt;
&lt;p&gt;Source:&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Other techniques used to fix those outliers and display tendencies are to use smooth line plots based on the actual data, like the following plot made by
.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/numeroteca-smooth.jpeg"
alt="Smoothed lines based on actual data. Source:"&gt;&lt;figcaption&gt;
&lt;p&gt;Smoothed lines based on actual data. Source:&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id="4-do-not-make-hasty-comparisons"&gt;4. Do not make hasty comparisons&lt;/h2&gt;
&lt;p&gt;Surely, the most frequent type of visual is that comparing how COVID-19 is affecting different regions, either within a country or comparing different countries (usually using China or Wuchan as a reference -after all, it is where it all started). While this kind of plots could provide answers to questions such as how a specific region is doing regarding another one (and therefore, replicating or avoiding their measures against COVID-19, for example), those comparisons are really problematic. For starters, the fact that population or size is largely different invalidates any comparison in absolute terms.&lt;/p&gt;
&lt;p&gt;But even when using relative values (eg: number of cases per inhabitant), there are other key factors that have a direct impact on the evolution of the disease and its effects are assumed to be the same, while in reality can differ in several orders of magnitude, such as demography&lt;sup id="fnref:8"&gt;&lt;a href="#fn:8" class="footnote-ref" role="doc-noteref"&gt;8&lt;/a&gt;&lt;/sup&gt;, geography, urban settlements or health systems (in terms of human and financial resources), just to name a few.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/Diario_es_demografia_infectados2.png"
alt="Histogram of cases and mortality rates by age and country. Most cases in Italy were from 70-90, as opposed to 20-30 in South Korea, hence the enormous difference in the total of deaths. Source:"&gt;&lt;figcaption&gt;
&lt;p&gt;Histogram of cases and mortality rates by age and country. Most cases in Italy were from 70-90, as opposed to 20-30 in South Korea, hence the enormous difference in the total of deaths. Source:&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Amongst all those differences, though, the most relevant well may be the number of tests done to detect COVID-19, a figure that is not just different but also usually unknown&lt;/strong&gt;. This is by no means trivial, as we have seen that the number of cases is defined using this parameter. Therefore, if a country performed a really low number of tests, it will also have an extremely low number of cases. Out of sight, out of mind.&lt;/p&gt;
&lt;p&gt;So, the biggest problem here is that without taking into consideration those factors, comparisons may render plenty of biased conclusions that have nothing to do with reality, such as come countries may be dodging COVID-19 or are kind of immune, or that COVID-19 only affects countries with a bad health system, unorganized governments, or undeveloped countries. As a result, &lt;strong&gt;there is a risk of developing a narrative of moral superiority&lt;sup id="fnref:9"&gt;&lt;a href="#fn:9" class="footnote-ref" role="doc-noteref"&gt;9&lt;/a&gt;&lt;/sup&gt; based on totally wrong foundations&lt;/strong&gt; like what some politicians have started to do in their own self-interest&lt;sup id="fnref:10"&gt;&lt;a href="#fn:10" class="footnote-ref" role="doc-noteref"&gt;10&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/repugnant-conclusions.jpg"
alt="Don&amp;rsquo;t be like Wopke Hoekstra doing hasty comparison, or you risk reaching repugnant conclusions like him. Photo:"&gt;&lt;figcaption&gt;
&lt;p&gt;Don&amp;rsquo;t be like Wopke Hoekstra doing hasty comparison, or you risk reaching repugnant conclusions like him. Photo:&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id="5-take-predictions-even-less-seriously"&gt;5. Take predictions even less seriously&lt;/h2&gt;
&lt;p&gt;The last group of plots, and the most complex ones, are those that make predictions. While they are really appealing and, apparently, provide answers to one of our main concerns (&lt;em&gt;&amp;ldquo;When is this going to end?&amp;rdquo; / Will this last any longer?&lt;/em&gt;) in a very understandable way, they are really tricky. There are several ways to make predictions, such as using linear regression or models. While a model can be as easy&lt;sup id="fnref:11"&gt;&lt;a href="#fn:11" class="footnote-ref" role="doc-noteref"&gt;11&lt;/a&gt;&lt;/sup&gt; or as complex as we want it to be (and as a result, their accuracy will differ dramatically), they mostly rely on having a good set of historic data or knowing the logics of the phenomenon they want to describe. Unfortunately, since COVID-19 is a new phenomenon, we are lacking of both, and therefore, predictions at this stage are prone to errors. Some predictions are based on what has happened in other places where the outbreak started before, but we have seen how problematic this can be.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/en/blog/2020/04/considerations-on-the-importance-of-data-and-science-in-data-science/img/tarot.jpeg"
alt="If we can&amp;rsquo;t see (nor understand) the model behind a prediction, it can be as useful and reliable as that of a fortune teller."&gt;&lt;figcaption&gt;
&lt;p&gt;If we can&amp;rsquo;t see (nor understand) the model behind a prediction, it can be as useful and reliable as that of a fortune teller.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Last, but not least, we should not forget that they require a large amount of knowledge of a particular field something like most of the people who are doing those nice visualizations (including myself) lack of. Therefore, since I have openly admitted that this is something beyond my knowledge, at this point I can only but recommend to be sceptical about any prediction that is not made by an authority on the field. And even in that case (provided I could understand it), I would recommend caution. Or even better: just rely on predictions if they were made by epidemiologists and you are one of them.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;As argued, if data visualization is never easy, it is even less so in the case of a novel phenomenon such as COVID-19. Therefore, when facing any type of visuals, we should proceed with caution. If you are doing (or planning to do) any type of visualization, ask yourself what question do you want to answer and which is the best way to do it, take into account the aforementioned considerations and make them evident to your readers&lt;sup id="fnref:12"&gt;&lt;a href="#fn:12" class="footnote-ref" role="doc-noteref"&gt;12&lt;/a&gt;&lt;/sup&gt;. Also, make your analysis reproducible, so anyone could tell you if you did something wrong or even fix it by themselves. If you are simply watching them, look for all those explanations, and if you can&amp;rsquo;t find them, ask for them, help the author or simply ignore it and look for an alternative. But in any case, you should always remember not to take data too seriously or too blindly. Data by itself is not what really matters, is what we do with it and how we do it in order to achieve knowledge what really matters. And here&amp;rsquo;s when science plays its role.&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;There is a third scenario: to infer or calculate the data from other datasets.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;For example,
, without a clean structure. Not only they use a proprietary format, but they mix data with metadata on the same file, even in the same sheet, instead of using a wide format where every column is a field and every row is an observation or a long format where keys and values are stored as in a dictionary. On the other hand, Spain decided to release the data in PDF. PDFs are great for visualization because they are an ISO format and can be opened with plenty of different softwares. Unfortunately, it is not great for consuming data, as it is not structured in any way.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;At the time of writing this post, and according to
&amp;rsquo;s page, the
. The standard method of testing is real-time reverse transcription polymerase chain reaction (rRT-PCR), typically done on respiratory samples obtained by a nasopharyngeal swab and results are generally available within a few hours to two days.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;This article from El Pais (in Spanish)
&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:5"&gt;
&lt;p&gt;
&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:6"&gt;
&lt;p&gt;This is the commonly phrased version of
principle.&amp;#160;&lt;a href="#fnref:6" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:7"&gt;
&lt;p&gt;In Spain
&amp;#160;&lt;a href="#fnref:7" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:8"&gt;
&lt;p&gt;Refer to this (
-in Spanish) which focuses on the fact that coronavirus mortality rate differs enormously according to the age.&amp;#160;&lt;a href="#fnref:8" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:9"&gt;
&lt;p&gt;Refer to
(Publico, in Spanish)&amp;#160;&lt;a href="#fnref:9" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:10"&gt;
&lt;p&gt;Take as an example the unfortunate words by Dutch finance minister Wopke Hoekstra, who suggested the EU &amp;ldquo;should investigate countries like Spain that say they have no budgetary margin to deal with the effects of the crisis provoked by the new coronavirus in spite of the fact that the eurozone has grown for seven consecutive years&amp;rdquo;, a statement that was later qualified as &amp;ldquo;repugnant&amp;rdquo; by Portugal&amp;rsquo;s Primer Minister, António Costa. (Source:
)&amp;#160;&lt;a href="#fnref:10" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:11"&gt;
&lt;p&gt;Just to give you an example of how easy can be to implement a prediction in R, refer to this article:
&amp;#160;&lt;a href="#fnref:11" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:12"&gt;
&lt;p&gt;Also, reading this post may be useful:
&amp;#160;&lt;a href="#fnref:12" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Manipulating dataframes in R and Python</title><link>https://carlos-hugoblox.netlify.app/en/blog/2020/02/manipulating-dataframes-in-r-and-python/</link><pubDate>Sat, 08 Feb 2020 17:46:34 +0000</pubDate><guid>https://carlos-hugoblox.netlify.app/en/blog/2020/02/manipulating-dataframes-in-r-and-python/</guid><description>&lt;p&gt;While I have been using &lt;code&gt;R&lt;/code&gt; for many years now (mainly for data manipulation and visualization), and I am extremely happy with some of its features (like how easy is to deal with data or to create interactive reports that can be exported in plenty of different outputs, such as pdf, documents, slides, dashboards or blog posts like this one). However, I have always wanted to learn &lt;code&gt;python&lt;/code&gt;, mostly because it is a multi-purpose language that I would be able to use in other aspects of my everyday life such as web development, &lt;code&gt;QGIS&lt;/code&gt; or Academic research. It is for that reason that I have recently started to learn &lt;code&gt;python&lt;/code&gt;&amp;rsquo;s &lt;code&gt;pandas&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In the following blog post I will be comparing how to perform the same tasks using &lt;code&gt;pandas&lt;/code&gt; and &lt;code&gt;tidyverse&lt;/code&gt;. This mainly serves two learning outcomes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;To generate a cheat sheet that can work as a reminder (for myself): I know there are pages like
, but I learn by doing, so I needed to write the code myself)&lt;/li&gt;
&lt;li&gt;To use &lt;code&gt;reticulate&lt;/code&gt; package, which allows running both, &lt;code&gt;R&lt;/code&gt; and &lt;code&gt;python&lt;/code&gt; within the same document (a &lt;code&gt;Rmarkdown&lt;/code&gt; file to be more specific)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="loading-environment"&gt;Loading environment&lt;/h2&gt;
&lt;p&gt;Since I want to use &lt;code&gt;Python&lt;/code&gt; and &lt;code&gt;R&lt;/code&gt; from a &lt;code&gt;.Rmarkdown&lt;/code&gt; file, I first need to load &lt;code&gt;reticulate&lt;/code&gt; for this, which is a &lt;code&gt;python&lt;/code&gt; interface for &lt;code&gt;R&lt;/code&gt;. Also, since &lt;code&gt;pandas&lt;/code&gt; is not a standard library module, I need to load a python environment&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; with the required packages. &lt;code&gt;reticulate&lt;/code&gt; makes it possible to load environments created with &lt;code&gt;anaconda&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The last step is to load some data about COVID-19 provided by &lt;code&gt;coronavirus&lt;/code&gt; package, which I will be using in this blog post.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;reticulate&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DT&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;use_condaenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;osm_imports_preparations&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;required&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="loading-data"&gt;Loading data&lt;/h2&gt;
&lt;p&gt;First thing we are doing to do is to read a CSV file and turn it into a dataframe which we are going to manipulate in the next steps.&lt;/p&gt;
&lt;h3 id="r"&gt;R&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# We will be loading a CSV file from RamiKrispin&amp;#39;s coronavirus&amp;#39; package.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;csv_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;https://raw.githubusercontent.com/RamiKrispin/coronavirus/master/csv/coronavirus.csv&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Read the CSV, convert it into a dataframe and store it in a variable.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;r_df&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="nf"&gt;read.csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;csv_url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Explore the first on the dataframe.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r_df&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;12&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## date province country lat long type cases
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1 2020-01-22 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 2 2020-01-23 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3 2020-01-24 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 4 2020-01-25 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 5 2020-01-26 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 6 2020-01-27 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 7 2020-01-28 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 8 2020-01-29 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 9 2020-01-30 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 10 2020-01-31 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 11 2020-02-01 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 12 2020-02-02 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="python"&gt;Python&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# We will be loading a CSV file from RamiKrispin&amp;#39;s coronavirus&amp;#39; package.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;csv_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://raw.githubusercontent.com/RamiKrispin/coronavirus/master/csv/coronavirus.csv&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Read the CSV, convert it into a dataframe and store it in a variable.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;csv_url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Explore the first elements on the dataframe.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## date province country lat long type cases
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 0 2020-01-22 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1 2020-01-23 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 2 2020-01-24 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3 2020-01-25 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 4 2020-01-26 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 5 2020-01-27 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 6 2020-01-28 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 7 2020-01-29 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 8 2020-01-30 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 9 2020-01-31 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 10 2020-02-01 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 11 2020-02-02 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;So far, there are no significant differences between both, but note the following differences:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;R&lt;/code&gt; works with regular &lt;strong&gt;functions&lt;/strong&gt;, whereas &lt;code&gt;python&lt;/code&gt; uses &lt;strong&gt;methods&lt;/strong&gt; instead.&lt;/li&gt;
&lt;li&gt;In order to work with dataframes in &lt;code&gt;python&lt;/code&gt;, &lt;code&gt;pandas&lt;/code&gt; module has to be imported beforehand, whereas it is a base feature from &lt;code&gt;R&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Both commands have read the same file but, apparently, they display different data. We will need to explore further the imported data to make sure that both are what we expected and, therefore, the same.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="exploring-a-dataframe"&gt;Exploring a dataframe&lt;/h2&gt;
&lt;p&gt;In this step we are going to evaluate what kind of object have we created, as well as a very basic data exploration.&lt;/p&gt;
&lt;h3 id="r-1"&gt;R&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Explore what kind of object r_df is.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r_df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## &amp;#39;data.frame&amp;#39;: 218276 obs. of 7 variables:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## $ date : chr &amp;#34;2020-01-22&amp;#34; &amp;#34;2020-01-23&amp;#34; &amp;#34;2020-01-24&amp;#34; &amp;#34;2020-01-25&amp;#34; ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## $ province: chr &amp;#34;&amp;#34; &amp;#34;&amp;#34; &amp;#34;&amp;#34; &amp;#34;&amp;#34; ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## $ country : chr &amp;#34;Afghanistan&amp;#34; &amp;#34;Afghanistan&amp;#34; &amp;#34;Afghanistan&amp;#34; &amp;#34;Afghanistan&amp;#34; ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## $ lat : num 33.9 33.9 33.9 33.9 33.9 ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## $ long : num 67.7 67.7 67.7 67.7 67.7 ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## $ type : chr &amp;#34;confirmed&amp;#34; &amp;#34;confirmed&amp;#34; &amp;#34;confirmed&amp;#34; &amp;#34;confirmed&amp;#34; ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## $ cases : int 0 0 0 0 0 0 0 0 0 0 ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Basic statistics&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r_df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## date province country lat
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Length:218276 Length:218276 Length:218276 Min. :-51.796
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Class :character Class :character Class :character 1st Qu.: 6.428
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Mode :character Mode :character Mode :character Median : 22.041
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Mean : 20.561
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3rd Qu.: 40.182
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Max. : 71.707
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## long type cases
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Min. :-135.00 Length:218276 Min. :-16298.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1st Qu.: -12.89 Class :character 1st Qu.: 0.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Median : 21.75 Mode :character Median : 0.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Mean : 25.01 Mean : 331.8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3rd Qu.: 84.25 3rd Qu.: 12.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Max. : 178.06 Max. :140050.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Explore unique values within a variable.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;levels&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;as.factor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r_df&lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [1] &amp;#34;2020-01-22&amp;#34; &amp;#34;2020-01-23&amp;#34; &amp;#34;2020-01-24&amp;#34; &amp;#34;2020-01-25&amp;#34; &amp;#34;2020-01-26&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [6] &amp;#34;2020-01-27&amp;#34; &amp;#34;2020-01-28&amp;#34; &amp;#34;2020-01-29&amp;#34; &amp;#34;2020-01-30&amp;#34; &amp;#34;2020-01-31&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [11] &amp;#34;2020-02-01&amp;#34; &amp;#34;2020-02-02&amp;#34; &amp;#34;2020-02-03&amp;#34; &amp;#34;2020-02-04&amp;#34; &amp;#34;2020-02-05&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [16] &amp;#34;2020-02-06&amp;#34; &amp;#34;2020-02-07&amp;#34; &amp;#34;2020-02-08&amp;#34; &amp;#34;2020-02-09&amp;#34; &amp;#34;2020-02-10&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [21] &amp;#34;2020-02-11&amp;#34; &amp;#34;2020-02-12&amp;#34; &amp;#34;2020-02-13&amp;#34; &amp;#34;2020-02-14&amp;#34; &amp;#34;2020-02-15&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [26] &amp;#34;2020-02-16&amp;#34; &amp;#34;2020-02-17&amp;#34; &amp;#34;2020-02-18&amp;#34; &amp;#34;2020-02-19&amp;#34; &amp;#34;2020-02-20&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [31] &amp;#34;2020-02-21&amp;#34; &amp;#34;2020-02-22&amp;#34; &amp;#34;2020-02-23&amp;#34; &amp;#34;2020-02-24&amp;#34; &amp;#34;2020-02-25&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [36] &amp;#34;2020-02-26&amp;#34; &amp;#34;2020-02-27&amp;#34; &amp;#34;2020-02-28&amp;#34; &amp;#34;2020-02-29&amp;#34; &amp;#34;2020-03-01&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [41] &amp;#34;2020-03-02&amp;#34; &amp;#34;2020-03-03&amp;#34; &amp;#34;2020-03-04&amp;#34; &amp;#34;2020-03-05&amp;#34; &amp;#34;2020-03-06&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [46] &amp;#34;2020-03-07&amp;#34; &amp;#34;2020-03-08&amp;#34; &amp;#34;2020-03-09&amp;#34; &amp;#34;2020-03-10&amp;#34; &amp;#34;2020-03-11&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [51] &amp;#34;2020-03-12&amp;#34; &amp;#34;2020-03-13&amp;#34; &amp;#34;2020-03-14&amp;#34; &amp;#34;2020-03-15&amp;#34; &amp;#34;2020-03-16&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [56] &amp;#34;2020-03-17&amp;#34; &amp;#34;2020-03-18&amp;#34; &amp;#34;2020-03-19&amp;#34; &amp;#34;2020-03-20&amp;#34; &amp;#34;2020-03-21&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [61] &amp;#34;2020-03-22&amp;#34; &amp;#34;2020-03-23&amp;#34; &amp;#34;2020-03-24&amp;#34; &amp;#34;2020-03-25&amp;#34; &amp;#34;2020-03-26&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [66] &amp;#34;2020-03-27&amp;#34; &amp;#34;2020-03-28&amp;#34; &amp;#34;2020-03-29&amp;#34; &amp;#34;2020-03-30&amp;#34; &amp;#34;2020-03-31&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [71] &amp;#34;2020-04-01&amp;#34; &amp;#34;2020-04-02&amp;#34; &amp;#34;2020-04-03&amp;#34; &amp;#34;2020-04-04&amp;#34; &amp;#34;2020-04-05&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [76] &amp;#34;2020-04-06&amp;#34; &amp;#34;2020-04-07&amp;#34; &amp;#34;2020-04-08&amp;#34; &amp;#34;2020-04-09&amp;#34; &amp;#34;2020-04-10&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [81] &amp;#34;2020-04-11&amp;#34; &amp;#34;2020-04-12&amp;#34; &amp;#34;2020-04-13&amp;#34; &amp;#34;2020-04-14&amp;#34; &amp;#34;2020-04-15&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [86] &amp;#34;2020-04-16&amp;#34; &amp;#34;2020-04-17&amp;#34; &amp;#34;2020-04-18&amp;#34; &amp;#34;2020-04-19&amp;#34; &amp;#34;2020-04-20&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [91] &amp;#34;2020-04-21&amp;#34; &amp;#34;2020-04-22&amp;#34; &amp;#34;2020-04-23&amp;#34; &amp;#34;2020-04-24&amp;#34; &amp;#34;2020-04-25&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [96] &amp;#34;2020-04-26&amp;#34; &amp;#34;2020-04-27&amp;#34; &amp;#34;2020-04-28&amp;#34; &amp;#34;2020-04-29&amp;#34; &amp;#34;2020-04-30&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [101] &amp;#34;2020-05-01&amp;#34; &amp;#34;2020-05-02&amp;#34; &amp;#34;2020-05-03&amp;#34; &amp;#34;2020-05-04&amp;#34; &amp;#34;2020-05-05&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [106] &amp;#34;2020-05-06&amp;#34; &amp;#34;2020-05-07&amp;#34; &amp;#34;2020-05-08&amp;#34; &amp;#34;2020-05-09&amp;#34; &amp;#34;2020-05-10&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [111] &amp;#34;2020-05-11&amp;#34; &amp;#34;2020-05-12&amp;#34; &amp;#34;2020-05-13&amp;#34; &amp;#34;2020-05-14&amp;#34; &amp;#34;2020-05-15&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [116] &amp;#34;2020-05-16&amp;#34; &amp;#34;2020-05-17&amp;#34; &amp;#34;2020-05-18&amp;#34; &amp;#34;2020-05-19&amp;#34; &amp;#34;2020-05-20&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [121] &amp;#34;2020-05-21&amp;#34; &amp;#34;2020-05-22&amp;#34; &amp;#34;2020-05-23&amp;#34; &amp;#34;2020-05-24&amp;#34; &amp;#34;2020-05-25&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [126] &amp;#34;2020-05-26&amp;#34; &amp;#34;2020-05-27&amp;#34; &amp;#34;2020-05-28&amp;#34; &amp;#34;2020-05-29&amp;#34; &amp;#34;2020-05-30&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [131] &amp;#34;2020-05-31&amp;#34; &amp;#34;2020-06-01&amp;#34; &amp;#34;2020-06-02&amp;#34; &amp;#34;2020-06-03&amp;#34; &amp;#34;2020-06-04&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [136] &amp;#34;2020-06-05&amp;#34; &amp;#34;2020-06-06&amp;#34; &amp;#34;2020-06-07&amp;#34; &amp;#34;2020-06-08&amp;#34; &amp;#34;2020-06-09&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [141] &amp;#34;2020-06-10&amp;#34; &amp;#34;2020-06-11&amp;#34; &amp;#34;2020-06-12&amp;#34; &amp;#34;2020-06-13&amp;#34; &amp;#34;2020-06-14&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [146] &amp;#34;2020-06-15&amp;#34; &amp;#34;2020-06-16&amp;#34; &amp;#34;2020-06-17&amp;#34; &amp;#34;2020-06-18&amp;#34; &amp;#34;2020-06-19&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [151] &amp;#34;2020-06-20&amp;#34; &amp;#34;2020-06-21&amp;#34; &amp;#34;2020-06-22&amp;#34; &amp;#34;2020-06-23&amp;#34; &amp;#34;2020-06-24&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [156] &amp;#34;2020-06-25&amp;#34; &amp;#34;2020-06-26&amp;#34; &amp;#34;2020-06-27&amp;#34; &amp;#34;2020-06-28&amp;#34; &amp;#34;2020-06-29&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [161] &amp;#34;2020-06-30&amp;#34; &amp;#34;2020-07-01&amp;#34; &amp;#34;2020-07-02&amp;#34; &amp;#34;2020-07-03&amp;#34; &amp;#34;2020-07-04&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [166] &amp;#34;2020-07-05&amp;#34; &amp;#34;2020-07-06&amp;#34; &amp;#34;2020-07-07&amp;#34; &amp;#34;2020-07-08&amp;#34; &amp;#34;2020-07-09&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [171] &amp;#34;2020-07-10&amp;#34; &amp;#34;2020-07-11&amp;#34; &amp;#34;2020-07-12&amp;#34; &amp;#34;2020-07-13&amp;#34; &amp;#34;2020-07-14&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [176] &amp;#34;2020-07-15&amp;#34; &amp;#34;2020-07-16&amp;#34; &amp;#34;2020-07-17&amp;#34; &amp;#34;2020-07-18&amp;#34; &amp;#34;2020-07-19&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [181] &amp;#34;2020-07-20&amp;#34; &amp;#34;2020-07-21&amp;#34; &amp;#34;2020-07-22&amp;#34; &amp;#34;2020-07-23&amp;#34; &amp;#34;2020-07-24&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [186] &amp;#34;2020-07-25&amp;#34; &amp;#34;2020-07-26&amp;#34; &amp;#34;2020-07-27&amp;#34; &amp;#34;2020-07-28&amp;#34; &amp;#34;2020-07-29&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [191] &amp;#34;2020-07-30&amp;#34; &amp;#34;2020-07-31&amp;#34; &amp;#34;2020-08-01&amp;#34; &amp;#34;2020-08-02&amp;#34; &amp;#34;2020-08-03&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [196] &amp;#34;2020-08-04&amp;#34; &amp;#34;2020-08-05&amp;#34; &amp;#34;2020-08-06&amp;#34; &amp;#34;2020-08-07&amp;#34; &amp;#34;2020-08-08&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [201] &amp;#34;2020-08-09&amp;#34; &amp;#34;2020-08-10&amp;#34; &amp;#34;2020-08-11&amp;#34; &amp;#34;2020-08-12&amp;#34; &amp;#34;2020-08-13&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [206] &amp;#34;2020-08-14&amp;#34; &amp;#34;2020-08-15&amp;#34; &amp;#34;2020-08-16&amp;#34; &amp;#34;2020-08-17&amp;#34; &amp;#34;2020-08-18&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [211] &amp;#34;2020-08-19&amp;#34; &amp;#34;2020-08-20&amp;#34; &amp;#34;2020-08-21&amp;#34; &amp;#34;2020-08-22&amp;#34; &amp;#34;2020-08-23&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [216] &amp;#34;2020-08-24&amp;#34; &amp;#34;2020-08-25&amp;#34; &amp;#34;2020-08-26&amp;#34; &amp;#34;2020-08-27&amp;#34; &amp;#34;2020-08-28&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [221] &amp;#34;2020-08-29&amp;#34; &amp;#34;2020-08-30&amp;#34; &amp;#34;2020-08-31&amp;#34; &amp;#34;2020-09-01&amp;#34; &amp;#34;2020-09-02&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [226] &amp;#34;2020-09-03&amp;#34; &amp;#34;2020-09-04&amp;#34; &amp;#34;2020-09-05&amp;#34; &amp;#34;2020-09-06&amp;#34; &amp;#34;2020-09-07&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [231] &amp;#34;2020-09-08&amp;#34; &amp;#34;2020-09-09&amp;#34; &amp;#34;2020-09-10&amp;#34; &amp;#34;2020-09-11&amp;#34; &amp;#34;2020-09-12&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [236] &amp;#34;2020-09-13&amp;#34; &amp;#34;2020-09-14&amp;#34; &amp;#34;2020-09-15&amp;#34; &amp;#34;2020-09-16&amp;#34; &amp;#34;2020-09-17&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [241] &amp;#34;2020-09-18&amp;#34; &amp;#34;2020-09-19&amp;#34; &amp;#34;2020-09-20&amp;#34; &amp;#34;2020-09-21&amp;#34; &amp;#34;2020-09-22&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [246] &amp;#34;2020-09-23&amp;#34; &amp;#34;2020-09-24&amp;#34; &amp;#34;2020-09-25&amp;#34; &amp;#34;2020-09-26&amp;#34; &amp;#34;2020-09-27&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [251] &amp;#34;2020-09-28&amp;#34; &amp;#34;2020-09-29&amp;#34; &amp;#34;2020-09-30&amp;#34; &amp;#34;2020-10-01&amp;#34; &amp;#34;2020-10-02&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [256] &amp;#34;2020-10-03&amp;#34; &amp;#34;2020-10-04&amp;#34; &amp;#34;2020-10-05&amp;#34; &amp;#34;2020-10-06&amp;#34; &amp;#34;2020-10-07&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [261] &amp;#34;2020-10-08&amp;#34; &amp;#34;2020-10-09&amp;#34; &amp;#34;2020-10-10&amp;#34; &amp;#34;2020-10-11&amp;#34; &amp;#34;2020-10-12&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [266] &amp;#34;2020-10-13&amp;#34; &amp;#34;2020-10-14&amp;#34; &amp;#34;2020-10-15&amp;#34; &amp;#34;2020-10-16&amp;#34; &amp;#34;2020-10-17&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [271] &amp;#34;2020-10-18&amp;#34; &amp;#34;2020-10-19&amp;#34; &amp;#34;2020-10-20&amp;#34; &amp;#34;2020-10-21&amp;#34; &amp;#34;2020-10-22&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [276] &amp;#34;2020-10-23&amp;#34; &amp;#34;2020-10-24&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="python-1"&gt;Python&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Explore what kind of entity py_df is.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;info&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Now, calculate basic statistics for the numeric columns in the DataFrame.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;lt;class &amp;#39;pandas.core.frame.DataFrame&amp;#39;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## RangeIndex: 218276 entries, 0 to 218275
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Data columns (total 7 columns):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## # Column Non-Null Count Dtype
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## --- ------ -------------- -----
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 0 date 218276 non-null object
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1 province 63433 non-null object
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 2 country 218276 non-null object
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3 lat 218276 non-null float64
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 4 long 218276 non-null float64
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 5 type 218276 non-null object
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 6 cases 218276 non-null int64
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## dtypes: float64(2), int64(1), object(4)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## memory usage: 11.7+ MB
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# List unique values in the df[&amp;#39;date&amp;#39;] column&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## lat long cases
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## count 218276.000000 218276.000000 218276.000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## mean 20.561062 25.011408 331.749812
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## std 24.759252 69.572388 3045.547043
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## min -51.796300 -135.000000 -16298.000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 25% 6.428055 -12.885800 0.000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 50% 22.041450 21.745300 0.000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 75% 40.182400 84.250000 12.000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## max 71.706900 178.065000 140050.000000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;date&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;unique&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# I prefer using this notation to prevent problems with columns with a dot inside.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## array([&amp;#39;2020-01-22&amp;#39;, &amp;#39;2020-01-23&amp;#39;, &amp;#39;2020-01-24&amp;#39;, &amp;#39;2020-01-25&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-01-26&amp;#39;, &amp;#39;2020-01-27&amp;#39;, &amp;#39;2020-01-28&amp;#39;, &amp;#39;2020-01-29&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-01-30&amp;#39;, &amp;#39;2020-01-31&amp;#39;, &amp;#39;2020-02-01&amp;#39;, &amp;#39;2020-02-02&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-02-03&amp;#39;, &amp;#39;2020-02-04&amp;#39;, &amp;#39;2020-02-05&amp;#39;, &amp;#39;2020-02-06&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-02-07&amp;#39;, &amp;#39;2020-02-08&amp;#39;, &amp;#39;2020-02-09&amp;#39;, &amp;#39;2020-02-10&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-02-11&amp;#39;, &amp;#39;2020-02-12&amp;#39;, &amp;#39;2020-02-13&amp;#39;, &amp;#39;2020-02-14&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-02-15&amp;#39;, &amp;#39;2020-02-16&amp;#39;, &amp;#39;2020-02-17&amp;#39;, &amp;#39;2020-02-18&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-02-19&amp;#39;, &amp;#39;2020-02-20&amp;#39;, &amp;#39;2020-02-21&amp;#39;, &amp;#39;2020-02-22&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-02-23&amp;#39;, &amp;#39;2020-02-24&amp;#39;, &amp;#39;2020-02-25&amp;#39;, &amp;#39;2020-02-26&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-02-27&amp;#39;, &amp;#39;2020-02-28&amp;#39;, &amp;#39;2020-02-29&amp;#39;, &amp;#39;2020-03-01&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-02&amp;#39;, &amp;#39;2020-03-03&amp;#39;, &amp;#39;2020-03-04&amp;#39;, &amp;#39;2020-03-05&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-06&amp;#39;, &amp;#39;2020-03-07&amp;#39;, &amp;#39;2020-03-08&amp;#39;, &amp;#39;2020-03-09&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-10&amp;#39;, &amp;#39;2020-03-11&amp;#39;, &amp;#39;2020-03-12&amp;#39;, &amp;#39;2020-03-13&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-14&amp;#39;, &amp;#39;2020-03-15&amp;#39;, &amp;#39;2020-03-16&amp;#39;, &amp;#39;2020-03-17&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-18&amp;#39;, &amp;#39;2020-03-19&amp;#39;, &amp;#39;2020-03-20&amp;#39;, &amp;#39;2020-03-21&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-22&amp;#39;, &amp;#39;2020-03-23&amp;#39;, &amp;#39;2020-03-24&amp;#39;, &amp;#39;2020-03-25&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-26&amp;#39;, &amp;#39;2020-03-27&amp;#39;, &amp;#39;2020-03-28&amp;#39;, &amp;#39;2020-03-29&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-30&amp;#39;, &amp;#39;2020-03-31&amp;#39;, &amp;#39;2020-04-01&amp;#39;, &amp;#39;2020-04-02&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-04-03&amp;#39;, &amp;#39;2020-04-04&amp;#39;, &amp;#39;2020-04-05&amp;#39;, &amp;#39;2020-04-06&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-04-07&amp;#39;, &amp;#39;2020-04-08&amp;#39;, &amp;#39;2020-04-09&amp;#39;, &amp;#39;2020-04-10&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-04-11&amp;#39;, &amp;#39;2020-04-12&amp;#39;, &amp;#39;2020-04-13&amp;#39;, &amp;#39;2020-04-14&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-04-15&amp;#39;, &amp;#39;2020-04-16&amp;#39;, &amp;#39;2020-04-17&amp;#39;, &amp;#39;2020-04-18&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-04-19&amp;#39;, &amp;#39;2020-04-20&amp;#39;, &amp;#39;2020-04-21&amp;#39;, &amp;#39;2020-04-22&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-04-23&amp;#39;, &amp;#39;2020-04-24&amp;#39;, &amp;#39;2020-04-25&amp;#39;, &amp;#39;2020-04-26&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-04-27&amp;#39;, &amp;#39;2020-04-28&amp;#39;, &amp;#39;2020-04-29&amp;#39;, &amp;#39;2020-04-30&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-01&amp;#39;, &amp;#39;2020-05-02&amp;#39;, &amp;#39;2020-05-03&amp;#39;, &amp;#39;2020-05-04&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-05&amp;#39;, &amp;#39;2020-05-06&amp;#39;, &amp;#39;2020-05-07&amp;#39;, &amp;#39;2020-05-08&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-09&amp;#39;, &amp;#39;2020-05-10&amp;#39;, &amp;#39;2020-05-11&amp;#39;, &amp;#39;2020-05-12&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-13&amp;#39;, &amp;#39;2020-05-14&amp;#39;, &amp;#39;2020-05-15&amp;#39;, &amp;#39;2020-05-16&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-17&amp;#39;, &amp;#39;2020-05-18&amp;#39;, &amp;#39;2020-05-19&amp;#39;, &amp;#39;2020-05-20&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-21&amp;#39;, &amp;#39;2020-05-22&amp;#39;, &amp;#39;2020-05-23&amp;#39;, &amp;#39;2020-05-24&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-25&amp;#39;, &amp;#39;2020-05-26&amp;#39;, &amp;#39;2020-05-27&amp;#39;, &amp;#39;2020-05-28&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-29&amp;#39;, &amp;#39;2020-05-30&amp;#39;, &amp;#39;2020-05-31&amp;#39;, &amp;#39;2020-06-01&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-02&amp;#39;, &amp;#39;2020-06-03&amp;#39;, &amp;#39;2020-06-04&amp;#39;, &amp;#39;2020-06-05&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-06&amp;#39;, &amp;#39;2020-06-07&amp;#39;, &amp;#39;2020-06-08&amp;#39;, &amp;#39;2020-06-09&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-10&amp;#39;, &amp;#39;2020-06-11&amp;#39;, &amp;#39;2020-06-12&amp;#39;, &amp;#39;2020-06-13&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-14&amp;#39;, &amp;#39;2020-06-15&amp;#39;, &amp;#39;2020-06-16&amp;#39;, &amp;#39;2020-06-17&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-18&amp;#39;, &amp;#39;2020-06-19&amp;#39;, &amp;#39;2020-06-20&amp;#39;, &amp;#39;2020-06-21&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-22&amp;#39;, &amp;#39;2020-06-23&amp;#39;, &amp;#39;2020-06-24&amp;#39;, &amp;#39;2020-06-25&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-26&amp;#39;, &amp;#39;2020-06-27&amp;#39;, &amp;#39;2020-06-28&amp;#39;, &amp;#39;2020-06-29&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-30&amp;#39;, &amp;#39;2020-07-01&amp;#39;, &amp;#39;2020-07-02&amp;#39;, &amp;#39;2020-07-03&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-07-04&amp;#39;, &amp;#39;2020-07-05&amp;#39;, &amp;#39;2020-07-06&amp;#39;, &amp;#39;2020-07-07&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-07-08&amp;#39;, &amp;#39;2020-07-09&amp;#39;, &amp;#39;2020-07-10&amp;#39;, &amp;#39;2020-07-11&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-07-12&amp;#39;, &amp;#39;2020-07-13&amp;#39;, &amp;#39;2020-07-14&amp;#39;, &amp;#39;2020-07-15&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-07-16&amp;#39;, &amp;#39;2020-07-17&amp;#39;, &amp;#39;2020-07-18&amp;#39;, &amp;#39;2020-07-19&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-07-20&amp;#39;, &amp;#39;2020-07-21&amp;#39;, &amp;#39;2020-07-22&amp;#39;, &amp;#39;2020-07-23&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-07-24&amp;#39;, &amp;#39;2020-07-25&amp;#39;, &amp;#39;2020-07-26&amp;#39;, &amp;#39;2020-07-27&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-07-28&amp;#39;, &amp;#39;2020-07-29&amp;#39;, &amp;#39;2020-07-30&amp;#39;, &amp;#39;2020-07-31&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-01&amp;#39;, &amp;#39;2020-08-02&amp;#39;, &amp;#39;2020-08-03&amp;#39;, &amp;#39;2020-08-04&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-05&amp;#39;, &amp;#39;2020-08-06&amp;#39;, &amp;#39;2020-08-07&amp;#39;, &amp;#39;2020-08-08&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-09&amp;#39;, &amp;#39;2020-08-10&amp;#39;, &amp;#39;2020-08-11&amp;#39;, &amp;#39;2020-08-12&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-13&amp;#39;, &amp;#39;2020-08-14&amp;#39;, &amp;#39;2020-08-15&amp;#39;, &amp;#39;2020-08-16&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-17&amp;#39;, &amp;#39;2020-08-18&amp;#39;, &amp;#39;2020-08-19&amp;#39;, &amp;#39;2020-08-20&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-21&amp;#39;, &amp;#39;2020-08-22&amp;#39;, &amp;#39;2020-08-23&amp;#39;, &amp;#39;2020-08-24&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-25&amp;#39;, &amp;#39;2020-08-26&amp;#39;, &amp;#39;2020-08-27&amp;#39;, &amp;#39;2020-08-28&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-29&amp;#39;, &amp;#39;2020-08-30&amp;#39;, &amp;#39;2020-08-31&amp;#39;, &amp;#39;2020-09-01&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-02&amp;#39;, &amp;#39;2020-09-03&amp;#39;, &amp;#39;2020-09-04&amp;#39;, &amp;#39;2020-09-05&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-06&amp;#39;, &amp;#39;2020-09-07&amp;#39;, &amp;#39;2020-09-08&amp;#39;, &amp;#39;2020-09-09&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-10&amp;#39;, &amp;#39;2020-09-11&amp;#39;, &amp;#39;2020-09-12&amp;#39;, &amp;#39;2020-09-13&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-14&amp;#39;, &amp;#39;2020-09-15&amp;#39;, &amp;#39;2020-09-16&amp;#39;, &amp;#39;2020-09-17&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-18&amp;#39;, &amp;#39;2020-09-19&amp;#39;, &amp;#39;2020-09-20&amp;#39;, &amp;#39;2020-09-21&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-22&amp;#39;, &amp;#39;2020-09-23&amp;#39;, &amp;#39;2020-09-24&amp;#39;, &amp;#39;2020-09-25&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-26&amp;#39;, &amp;#39;2020-09-27&amp;#39;, &amp;#39;2020-09-28&amp;#39;, &amp;#39;2020-09-29&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-30&amp;#39;, &amp;#39;2020-10-01&amp;#39;, &amp;#39;2020-10-02&amp;#39;, &amp;#39;2020-10-03&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-10-04&amp;#39;, &amp;#39;2020-10-05&amp;#39;, &amp;#39;2020-10-06&amp;#39;, &amp;#39;2020-10-07&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-10-08&amp;#39;, &amp;#39;2020-10-09&amp;#39;, &amp;#39;2020-10-10&amp;#39;, &amp;#39;2020-10-11&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-10-12&amp;#39;, &amp;#39;2020-10-13&amp;#39;, &amp;#39;2020-10-14&amp;#39;, &amp;#39;2020-10-15&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-10-16&amp;#39;, &amp;#39;2020-10-17&amp;#39;, &amp;#39;2020-10-18&amp;#39;, &amp;#39;2020-10-19&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-10-20&amp;#39;, &amp;#39;2020-10-21&amp;#39;, &amp;#39;2020-10-22&amp;#39;, &amp;#39;2020-10-23&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-10-24&amp;#39;], dtype=object)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;There are no significant differences, nor in the syntax nor in the ouput.&lt;/p&gt;
&lt;p&gt;Note:&lt;/p&gt;
&lt;p&gt;We prefer to use this notation in order to prevent problems with columns with a dot inside.&lt;/p&gt;
&lt;h2 id="sorting-dataframe"&gt;Sorting dataframe&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tidyverse&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## ✓ ggplot2 3.3.2 ✓ purrr 0.3.4
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## ✓ tibble 3.0.4 ✓ dplyr 1.0.2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## ✓ tidyr 1.1.2 ✓ stringr 1.4.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## ✓ readr 1.3.1 ✓ forcats 0.5.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## x dplyr::filter() masks stats::filter()
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## x dplyr::lag() masks stats::lag()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;arrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r_df&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## date province country lat long type cases
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1 2020-01-22 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 2 2020-01-23 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3 2020-01-24 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 4 2020-01-25 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 5 2020-01-26 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 6 2020-01-27 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort_values&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;country&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## date province country lat long type cases
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 0 2020-01-22 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 147922 2020-01-26 NaN Afghanistan 33.93911 67.709953 recovered 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 147921 2020-01-25 NaN Afghanistan 33.93911 67.709953 recovered 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 147920 2020-01-24 NaN Afghanistan 33.93911 67.709953 recovered 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 147919 2020-01-23 NaN Afghanistan 33.93911 67.709953 recovered 0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="select-and-summarise"&gt;Select and summarise&lt;/h2&gt;
&lt;p&gt;Let&amp;rsquo;s pretend that we want to have a table displaying the top 10 countries with the most number of confirmed cases until today (2020-10-25).&lt;/p&gt;
&lt;h3 id="r-2"&gt;R&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;r_df&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# select(Country.Region, cases, type) %&amp;gt;% &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;confirmed&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;group_by&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;summarise&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cases&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;arrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;desc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;total&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## # A tibble: 5 x 2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## country total
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;lt;chr&amp;gt; &amp;lt;int&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1 US 8575177
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 2 India 7814682
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3 Brazil 5380635
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 4 Russia 1487260
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 5 France 1084659
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Or, even more succintly:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;r_df&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;confirmed&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cases&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sort&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;total&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## country total
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1 US 8575177
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 2 India 7814682
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3 Brazil 5380635
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 4 Russia 1487260
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 5 France 1084659
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="python-2"&gt;Python&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;loc&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;type&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;confirmed&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupby&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;country&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agg&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cases&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sum&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;columns&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cases&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;total&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort_values&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;total&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;ascending&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## total
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## country
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## US 8575177
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## India 7814682
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Brazil 5380635
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Russia 1487260
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## France 1084659
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This is something funny. &lt;code&gt;python&lt;/code&gt; takes pride in stating that is an elegant and easy to read syntax due to its strict indentation syntax. On the other hand, I have met several &lt;code&gt;python&lt;/code&gt; proponents mocking about &lt;code&gt;R&lt;/code&gt;&amp;rsquo;s code to be quite obscure and difficult to memorise. While I often share the same views (especially when dealing with base &lt;code&gt;R&lt;/code&gt;&amp;rsquo;s syntax), I particularly find &lt;code&gt;tidypverse&lt;/code&gt;&amp;rsquo;s syntax far easier to read and memorise than &lt;code&gt;pandas&lt;/code&gt;&amp;rsquo; . While the first makes use of the pipe operator ( &lt;code&gt;%&amp;gt;%&lt;/code&gt;) to chain commands while preventing typing unnecessary data, the latter requires to concatenate up to six different methods in a single line, which becomes too long to read (and thus, not liked very much by
)&lt;/p&gt;
&lt;h2 id="joins-and-calculations"&gt;Joins and calculations&lt;/h2&gt;
&lt;p&gt;But that&amp;rsquo;s not fair, we are comparing countries with very different number of population! If we are to compare them, we need to use relative values. For example, we would need to create a ranking based on the total number of cases per 1000 habitants.&lt;/p&gt;
&lt;p&gt;In order to do so, we will need to do the following steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Load a dataframe with population data per each country&lt;/li&gt;
&lt;li&gt;Add the population data by join our existing dataframes with the newly created one in the previous step (left join)&lt;/li&gt;
&lt;li&gt;Calculate relative number of confirmed cases like this: &lt;code&gt;\(confirmed~rel = \frac{confirmed}{population}\)&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="r-3"&gt;R&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Load population data.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;countries19&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="nf"&gt;read.csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;data/countries_pop19.csv&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;r_df&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;confirmed&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cases&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sort&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;confirmed&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Add population column.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;left_join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;countries19&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;by&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;c&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;country&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Location&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Calculate relative cases.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;mutate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;confirmed_rel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;confirmed&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;PopTotal&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Select certain columns only.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;confirmed&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;confirmed_rel&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Sort by confirmed_rel on descending order.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;arrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;desc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;confirmed_rel&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Display everything on a nice datatable.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## country confirmed confirmed_rel
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1 Andorra 4038 52.34231
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 2 Bahrain 79975 48.73066
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3 Qatar 130965 46.24354
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 4 Israel 309413 36.31875
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 5 Holy See 27 33.12883
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 6 Panama 128515 30.26417
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 7 Kuwait 120927 28.74371
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 8 Peru 883116 27.16406
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 9 Montenegro 16629 26.47981
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 10 Belgium 305409 26.46680
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="python-3"&gt;Python&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Load population data.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;countries19&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;data/countries_pop19.csv&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;loc&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;type&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;confirmed&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupby&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;country&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agg&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cases&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sum&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;columns&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cases&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;confirmed&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Join population information.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;countries19&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_index&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Location&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;on&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;country&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Calculate relative confirmed cases.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;assign&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;confirmed_rel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;confirmed&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;PopTotal&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;confirmed&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;confirmed_rel&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort_values&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;confirmed_rel&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;ascending&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## confirmed confirmed_rel
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## country
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Andorra 4038 52.342312
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Bahrain 79975 48.730657
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Qatar 130965 46.243544
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Israel 309413 36.318753
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Holy See 27 33.128834
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Panama 128515 30.264174
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Kuwait 120927 28.743710
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Peru 883116 27.164056
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Montenegro 16629 26.479805
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Belgium 305409 26.466797
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Before concluding, I have to admit that I have been using &lt;code&gt;tidyverse&lt;/code&gt; for several years, and I am very used to its syntax. Therefore, it is no wonder that I feel much more comfortable with it than with &lt;code&gt;pandas&lt;/code&gt;&amp;rsquo; . Being said that, I find the latter to be quite straightforward and relatively easy to use and memorise (I will need to check this post and
for reference). However, I have two main concerns about pandas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Compared to &lt;code&gt;R&lt;/code&gt;, which is more succinct, pandas requires to type many times the data frame&amp;rsquo;s name. This makes it more prone-error and slow to type, but also more difficult to read. If you want to avoid typing it as much, you need to chain a number of methods that result in very long lines, which makes it difficult to comment and it is, again, more difficult to read.&lt;/li&gt;
&lt;li&gt;I find it somewhat overwhelming that there are many ways to perform same task in &lt;code&gt;pandas&lt;/code&gt;. I believe Ted Petrou&amp;rsquo;s advice on learning the
is a good advice, as it makes things simpler.&lt;/li&gt;
&lt;li&gt;I miss the magritte&amp;rsquo;s pipe operator, but I guess I should change my mindset when using python.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Regarding &lt;code&gt;reticulate&lt;/code&gt;: I think it is very promising. While &lt;code&gt;jupyter notebooks&lt;/code&gt; can be used with different kernels such as &lt;code&gt;Julia&lt;/code&gt;, &lt;code&gt;python&lt;/code&gt; or &lt;code&gt;R&lt;/code&gt; (hence its name), there is no way to combine different kernels in the same notebook, at least that I am aware of. This means that only one language per notebook can be used. On the other hand, reticulate allows you to use different languages within the same document (a markdown file, which I prefer it over jupyter notebooks, by the way). Admittedly, I do not know if that is a common scenario, but it has proven to be very useful for a post like this one.&lt;/p&gt;
&lt;p&gt;Being said that, I admit that I expected that I could use one variable from &lt;code&gt;python&lt;/code&gt; and use it in &lt;code&gt;R&lt;/code&gt;, if that makes any sense at all. However, that&amp;rsquo;s not possible, as both languages are isolated, which I assume is the logical way (I assume is not straightforward at all to convert from one &lt;code&gt;python&lt;/code&gt; &lt;code&gt;list&lt;/code&gt; to an &lt;code&gt;R&lt;/code&gt; &lt;code&gt;vector&lt;/code&gt;, for example).&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;If there is something that I have fallen in love with &lt;code&gt;python&lt;/code&gt; so far is how convenient and easy are to create virtual environments from a simple &lt;code&gt;yaml&lt;/code&gt; file listing all the dependencies. This is something that would be very useful in &lt;code&gt;R&lt;/code&gt;, too and I should explore in the future: I know &lt;code&gt;packrat&lt;/code&gt; is there for this purpose, but it is not as fast and easy to deal with as &lt;code&gt;conda&lt;/code&gt; environments. On the other hand, if I am not mistaken, &lt;code&gt;conda&lt;/code&gt; also has &lt;code&gt;R&lt;/code&gt; libraries, so it may be possible to create conda environments for R, too.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Looking for the 'perfect' presentations' solution (for me)</title><link>https://carlos-hugoblox.netlify.app/en/blog/2020/02/looking-for-the-perfect-presentations-solution-for-me/</link><pubDate>Sat, 08 Feb 2020 00:00:00 +0000</pubDate><guid>https://carlos-hugoblox.netlify.app/en/blog/2020/02/looking-for-the-perfect-presentations-solution-for-me/</guid><description>&lt;!-- Tip: open with the why, then show results, code, and next steps. --&gt;
&lt;p&gt;During the last 10 years
in various contexts due to my job as a lecturer: either lectures for my students, conferences, workshops or even much more informal events, usually speaking about cities, commons,
or accessibility. I enjoy it because I love sharing knowledge with others but also because it is when I am preparing presentations (by summarising and highlighting the main topics or thinking of the storytelling) where I reflect and learn the most. It is for that reason that I am always looking for the right software that allows me to create appealing slides in a relatively fast way. In this post, I will be sharing some of the decisions I have made and the results I got regarding that matter.&lt;/p&gt;
&lt;p&gt;In order to prepare my presentations I have used and tested several presentation softwares and services, such as the classic &lt;strong&gt;Powerpoint&lt;/strong&gt;, &lt;strong&gt;LibreOffice Impress&lt;/strong&gt; (
), &lt;strong&gt;Google Slides&lt;/strong&gt; or, &lt;strong&gt;Prezi&lt;/strong&gt; (
,
). All of them are really good pieces of software and you can create great presentations with them. However, as time goes by, I have become more concerned with techno-politics and data autonomy on the one hand, and with efficiency on the other. As a result, I have come to outline the following list of requirements that my software of choice should have:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;It must allow me to &lt;strong&gt;own my (own) data&lt;/strong&gt; and to easily reuse and share it with others for any purpose.&lt;/li&gt;
&lt;li&gt;It should be &lt;strong&gt;opensource&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;It must allow &lt;strong&gt;offline editing and displaying&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;It must allow &lt;strong&gt;adding content without having to worry about formatting it&lt;/strong&gt;. Ideally, I should be able to write in plain text or markdown (or the like) which will later be formatted and converted into a final good-looking format. I want to focus on adding content very fast for scaffolding it: I want to edit it in plain text or markdown.&lt;/li&gt;
&lt;li&gt;It should &lt;strong&gt;look good&lt;/strong&gt; (uh!)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So, with those requirements in mind, I started to look for candidates that would fit in those selection criteria. After a while, I ended up with the following shortlist&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;
&lt;/strong&gt;: a conventional desktop software for presentations. It is opensource and multiplatform and it is part of the LibreOffice suite.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;
&lt;/strong&gt;: a presentation framework based on the power of &lt;code&gt;CSS3&lt;/code&gt; transforms and transitions in modern browsers and inspired by the idea behind prezi.com. It allows moving through an infinite canvas, like the former, but also in 3D!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;
&lt;/strong&gt;: an HTML presentation framework. Halfway between the two others, as it creates slides&amp;rsquo; decks that can be opened with any web browser with a two-axis&amp;rsquo; navigation (unlike regular presentation software that only allows linear navigation).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let&amp;rsquo;s see how the competitors behave regarding each of my requirements:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;       &lt;/th&gt;
&lt;th&gt;LO Impress&lt;/th&gt;
&lt;th&gt;impress.js&lt;/th&gt;
&lt;th&gt;reveal.js&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;# 1: Own data&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;# 2: FLOSS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;# 3: Offline&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes (ODP or PDF)&lt;/td&gt;
&lt;td&gt;Yes (Local html)&lt;/td&gt;
&lt;td&gt;Yes (Local html file or PDF)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;# 4: Format-hassle-free&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No (although using styles makes things easier and are almost as valid workaround)&lt;/td&gt;
&lt;td&gt;Yes, using
&lt;/td&gt;
&lt;td&gt;Yes (multiple approaches)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;# 5: Appealing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;With effort&lt;/td&gt;
&lt;td&gt;Somewhat&lt;/td&gt;
&lt;td&gt;Yes!&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;And now, let me further elaborate this summary table.&lt;/p&gt;
&lt;h2 id="libreoffice-impress"&gt;LibreOffice Impress&lt;/h2&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt=""
srcset="https://carlos-hugoblox.netlify.app/en/blog/2020/02/looking-for-the-perfect-presentations-solution-for-me/img/LO-Impress_hu_45a7b2c0c326db8c.webp 320w, https://carlos-hugoblox.netlify.app/en/blog/2020/02/looking-for-the-perfect-presentations-solution-for-me/img/LO-Impress_hu_e36143cbbf4f2ea.webp 480w, https://carlos-hugoblox.netlify.app/en/blog/2020/02/looking-for-the-perfect-presentations-solution-for-me/img/LO-Impress_hu_ad8ef013b076a995.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://carlos-hugoblox.netlify.app/en/blog/2020/02/looking-for-the-perfect-presentations-solution-for-me/img/LO-Impress_hu_45a7b2c0c326db8c.webp"
width="760"
height="413"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;LibreOffice is a traditional desktop software that could be considered as the opensource replacement for Powerpoint. It creates regular slides&amp;rsquo; deck and offers several templates with designs and layouts. Although I acknowledge that from LO foundation have put an effort into designing new templates and the stock defaults have improved dramatically, I cannot but help to consider that they still look somewhat oldies/traditional. However, I also admit that this is a completely subjective matter and can be fixed by either
or by creating our own. After all, and to be completely honest, I have done so for many years.&lt;/p&gt;
&lt;p&gt;Since it is a regular desktop software that means that it has to be installed in your computer if you want to edit your presentation. But if you do not have it installed, you can use any of the many softwares capable of reading ODP format, which is an open ISO standard or you can bring your own
that can be run from a USB stick or the like without installing it in the computer. But if you only want to visualize the presentation, you can always export to PDF using the built-in feature (just one click), which is always an insurance that your presentation will always look the way you wanted it to be (custom fonts, I am looking at you!).&lt;/p&gt;
&lt;script async class="speakerdeck-embed" data-id="b62594fe9afc44fba4aa8518440bfd31" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;
&lt;p&gt;In order to add content you need to create text boxes, insert images, tables&amp;hellip; add transitions, slides&amp;hellip; using its GUI. This may seem a good thing, as it allows you to easily align objects and modify them on the fly. However, in my experience I found that approach to be very time consuming, as it often requires resizing objects, changing text-sizes, aligning, changing image properties&amp;hellip; The good news is that LibreOffice&amp;rsquo;s styles are a really powerful tool when used correctly. Styles allow customizing anything we want, starting from layouts but also paragraph styles, lists, images, tables&amp;hellip; It may take some time to customize every style, but once you&amp;rsquo;re done, it pays the effort: all your objects will look consistently and exactly the way you want without doing anything else. And if you ever change your mind&amp;hellip; they will update automatically, preserving their consistency. Great, isn&amp;rsquo;t it?!&lt;/p&gt;
&lt;p&gt;Another inconvenient for me is that it is not easy to work with media other than images (like videos, websites, maps&amp;hellip;), especially if they are not stored locally or require some interaction.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;#x2705; Ease of use&lt;/li&gt;
&lt;li&gt;&amp;#x2705; Compatibility (in terms of format an collaboration)&lt;/li&gt;
&lt;li&gt;&amp;#x2705; Customization&lt;/li&gt;
&lt;li&gt;&amp;#x2705; Risk-free: export to PDF for your peace of mind&lt;/li&gt;
&lt;li&gt;&amp;#x2705; Presenter&amp;rsquo;s console&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;#x274c; Content editing is time consuming&lt;/li&gt;
&lt;li&gt;&amp;#x274c; No GIFs! or other interactive media&lt;/li&gt;
&lt;li&gt;&amp;#x274c; Outdated (default) appearance from the 90s&lt;/li&gt;
&lt;li&gt;&amp;#x274c; Only linear presentations&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="impressjs"&gt;Impress.js&lt;/h2&gt;
&lt;embed src="http://regebro.github.io/hovercraft/#/step-1" width="100%" height="400px"&gt;
&lt;figcaption&gt;Clic on the text and use arrows to browse the presentation&lt;/figcaption&gt;
&lt;p&gt;I have to admit that I love Prezi because, unlike all the others, instead of working with independent slides that are displayed linearly, you can work with an infinite canvas that works at different scales at the same time. This allows plenty of completely different possibilities: you can literally go from the big picture to the smallest of the details. Or even the other way round: you can start with details that slowly conform a broader reality. Or, if you want, you can also use traditional slides. Everything seemed perfect, except that it is not opensource and all your data is locked in a closed platform and does not comply with any of my requirements.&lt;/p&gt;
&lt;iframe id="iframe_container" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="" allow="autoplay; fullscreen" width="100%" height="400" src="https://prezi.com/embed/m9hb9o591b-j/?bgcolor=ffffff&amp;amp;lock_to_path=0&amp;amp;autoplay=0&amp;amp;autohide_ctrls=0&amp;amp;landing_data=bHVZZmNaNDBIWnNjdEVENDRhZDFNZGNIUE43MHdLNWpsdFJLb2ZHanI0bEpjR3UySWRuOHp0SXAvQXRndVlLWGVRPT0&amp;amp;landing_sign=9rA5fXrCMPrIMB2mYMdsxCG93LRx1IyFuWXG7qFo_bk"&gt;&lt;/iframe&gt;
&lt;figcaption&gt;A sample presentation I did for Digital Tools' course at Universidad San Jorge using Prezi&lt;/figcaption&gt;
&lt;p&gt;Admittedly, I am so in love with it that I did my best looking for a good replacement. After discarding
I discovered
. Impress.js is a framework that benefits from Javascript and CSS3 properties and transitions that can virtually mimic Prezi in everything (plus the addition of being able to add 3D transitions and transformations). Since it produces HTML files, they can be opened by any web browser and can include any type of media (even other embedded websites!). Also, it means that anything can be tweaked by using CSS. However, writing HTML is far from being fast, as it requires a lot of tags that need to be opened and closed.&lt;/p&gt;
&lt;p&gt;The good news is that there is
! Hovercraft lets you write your content in
, which is very similar to markdown and, hence, very fast to write and read and it converts your text into a fully functional impress.js&amp;rsquo; website. It really has the good features of the two worlds, as it combines ease of editing with impressive results.&lt;/p&gt;
&lt;p&gt;The only drawback is that it is not easy to create custom navigations (eg. following a path) nor to tweak the default (and basic) CSS styles&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;#x2705; Non-linear presentations&lt;/li&gt;
&lt;li&gt;&amp;#x2705; Easy to add content by writing RST files&lt;/li&gt;
&lt;li&gt;&amp;#x2705; Can be displayed in any web browser&lt;/li&gt;
&lt;li&gt;&amp;#x2705; Presenter&amp;rsquo;s console&lt;/li&gt;
&lt;li&gt;&amp;#x2705; Accepts any type of media&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;#x274c; Basic CSS styles&lt;/li&gt;
&lt;li&gt;&amp;#x274c; Difficult to edit paths&lt;/li&gt;
&lt;li&gt;&amp;#x274c; You need to have hovercraft installed in your computer to create the output files&lt;/li&gt;
&lt;li&gt;&amp;#x274c; I have not succeeded in achieving the same results as with Prezi (in terms of navigation, expressiveness and story-telling)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="revealjs"&gt;Reveal.js&lt;/h2&gt;
&lt;p&gt;And here it comes my currently preferred software for creating my presentations: &lt;code&gt;Reveal.js&lt;/code&gt;. Like &lt;code&gt;Impress.js&lt;/code&gt; it is a framework that creates an &lt;code&gt;html&lt;/code&gt; file (with some javascript to do its magic -hence the &lt;code&gt;.js&lt;/code&gt; suffix) that can be displayed in any device with a web browser. Also, since it follows HTML and CSS standards, and it is responsive by default, this means that can be seen in any computer, tablet or smartphone, with minor differences&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Another feature I like a lot about &lt;code&gt;reveal.js&lt;/code&gt; is that whereas it does not allow to design custom and complex paths like &lt;code&gt;impress.js&lt;/code&gt; it allows using nested slides, which provides two-axis of displacement: you can move to the right-left like in regular slides&amp;rsquo; decks and also top-down. This means that, when used wisely and consistently, it provides plenty of visual resources, which is very useful for communication purposes (at least for all of those who, like me, have a very visual memory).&lt;/p&gt;
&lt;p&gt;Also, since it is relatively new, and it is a very popular opensource project with many contributors&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt; I find their slides to be very appealing and contemporary. And talking about its appearance, reveal.js can be customized in several ways: either changing the transitions between the slides and/or choosing from one of the several default themes (all of which look quite good) or easily customize them (or even create our own) by using &lt;code&gt;.scss&lt;/code&gt; language, as I did below:&lt;/p&gt;
&lt;embed src="https://ccamara.github.io/slides/02-Greek-roman-cities" width="100%" height="400px"&gt;
&lt;figcaption&gt;A presentation I made using reveal.js for the Urban Studies I course at Universidad San Jorge. You can see it [fullscreen here](https://ccamara.github.io/slides/02-Greek-roman-cities) (which is where it shines!)&lt;/figcaption&gt;
&lt;p&gt;I know what you may be thinking now: &lt;em&gt;&amp;ldquo;But hey! you&amp;rsquo;ve talked about &lt;code&gt;.html&lt;/code&gt;, &lt;code&gt;.css&lt;/code&gt;, &lt;code&gt;.js&lt;/code&gt; and &lt;code&gt;.scss&lt;/code&gt;, which are languages that are quite verbose and therefore it does not comply with your requirement #4, as writing a presentation in &lt;code&gt;.html&lt;/code&gt; can be really cumbersome.&amp;rdquo;&lt;/em&gt; You&amp;rsquo;re right. And wrong. While this is true by default, the good news is that there are several ways to write in markdown, a language that I have come to love due to its simplicity, speed and versatility (in fact, this whole website is written in markdown). But since there are several ways to do it and this has resulted in an already long post, I will talk about it in an upcoming one.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;#x2705; Can be displayed in any web browser&lt;/li&gt;
&lt;li&gt;&amp;#x2705; Looks great (nice default SCSS templates, which can be easily extended)&lt;/li&gt;
&lt;li&gt;&amp;#x2705; Presenter&amp;rsquo;s console (you know, with a timer, presenter notes and next-slide preview)&lt;/li&gt;
&lt;li&gt;&amp;#x2705; Accepts any type of media&lt;/li&gt;
&lt;li&gt;&amp;#x2705; Can create sections and sub-sections&lt;/li&gt;
&lt;li&gt;&amp;#x2705; Easy to add content by writing in markdown plain text (there are many approaches to generate the HTML files from plain text -more on that in an upcoming blog post)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;#x274c; Not for everyone (may not be ideal if you are to collaborate with other people not familiar with markdown, html, css, git&amp;hellip;) (but hey! there is also an
as a freemium service)&lt;/li&gt;
&lt;li&gt;&amp;#x274c; Requires some time to set up&lt;/li&gt;
&lt;li&gt;&amp;#x274c; May not look the same in every device&lt;/li&gt;
&lt;li&gt;&amp;#x274c; PDF export requires Chrome/Chromium, and still doesn&amp;rsquo;t look as nice as the original&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;I am also aware of the existence of other solutions that may meet my requirements, but I haven&amp;rsquo;t had the time to try them out, such as
or
. If you happen to know more that may fit on my requirements, please feel free to share them with me in the comments.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;You can see some of the attempts I made on
.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;The truth is that depending on the screen resolution and the use of custom fonts, the result may differ slightly (or greatly).&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;At the time of writing this post, 255 different people have contributed to reveal.js in more than 2,400 different commits. Source:
&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Digital Privacy Workshop: a chronicle</title><link>https://carlos-hugoblox.netlify.app/en/blog/2020/02/digital-privacy-workshop-a-chronicle/</link><pubDate>Sat, 01 Feb 2020 00:00:00 +0000</pubDate><guid>https://carlos-hugoblox.netlify.app/en/blog/2020/02/digital-privacy-workshop-a-chronicle/</guid><description>&lt;!-- Tip: open with the why, then show results, code, and next steps. --&gt;
&lt;p&gt;Last Friday, I attended to a workshop aimed to discuss, learn and raise awareness on our Digital Privacy, organized by
, a group of “feminist cybersecurity advocates and researchers seeking to engage with groups excluded from tech”. I didn&amp;rsquo;t know much about the event nor the organizers when I signed up, but I was sure I would enjoy it. As an opensource advocate who is also concerned about how our private data can be (and it is) used by companies and governments, I was seduced by the topic and, above all, by their feminist approach as well as their hybrid profile, halfway between activism and academia. These two topics would soon be made evident.&lt;/p&gt;
&lt;p&gt;We were first welcomed by a group of very friendly people who handed out an information sheet, introducing themselves and the event, and a participant agreement which we had to return signed if we wanted to take part into the research they are conducting. Because, yes, as they (sorry for not remembering your names, guys) soon explained at the welcome speech, the workshop was also part of an action-research&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; project within the
, funded by a research grant from UK Research &amp;amp; Innovation. As they kindly and thoroughly explained, this meant that we could opt to contribute to the research by sharing our opinions and data. I was positively surprised on their feminist approach (as they stated it) in dealing with that, not only they were very transparent, but they also offered options for those willing to take part into the workshop while not taking part into the research, which I believe is a very coherent behaviour due to the topic (after all they would be dealing with private data). Kudos for them!&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt=""
srcset="https://carlos-hugoblox.netlify.app/en/blog/2020/02/digital-privacy-workshop-a-chronicle/poster_hu_9277d573edf0b553.webp 320w, https://carlos-hugoblox.netlify.app/en/blog/2020/02/digital-privacy-workshop-a-chronicle/poster_hu_10d3840743e6def0.webp 480w, https://carlos-hugoblox.netlify.app/en/blog/2020/02/digital-privacy-workshop-a-chronicle/poster_hu_72b80b273b273a22.webp 587w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://carlos-hugoblox.netlify.app/en/blog/2020/02/digital-privacy-workshop-a-chronicle/poster_hu_9277d573edf0b553.webp"
width="587"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Soon after the introduction, we participated in an open discussion through a questionnaire we could interact with in real-time through
, in which we assessed our demographics (we were around 20 people from all ages -more on gender below), motivations, prior knowledge on the topic and concerns on digital privacy. This last question led to the next phase, in which we divided into smaller groups, where an IT person took note of our interventions and answered the questions that arose, to further discuss our fears and interests. After this first round of discussion, we were introduced to the
, a really thorough yet accessible guide written by Noah Kelley from
which introduces the foundations of key areas and provides a series of free/libre tools grouped around the following topics: &lt;em&gt;Anonymity&lt;/em&gt;, &lt;em&gt;Hacking&lt;/em&gt;, &lt;em&gt;Data&lt;/em&gt;, &lt;em&gt;Phones&lt;/em&gt;, and &lt;em&gt;Social&lt;/em&gt;. At a personal level it helped me to understand the insides of tools that I was already using, such a
, tools I knew existed, such as
, or simply learnt of the existence of new and intersting ones such as
.&lt;/p&gt;
&lt;p&gt;The last part of the workshop consisted of several focus groups (some of which -for those who agreed to take part in the research- were recorded) in which a researcher introduced several topics (like how do we feel regarding cybersecurity, how should be the best app/service for us? ) which we discussed between us and in turn opened new related topics such as security and gender and age, the role of governments and companies&amp;hellip; I really enjoyed this part, as thorough the questions and answers we had profound discussions that I had honestly never thought about before so specifically. From time to time, we made short breaks to share some conclusions with the other groups and what people had written on the screen through the menti app. To make things even better, pizza was served for us all!&lt;/p&gt;
&lt;p&gt;So that&amp;rsquo;s grosso modo, how a group of around 20 people spent 3 hours on a Friday evening talking, learning and sharing on cybersecurity, and data privacy and, most of all, having a great time together. As I said before, I was certain that I would enjoy the workshop, but I have to admit that it was completely different from what I had expected and, as a result, it was much better than I thought. At this point, I would like to thank Reconfigure for the organization of the event and wish them great success with their research. I am willing to know more about it, about them and about their results (and will be also willing to take part in it if there is a chance).&lt;/p&gt;
&lt;p&gt;Some random thoughts before finishing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;All the attendees (except me) were females&lt;/strong&gt;, a demographic which is completely reverse to any other event on technology or cybersecurity that I have previously attended to. While I liked that, I could not help but wonder if the fact that the event was labelled as “feminist” not only encouraged women to come but also discouraged men to do so. If that was true, that&amp;rsquo;s definitely something we (men) need to address to understand that feminism is not something alien to us but also concerns us all.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The organizers made a great effort on creating a safe-space&lt;/strong&gt; where nobody could feel threatened or treated with contempt. In that regard, I found their approach on the topic of cybersecurity to be very appropriate given their context, goals and audience: instead of having an expert lecturing us on cybersecurity issues, we had a more peer-to-peer experience in which we all learnt from the others as equals. This is also novel in terms that usually cybersecurity issues are treated as common-sense rules which are anything but common and users are blamed by default for any “wrong” behaviour that can lead to security breaches.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The place&lt;/strong&gt; (Oxford&amp;rsquo;s
) provided just the right atmosphere for such an event.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The pizzas&lt;/strong&gt; were delicious! (probably that contributed to the fact that they were soon devoured).&lt;/li&gt;
&lt;li&gt;At a personal level, I also enjoyed the fact that my partner also attended to the workshop (in fact, it was her who told me about the workshop, so thank you for doing so!) and since she was in another group, we kept the conversation even after we left the workshop. This means not only that we both enjoyed it but that Reconfigure made a great job with their workshop, so thanks again for that!&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;I didn&amp;rsquo;t know about it when I signed up, and this was a very positive surprise. Since I have had the opportunity to design (and to take part into) an action-research project on urban mobility and disabilities (you can read about it
), I considered very positive to learn from other fellow colleagues who come from a very different context.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>A brief note on maps and feminism</title><link>https://carlos-hugoblox.netlify.app/en/blog/2019/03/a-brief-note-on-maps-and-feminism/</link><pubDate>Fri, 08 Mar 2019 00:00:00 +0000</pubDate><guid>https://carlos-hugoblox.netlify.app/en/blog/2019/03/a-brief-note-on-maps-and-feminism/</guid><description>&lt;!-- Tip: open with the why, then show results, code, and next steps. --&gt;
&lt;p&gt;As those who know me well know,
: I like to see them, I like to make them and I like to use them to give answers to complex questions. I like the fact that you can create maps about almost anything. But surely, what I like most about them is that &lt;strong&gt;they are unique tools to show unnoticed realities that help to understand all types of phenomena&lt;/strong&gt;. Some common (and, to some extent, hackneyed) examples of such maps are those used to explain the spread of diseases&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;, the
, social inequality, or
. However, we can map any topic we can think of, and there are examples no less well known but important (on the contrary!), &lt;strong&gt;such as gender inequality&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;That is why today,
, I wanted to highlight the excellent work they have done at
&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;, with the project
.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Streets devoted to men and women in Barcelona. Source: La Calle de las mujeres, a project by Geochicas"
srcset="https://carlos-hugoblox.netlify.app/es/blog/2019/03/un-breve-apunte-sobre-mapas-y-feminismo/featured_hu_85dbeb3e78a29a99.webp 320w, https://carlos-hugoblox.netlify.app/es/blog/2019/03/un-breve-apunte-sobre-mapas-y-feminismo/featured_hu_8c238f7e8d6a134f.webp 480w, https://carlos-hugoblox.netlify.app/es/blog/2019/03/un-breve-apunte-sobre-mapas-y-feminismo/featured_hu_ee2cc872f9442873.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://carlos-hugoblox.netlify.app/es/blog/2019/03/un-breve-apunte-sobre-mapas-y-feminismo/featured_hu_85dbeb3e78a29a99.webp"
width="760"
height="376"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Women&amp;rsquo;s streets&lt;/em&gt; is paradigmatic because it makes a novel and necessary reading of an everyday reality for most of us who live in urban environments: the street nomenclator. By identifying the streets of some cities in Spain and Latin America whose names refer to women, and comparing it with the streets whose name refers to a men, they show that there is a great biass in the representation of women in public space. This is by no means trivial: since street names are often a way of celebrating (and recounting) the culture of a place by assigning names to influential and notable people or landmarks that have marked history, &lt;strong&gt;such unequal gender representation evidences that the importance of women is systematically silenced, which contributes to building a story in which women have barely had an important role (or worthy of public recognition) in the historical and cultural development of our society&lt;/strong&gt;, which is clearly incorrect.&lt;/p&gt;
&lt;div class="gallery" style="display: flow-root"&gt;
&lt;a data-fancybox="gallery-gallery" href="https://carlos-hugoblox.netlify.app/es/blog/2019/03/un-breve-apunte-sobre-mapas-y-feminismo/gallery/stats-barcelona.png" data-caption="Barcelona: Only 16% of the streets in Barcelona are named after a woman, as opposed to 83% wich are named after a man."&gt;
&lt;div style="background-image:url(/es/blog/2019/03/un-breve-apunte-sobre-mapas-y-feminismo/gallery/stats-barcelona_hu_7709e1788fb0d5d.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-gallery" href="https://carlos-hugoblox.netlify.app/es/blog/2019/03/un-breve-apunte-sobre-mapas-y-feminismo/gallery/stats-bsaires.png" data-caption="Buenos Aires: Only 6% of the streets are devoted to a woman."&gt;
&lt;div style="background-image:url(/es/blog/2019/03/un-breve-apunte-sobre-mapas-y-feminismo/gallery/stats-bsaires_hu_bebb048d2c6f8d3c.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-gallery" href="https://carlos-hugoblox.netlify.app/es/blog/2019/03/un-breve-apunte-sobre-mapas-y-feminismo/gallery/stats-cmexico.png" &gt;
&lt;div style="background-image:url(/es/blog/2019/03/un-breve-apunte-sobre-mapas-y-feminismo/gallery/stats-cmexico_hu_b8f98c486c6a10b7.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-gallery" href="https://carlos-hugoblox.netlify.app/es/blog/2019/03/un-breve-apunte-sobre-mapas-y-feminismo/gallery/stats-cochabamba.png" &gt;
&lt;div style="background-image:url(/es/blog/2019/03/un-breve-apunte-sobre-mapas-y-feminismo/gallery/stats-cochabamba_hu_f3874f82afdabcac.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-gallery" href="https://carlos-hugoblox.netlify.app/es/blog/2019/03/un-breve-apunte-sobre-mapas-y-feminismo/gallery/stats-la-habana.png" &gt;
&lt;div style="background-image:url(/es/blog/2019/03/un-breve-apunte-sobre-mapas-y-feminismo/gallery/stats-la-habana_hu_463f0e2ae3227b18.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Another aspect of the project is to show how many of the women after whom a street is named have an article in the wikipedia (without evaluating its content). This also evidences that there is yet another gender gap which is not just a local matter of a few cities.&lt;/p&gt;
&lt;p&gt;On the other hand, I cannot help but pointing out another issue that I love about the project (and for which I congratulate
, who has led its development), and it is its open development: since
, it is relatively easy to expand the information to other cities in the world, making the project even more useful, if possible.&lt;/p&gt;
&lt;iframe width="100%" height="300px" frameBorder="0" allowfullscreen src="https://umap.openstreetmap.fr/ca/map/mapa-global-internaciona-feminista-8m-2019_298894?scaleControl=false&amp;miniMap=false&amp;scrollWheelZoom=false&amp;zoomControl=true&amp;allowEdit=false&amp;moreControl=true&amp;searchControl=null&amp;tilelayersControl=null&amp;embedControl=null&amp;datalayersControl=true&amp;onLoadPanel=undefined&amp;captionBar=false"&gt;&lt;/iframe&gt;
&lt;p&gt;Other examples of maps that have dealt (although from other approaches) with the gender perspective are the
(also made by geochicas), or the maps of feminist entities that exist in some cities
or those that are collected in books such as
by Joni Seager.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/es/blog/2019/03/un-breve-apunte-sobre-mapas-y-feminismo/unequal-opportunities.png"
alt="Unequal opportunities. From Myriad Edificions and Seager, J (2003. The Penguin Atlas of Women in the World)"&gt;&lt;figcaption&gt;
&lt;p&gt;Unequal opportunities. From Myriad Edificions and Seager, J (2003. The Penguin Atlas of Women in the World)&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Another similar, yet different, project linked to maps and gender perspective is the initiative promoted by Esther Mingot (a well-known mapper within the community of OSM Spain under the pseudonym of [Lanxana] (
)) to
, out of several open datasources from Barcelona City Council and Generalitat de Catalunya. As a result, OSM map will become more inclusive and useful for those collectives.&lt;/p&gt;
&lt;p&gt;All those examples outline another important feature about maps: maps can also be social transformation tools! (and I love it!)&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;It is famous the example of the map that Dr. John Snow made in 1854 to understand the spread of cholera in London. That map allowed to deduce that cholera was infected by polluted water rather than by air, as was thought at that time (For more information on the map, please read [this text by John Mackenzie] (
) in which he explains how the map works and how to reproduce it with current GIS tools).&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Geochicas is a group of OpenStreetMap women mappers aimed at closing the gender gap in that community.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>'Accessible Zaragoza' at Pint of Science 2018</title><link>https://carlos-hugoblox.netlify.app/en/blog/2018/05/accessible-zaragoza-at-pint-of-science-2018/</link><pubDate>Wed, 16 May 2018 00:00:00 +0000</pubDate><guid>https://carlos-hugoblox.netlify.app/en/blog/2018/05/accessible-zaragoza-at-pint-of-science-2018/</guid><description>&lt;!-- Tip: open with the why, then show results, code, and next steps. --&gt;
&lt;p&gt;Let me propose an exercise: close your eyes for a moment and imagine a person devoted to science and research. Almost certainly, you may have visualized a middle-aged man in a white robe and glasses who is doing &amp;ldquo;things&amp;rdquo; in a laboratory or in front of a computer, probably to solve a problem related to health, the environment or making a process more efficient. If I have &amp;ldquo;read your mind&amp;rdquo; it is not because you are a predictable person, but because that is (with small variations) the most frequent image about scientists.
Unfortunately, this view reflects some prejudices (such as gender&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; and thinking that sciences are always applied sciences&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; and limited to what is usually known as &amp;ldquo;natural sciences&amp;rdquo;&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;) and also evidence that the tasks that a scientific person does are incomprehensible to most people and, therefore, are a complete mystery.&lt;/p&gt;
&lt;p&gt;It is precisely to bridge this disconnect between society and science that the initiative &lt;em&gt;
&lt;/em&gt; was born in 2012. Ever since, it has spread from the United Kingdom to 21 countries on all continents (except
). The idea behind &lt;em&gt;Pint of Science&lt;/em&gt; is as simple as it is effective: to convert pubs into meeting points between science and society. To this end, for three days in a row, a festival is organised in several pubs from different cities and countries in which scientists explain their work to the audience for about 15 minutes, followed by a debate watered by the omnipresent beers that populate the majority of pubs worldwide (hence its name). There is also the funny case that some of the people attending the festival are totally unaware of the existence of the festival.&lt;/p&gt;
&lt;p&gt;Why am I telling you all this? Well, because this year I participated as a speaker in the Zaragoza edition together with my colleague and friend Miguel Sevilla-Callejo to tell about the project of which
,
, with the talk we titled &lt;strong&gt;&amp;ldquo;About chairs, chairs, kerbs and traffic lights. #zaccessibility for improving the mobility of people with functional diversity&amp;rdquo;&lt;/strong&gt; that you can see
.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="es" dir="ltr"&gt;ESTA TARDE 19h en &lt;a href="https://x.com/harlem_zaragoza?ref_src=twsrc%5Etfw"&gt;@harlem_zaragoza&lt;/a&gt; no te pierdas sesiones sobre &lt;a href="https://x.com/hashtag/geograf%C3%ADa?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#geografía&lt;/a&gt; &lt;a href="https://x.com/hashtag/mapas?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#mapas&lt;/a&gt; &lt;a href="https://x.com/hashtag/accesibilidad?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#accesibilidad&lt;/a&gt; &lt;a href="https://x.com/hashtag/diversidadfuncional?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#diversidadfuncional&lt;/a&gt;. &lt;a href="https://x.com/carlescamara?ref_src=twsrc%5Etfw"&gt;@carlescamara&lt;/a&gt;&lt;br&gt;y &lt;a href="https://x.com/msevilla00?ref_src=twsrc%5Etfw"&gt;@msevilla00&lt;/a&gt; hablarán sobre &lt;a href="https://x.com/hashtag/zaccesibilidad?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#zaccesibilidad&lt;/a&gt; &lt;a href="https://x.com/hashtag/Pint18ES?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#Pint18ES&lt;/a&gt; &lt;a href="https://x.com/hashtag/Pint18ZGZ?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#Pint18ZGZ&lt;/a&gt; &lt;a href="https://x.com/pintofscienceES?ref_src=twsrc%5Etfw"&gt;@pintofscienceES&lt;/a&gt; cc &lt;a href="https://x.com/ZGZActiva?ref_src=twsrc%5Etfw"&gt;@ZGZActiva&lt;/a&gt; &lt;a href="https://x.com/Geografia_UZ?ref_src=twsrc%5Etfw"&gt;@Geografia_UZ&lt;/a&gt; &lt;a href="https://x.com/ArquitecturaUSJ?ref_src=twsrc%5Etfw"&gt;@ArquitecturaUSJ&lt;/a&gt; &lt;a href="https://t.co/aAV4WG9Rq0"&gt;pic.twitter.com/aAV4WG9Rq0&lt;/a&gt;&lt;/p&gt;&amp;mdash; Mapeado Colaborativo / Geoinquietos Zaragoza (@MapColabora) &lt;a href="https://x.com/MapColabora/status/995937248876036096?ref_src=twsrc%5Etfw"&gt;May 14, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;p&gt;Our talk was one of the three of the session titled &amp;ldquo;
&amp;rdquo; that took place on Monday, May 14 at the
and in which also participated
, from the Colegio de Geógrafos de Aragón, and
, member of Aragonese parliament.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;pre&gt;&lt;code&gt;Lujazo de ponentes en el Harlem! #Pint18ES #pint18zgz #ParalaPoSteridad Y mañana más, a partir de las 19.00! pic.twitter.com/0n3Sve6GEo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;— Silvi 🤷🤦🏽‍♀️ (@sylviezgz) May 14, 2018&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Rafa talked about the work that geographers do and the importance of geography to understand and explain phenomena of all kinds and that have to do with how we perceive and relate to the world and its physical environment, using an endless number of curious maps.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;pre&gt;&lt;code&gt;Queréis saber para qué sirve la geografía en nuestro día a día? Pues pasaros por el Harlem, pero daros prisa, que ya ha empezado! #Pint18ES #pint18zgz #ParalaPoSteridad pic.twitter.com/YkdEx0zc8v
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;— Silvi 🤷🤦🏽‍♀️ (@sylviezgz) May 14, 2018&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In his entertaining talk entitled &lt;em&gt;&amp;ldquo;Nobody&amp;rsquo;s perfect: I have no arms&amp;rdquo;&lt;/em&gt;, Raúl recounted his personal experience in order to raise awareness of how the daily life of a person with a disability can be but, above all, in order to break taboos about disability. All of that with a great mixture of humour, rawness and tenderness.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;pre&gt;&lt;code&gt;En la segunda charla en el Harlem, @viajeroaitaca_ nos ha hablado sobre &amp;quot;discapacidad, quirófanos y demás cosas divertidas&amp;quot; #Pint18ES #pint18zgz #ParalaPoSteridad pic.twitter.com/15cS3OqbKH
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;— Silvi 🤷🤦🏽‍♀️ (@sylviezgz) May 14, 2018&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Finally, Miguel and I explained the need for a map like the one we are developing on urban accessibility and the opportunity to do it collaboratively using
not only to denounce, but to co-responsibility of citizenship and contribute to improving the autonomy of people with functional diversity.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="es" dir="ltr"&gt;Mapeado colaborativo en la sesión de retrones y satélites 🛰 &lt;a href="https://x.com/hashtag/pint18ZGZ?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#pint18ZGZ&lt;/a&gt; Aúpa con esta gran iniciativa de &lt;a href="https://x.com/MapColabora?ref_src=twsrc%5Etfw"&gt;@MapColabora&lt;/a&gt; by &lt;a href="https://x.com/carlescamara?ref_src=twsrc%5Etfw"&gt;@carlescamara&lt;/a&gt; &lt;a href="https://x.com/msevilla00?ref_src=twsrc%5Etfw"&gt;@msevilla00&lt;/a&gt; et al. &lt;a href="https://t.co/PRkmgosF6x"&gt;pic.twitter.com/PRkmgosF6x&lt;/a&gt;&lt;/p&gt;&amp;mdash; Rafa 🌐 (@Galactero) &lt;a href="https://x.com/Galactero/status/996097770158219267?ref_src=twsrc%5Etfw"&gt;May 14, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;pre&gt;&lt;code&gt;Buenas noticias! Todos podemos mapear! Nos lo cuentan @carlescamara y @msevilla00 de @MapColabora en el Harlem #Pint18ES #pint18zgz #ParalaPoSteridad pic.twitter.com/IEgtlYQYcb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;— Silvi 🤷🤦🏽‍♀️ (@sylviezgz) May 14, 2018&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The experience was unbeatable, both for the interesting and complementary previous talks, and for the organization of the event through the association that organizes &lt;em&gt;Pint of science&lt;/em&gt; (thanks in particular to Carlos, Juan and Silvia for their work), but especially for the reception of the public, which lent itself to an interesting debate that lasted until the closing time of the bar.&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;According to the report &amp;ldquo;
&amp;rdquo; elaborated in 2015 by the Ministry of Economy, Industry and Competitiveness, the number of women researchers was quantified, for that year, in 38% of the total number of researchers. That figure shows that women are not an exception in research, although it is true that there is still a lot of room for improvement (especially if we asess the positions that these researchers occupy, but that is out of the scope of this text) and therefore campaigns such as those that are becoming habitual to attract women towards careers of the calls
(Science, Technology, Enginery and Mathematics).&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Applied sciences are those that are oriented to apply scientific knowledge of one or more specialized areas of science to solve practical problems. Given their &amp;ldquo;applicability,&amp;rdquo; that is, their ability to solve very specific problems, they tend to be easier to explain and understand and, therefore, tend to receive greater attention from society, as well as more funding. In contrast to this type of science is the basic science, that is to say that scientific research that is carried out to increase knowledge, without having an immediate practical purpose. Since this type of research does not offer immediate (social, economic &amp;hellip;) benefits, it is usually considered unnecessary because it is a mere exercise in curiosity. The reality, however, is that the benefits of this type of research are obtained in the longer term, since it is what allows the creation of new knowledge on which applied science can now be based.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;It is often forgotten that, in addition to natural sciences, there are social sciences, aimed at studying society and human behavior, which include disciplines as varied as sociology, anthropology, political science, geography, history .. and even those related to language such as linguistics (which often do not relate at all to research), amongst others.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>'Accessible Zaragoza' is now on TV</title><link>https://carlos-hugoblox.netlify.app/en/blog/2018/02/accessible-zaragoza-is-now-on-tv/</link><pubDate>Wed, 21 Feb 2018 00:00:00 +0000</pubDate><guid>https://carlos-hugoblox.netlify.app/en/blog/2018/02/accessible-zaragoza-is-now-on-tv/</guid><description>&lt;!-- Tip: open with the why, then show results, code, and next steps. --&gt;
&lt;p&gt;During the last few years, I have hardly shown any activity on this website. This is because they have coincided with periods of considerable intensity, especially in terms of work. I already wrote about
, and today I would like to write about another other one:
, the collaborative mapping project of aspects related to urban mobility and disability that I devised in the academic year 2015-16 within a chair at the Universidad San Jorge and in which I have been working as a principal investigator since then.&lt;/p&gt;
&lt;p&gt;For some time I have been looking forward to share it here because it is a project in which I am putting a lot of enthusiasm and effort and which, on the other hand, is giving me many joys. One of them was the
, but the most recent has been to have participated in the program of scientific dissemination of Aragón TV &amp;ldquo;
&amp;rdquo;, which was broadcasted last Saturday, and in which I had the opportunity to participate and explain what the project&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; consists of.&lt;/p&gt;
&lt;!-- &lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/bYWu1qpCNF8?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
--&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Fi5CsTFgZjM?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;You can see the
(in Spanish, though). Starting at minute 12:55, I explain to the particle physicist Carlos Pobes the particularities of &lt;strong&gt;Accessible Zaragoza&lt;/strong&gt;&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;. Additionally, the program features Javier Monclús, researcher in architecture and urbanism at the University of Zaragoza, who opens the chapter by explaining the role that our cities play in our lives (which introduces our project very well); and Antonio Tausiet, who presents the project
, a repository of surprising images of the city, both current and old. The rest of the footage is dedicated in the survey section to some of the myths about menstruation and to the invention of the chair folder.&lt;/p&gt;
&lt;!--
[&lt;figure&gt;&lt;img src="https://carlos-hugoblox.netlify.app/img/post/route-science/zaccess-route-science-Screenshot_20180217_233339.png"
alt="A moment of the interview with Carlos Pobes."&gt;&lt;figcaption&gt;
&lt;p&gt;A moment of the interview with Carlos Pobes.&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
](http://alacarta.aragontelevision.es/programas/en-ruta-con-la-ciencia/cap-84-nuestras-ciudades-17022018-1330) --&gt;
&lt;p&gt;&lt;em&gt;Some images of the program, whose full content can be seen in
&lt;/em&gt;&lt;/p&gt;
&lt;div class="gallery" style="display: flow-root"&gt;
&lt;a data-fancybox="gallery-gallery" href="https://carlos-hugoblox.netlify.app/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180217_233133.png" data-caption="Entradilla del apartado dedicado a Zaragoza Accesible, en la USJ."&gt;
&lt;div style="background-image:url(/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180217_233133_hu_30521c95c252f884.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-gallery" href="https://carlos-hugoblox.netlify.app/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180217_233652.png" &gt;
&lt;div style="background-image:url(/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180217_233652_hu_6b84b53c1054c16c.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-gallery" href="https://carlos-hugoblox.netlify.app/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180217_233740.png" &gt;
&lt;div style="background-image:url(/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180217_233740_hu_817f962c872ff647.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-gallery" href="https://carlos-hugoblox.netlify.app/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180218_002816.png" data-caption="Héctor Ochoa y Joan Cano, de Mapeado Colaborativo, tomando notas de campo de accesibilidad."&gt;
&lt;div style="background-image:url(/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180218_002816_hu_aecbaf6394a3257a.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-gallery" href="https://carlos-hugoblox.netlify.app/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180218_003135.png" &gt;
&lt;div style="background-image:url(/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180218_003135_hu_614f51e08d78680e.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-gallery" href="https://carlos-hugoblox.netlify.app/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180218_003145.png" &gt;
&lt;div style="background-image:url(/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180218_003145_hu_df5ff029195d5071.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-gallery" href="https://carlos-hugoblox.netlify.app/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180218_003319.png" data-caption="En el taller de la USJ, con mis compañeros Santiago Elía y David Chinarro y el alumno Enrico Campagna."&gt;
&lt;div style="background-image:url(/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180218_003319_hu_a5166de687bea836.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;a data-fancybox="gallery-gallery" href="https://carlos-hugoblox.netlify.app/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180218_004046.png" &gt;
&lt;div style="background-image:url(/es/blog/2018/02/zaragoza-accesible-en-ruta-con-la-ciencia/gallery/Screenshot_20180218_004046_hu_6b9c39bac17a482e.png); background-size: cover; background-position: 50%; width: 30%; min-height: 200px; height: auto; float:left; margin: 5px"&gt;
&lt;/div&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;I have to admit that this is the first time I&amp;rsquo;ve participated in a TV show like this and it was a very enriching experience to record and prepare it. I was pleasantly surprised by the meticulous and respectful work made by
, producers of &lt;em&gt;&amp;ldquo;En ruta con la ciencia &amp;ldquo;&lt;/em&gt;. After the first contact, in which their staff gave me an operational overview of their program, I had a telephone interview that lasted for more than one hour with the documentary filmmaker Isabel (I don&amp;rsquo;t remember her last name). After having read all the documentation that I had previosuly facilitated to her, she asked me very specific questions and clarified doubts, making obvious that she had already carefully reviewed my matrials). At the same time, this work served to elaborate a script that they handed me in order to guide the interview that Carlos Pobes would make me a few days later. After the interview, part of the staff joined me on my workplace at San Jorge University, where we recorded more shots.&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;Honestly, I have to admit that I am very happy both with the experience of recording the program as with the final result, and I can do nothing but reiterate what I did on twitter and thank the entire team of [Sintregua] (
), first, for giving us the opportunity to publicize our project and, second, for making a program so careful and with great respect for our work.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="es" dir="ltr"&gt;Muchas gracias por dedicarnos unos minutos a explicar el proyecto &lt;a href="https://x.com/hashtag/zaccesible?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#zaccesible&lt;/a&gt; (&lt;a href="https://t.co/ocrkHpUZ81"&gt;https://t.co/ocrkHpUZ81&lt;/a&gt;) en un programa tan interesante como cuidado, y además, por hacerlo en gran compañía. cc/ &lt;a href="https://x.com/edmldmv?ref_src=twsrc%5Etfw"&gt;@edmldmv&lt;/a&gt; &lt;a href="https://x.com/ArquitecturaUSJ?ref_src=twsrc%5Etfw"&gt;@ArquitecturaUSJ&lt;/a&gt; &lt;a href="https://x.com/MapColabora?ref_src=twsrc%5Etfw"&gt;@MapColabora&lt;/a&gt;&lt;/p&gt;&amp;mdash; Carlos Cámara Menoyo - ccamara@mastodon.social (@carlescamara) &lt;a href="https://x.com/carlescamara/status/964894750439563264?ref_src=twsrc%5Etfw"&gt;February 17, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;p&gt;I would also like to thank all the people and entities that have participated in the project and, last, but not least, I would also like to emphasize that anyone willing to help us will be more than welcome.&lt;/p&gt;
&lt;p&gt;&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="es" dir="ltr"&gt;Aprovecho también para dar las gracias a todas aquellas personas y entidades que han contribuido y siguen contribuyendo a hacer de &lt;a href="https://x.com/hashtag/zaccesible?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#zaccesible&lt;/a&gt; una realidad: &lt;a href="https://t.co/o7GtR9894W"&gt;https://t.co/o7GtR9894W&lt;/a&gt; cc &lt;a href="https://x.com/DiscapacitadoSF?ref_src=twsrc%5Etfw"&gt;@DiscapacitadoSF&lt;/a&gt; &lt;a href="https://x.com/MapColabora?ref_src=twsrc%5Etfw"&gt;@MapColabora&lt;/a&gt; &lt;a href="https://x.com/Hiri_Lagunkoiak?ref_src=twsrc%5Etfw"&gt;@Hiri_Lagunkoiak&lt;/a&gt; &lt;a href="https://x.com/ganchillosocial?ref_src=twsrc%5Etfw"&gt;@ganchillosocial&lt;/a&gt; &lt;a href="https://x.com/hashtag/mundocrip?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#mundocrip&lt;/a&gt; ...&lt;/p&gt;&amp;mdash; Carlos Cámara Menoyo - ccamara@mastodon.social (@carlescamara) &lt;a href="https://x.com/carlescamara/status/964896902528585728?ref_src=twsrc%5Etfw"&gt;February 17, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="es" dir="ltr"&gt;Y por supuesto, para recalcar que cualquiera puede formar parte del proyecto! Si quieres saber cómo ayudar en &lt;a href="https://x.com/hashtag/zaccesible?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#zaccesible&lt;/a&gt; aquí te lo explicamos: &lt;a href="https://t.co/aT2ZfJBmoh"&gt;https://t.co/aT2ZfJBmoh&lt;/a&gt;&lt;/p&gt;&amp;mdash; Carlos Cámara Menoyo - ccamara@mastodon.social (@carlescamara) &lt;a href="https://x.com/carlescamara/status/964897477508960257?ref_src=twsrc%5Etfw"&gt;February 17, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Other no less important joys are the that I have had the opportunity to meet and work side by side with great people, such as the members of [Collaborative Mapping] (
), which I founded almost unintentionally thanks to the then Director of Zaragoza Activa Las Armas José Ramon Insa and Miguel Sevilla-Callejo ([here I talked about it] (
, the people of [Disabled Without Borders Aragon] (
) and [Mundo Crip] (
) (I have yet to meet Marta Valencia, of the
, who showed his interest in the project but we haven&amp;rsquo;t been able to match yet), as well as Mikel Gómez and the rest of the
&amp;rsquo;s staff and a lot of people from [OpenStreetMap] (
) community.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;If the explanation of the program falls short you can always see the [specific website of the project] (
), where you can find more information.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>IND+I Science award to Metropolitan Innovation Policies</title><link>https://carlos-hugoblox.netlify.app/en/blog/2018/02/ind-i-science-award-to-metropolitan-innovation-policies/</link><pubDate>Fri, 09 Feb 2018 00:00:00 +0000</pubDate><guid>https://carlos-hugoblox.netlify.app/en/blog/2018/02/ind-i-science-award-to-metropolitan-innovation-policies/</guid><description>&lt;!-- Tip: open with the why, then show results, code, and next steps. --&gt;
&lt;p&gt;Although it had officially been announced several days ago, the
&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; awards ceremony took place yesterday, where I received the prize of the category &lt;strong&gt;&amp;ldquo;Metropolitan innovation policies&amp;rdquo;&lt;/strong&gt; for my
.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="ca" dir="ltr"&gt;El guanyador del Premi Polítiques d&amp;#39;innovació metropolitanes és &lt;a href="https://x.com/carlescamara?ref_src=twsrc%5Etfw"&gt;@carlescamara&lt;/a&gt;. El proper 8/02 t&amp;#39;explicarà el seu treball de recerca al CERC &lt;a href="https://x.com/diba?ref_src=twsrc%5Etfw"&gt;@diba&lt;/a&gt;. Inscripcions a &lt;a href="https://t.co/ehFTblO9q4"&gt;https://t.co/ehFTblO9q4&lt;/a&gt; &lt;a href="https://x.com/hashtag/FENTLINDI?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#FENTLINDI&lt;/a&gt; &lt;a href="https://t.co/VhQQApZTWf"&gt;pic.twitter.com/VhQQApZTWf&lt;/a&gt;&lt;/p&gt;&amp;mdash; IND+I (@INDI_viladecans) &lt;a href="https://x.com/INDI_viladecans/status/960439120446320640?ref_src=twsrc%5Etfw"&gt;February 5, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;p&gt;The rest of the awards were for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sustainable Cities Agenda&lt;/strong&gt; category: awarded &lt;em&gt;ex-aequo&lt;/em&gt; to
(UB) for his research &lt;em&gt;&amp;ldquo;The impact of socioeconomic characteristics on CO2 emissions associated with urban mobility: inequality across individuals &amp;ldquo;&lt;/em&gt; and to
(UAB) for his research &lt;em&gt;&amp;ldquo;Designing a Social Robot for a Children&amp;rsquo;s Hospital. Caring responsibilities of Technological Design in sustainable cities &amp;ldquo;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Innovation and Industry&lt;/strong&gt; category, awarded to
(UAB i University of Aveiro) for her research &lt;em&gt;&amp;ldquo;Universities in Innovation Policy-Design: a review of the participation of external actors in the policy process for the creation of public value &amp;ldquo;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Green Industry&lt;/strong&gt; category, awarded to
(URV) for her research &lt;em&gt;&amp;ldquo;Eco-strategies and firm growth in SMEs: EU15 and new EU membres &amp;ldquo;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metropolitan innovation policies&lt;/strong&gt;, awarded to Carlos Cámara Menoyo (UOC) for research &lt;em&gt;&amp;ldquo;Urban commons: lessons from Barcelona at the beginning of 21st century &amp;ldquo;&lt;/em&gt;&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="ca" dir="ltr"&gt;Aquí tenim els guanyadors de la primera edició del IND+I Science &lt;a href="https://x.com/hashtag/FENTLINDI?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#FENTLINDI&lt;/a&gt; &lt;a href="https://t.co/iRLjfYnS40"&gt;pic.twitter.com/iRLjfYnS40&lt;/a&gt;&lt;/p&gt;&amp;mdash; IND+I (@INDI_viladecans) &lt;a href="https://x.com/INDI_viladecans/status/961526568261685251?ref_src=twsrc%5Etfw"&gt;February 8, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;p&gt;During the perfectly organized event, each of the winners was able to briefly present their research, grouped into two blocks, which gave way to two very interesting debates although, as always happens to me in these cases, I had the feeling that they were too brief.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="ca" dir="ltr"&gt;Carlos Cámara presenta el seu treball sobre comuns urbans aplicats al cas de Barcelona, que li ha valgut el premi IND+I Science sobre polítiques d&amp;#39;innovació metropolitanes &lt;a href="https://x.com/hashtag/fentlindi?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#fentlindi&lt;/a&gt; &lt;a href="https://t.co/Dit0l656Z0"&gt;pic.twitter.com/Dit0l656Z0&lt;/a&gt;&lt;/p&gt;&amp;mdash; David Rodríguez (@davidpemb) &lt;a href="https://x.com/davidpemb/status/961560397462556672?ref_src=twsrc%5Etfw"&gt;February 8, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;p&gt;The event served not only to know the other four winners of the other categories and their research (as a tasting) but also to encourage interesting debates and even &lt;em&gt;networking&lt;/em&gt;. All very much in line with IND+I&amp;rsquo;s transfer objectives.&lt;/p&gt;
&lt;p&gt;That is why I can only thank the IND+I Science team for several reasons. Firstly, for contributing with prizes and events like this to make science come out of offices and laboratories, reach the general public and, hopefully, can even be applied. Secondly,as Núria Vallès rightly pointed out, because it is a pleasure to see how the work we have been doing for years and which, is very often solitary, raises certain interest for someone. Thirdly, for contributing financially to the promotion of scientific research, which in recent years has suffered significant cuts. Personally, also for giving me the opportunity to make my research known and to meet the other four winners of the other categories and their research. All very much in line with IND+I&amp;rsquo;s transfer objectives. Last but not least, for the organisation and the care with which we have been treated at all times.&lt;/p&gt;
&lt;p&gt;I also take this opportunity to extend my thanks to the members of the PEMB, not only for sponsoring the prize in my category, but also because they were always very interested in my work and its dissemination. I hope to meet you again soon.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="ca" dir="ltr"&gt;El premi IND+I Science “polítiques d&amp;#39;innovació metropolitana” patrocinat pel PEMB ha recaigut en &lt;a href="https://x.com/carlescamara?ref_src=twsrc%5Etfw"&gt;@carlescamara&lt;/a&gt; de &lt;a href="https://x.com/UOCuniversitat?ref_src=twsrc%5Etfw"&gt;@UOCuniversitat&lt;/a&gt; pel seu treball sobre “comuns urbans” i com incideixen en la ciutat &lt;a href="https://x.com/INDI_viladecans?ref_src=twsrc%5Etfw"&gt;@INDI_viladecans&lt;/a&gt; &lt;a href="https://x.com/pacteindustrial?ref_src=twsrc%5Etfw"&gt;@pacteindustrial&lt;/a&gt; per saber-ne més 👇&lt;a href="https://t.co/8I7eDgjulQ"&gt;https://t.co/8I7eDgjulQ&lt;/a&gt;&lt;/p&gt;&amp;mdash; Pla Estratègic Metropolità de Barcelona (PEMB) (@pembarcelona) &lt;a href="https://x.com/pembarcelona/status/961668407665053696?ref_src=twsrc%5Etfw"&gt;February 8, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;p&gt;Without further ado, I&amp;rsquo;ll leave you some tweets that summarize part of the intervention and the debate.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="ca" dir="ltr"&gt;El &lt;a href="https://x.com/carlescamara?ref_src=twsrc%5Etfw"&gt;@carlescamara&lt;/a&gt; s&amp;#39;ha centrat en els comuns urbans, els més vinculats a les ciutats, agents clau a les crisis. Entendre que són, problematitzar-los i veure quines potencialitats i limitacions tenen per produir noves ciutats o entorns &lt;a href="https://x.com/hashtag/FENTLINDI?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#FENTLINDI&lt;/a&gt; &lt;a href="https://t.co/lOxTNYtW3U"&gt;pic.twitter.com/lOxTNYtW3U&lt;/a&gt;&lt;/p&gt;&amp;mdash; IND+I (@INDI_viladecans) &lt;a href="https://x.com/INDI_viladecans/status/961560411656146944?ref_src=twsrc%5Etfw"&gt;February 8, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p lang="ca" dir="ltr"&gt;&amp;quot;Sense les comunitats i les persones que hi ha al darrere no es podria parlar de comuns urbans.Són les qui decideixen com s&amp;#39;organitzen per gestionar comunitàriament un determinat recurs&amp;quot;explica &lt;a href="https://x.com/carlescamara?ref_src=twsrc%5Etfw"&gt;@carlescamara&lt;/a&gt; (&lt;a href="https://x.com/UOCciudad?ref_src=twsrc%5Etfw"&gt;@UOCciudad&lt;/a&gt;), un dels guardonats amb els Premis IND+I Science &lt;a href="https://x.com/hashtag/FENTLINDI?src=hash&amp;amp;ref_src=twsrc%5Etfw"&gt;#FENTLINDI&lt;/a&gt; &lt;a href="https://t.co/McInCdxaQC"&gt;pic.twitter.com/McInCdxaQC&lt;/a&gt;&lt;/p&gt;&amp;mdash; Pla Estratègic Metropolità de Barcelona (PEMB) (@pembarcelona) &lt;a href="https://x.com/pembarcelona/status/961567069656494081?ref_src=twsrc%5Etfw"&gt;February 8, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;
is an initiative to promote scientific research and innovation promoted by the
the
, the
, the
and the
&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;More information on research at
.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>About Simplicity, Complexity and Deficiencies</title><link>https://carlos-hugoblox.netlify.app/en/blog/2013/04/about-simplicity-complexity-and-deficiencies/</link><pubDate>Tue, 23 Apr 2013 00:00:00 +0000</pubDate><guid>https://carlos-hugoblox.netlify.app/en/blog/2013/04/about-simplicity-complexity-and-deficiencies/</guid><description>&lt;!-- Tip: open with the why, then show results, code, and next steps. --&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;There are two ways of constructing a software design: one way is to make it so simple that there are obviously no deficiencies; the other is to make it so complicated that there are no obvious deficiencies.
– C. A. R. Hoare&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;When reading
by Swaroop C H, I found this quote being funny, well constructed and true. The funniest thing in my opinion is that it can also be applied to many other areas apart from computer science, being politics one of the most evident.&lt;/p&gt;</description></item></channel></rss>