You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

273 lines
12 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<!-- Minima -->
<!-- Hexo theme created by @adisaktijrs -->
<!-- Basic Page Needs
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
<meta charset="utf-8">
<title>Data about data</title>
<link rel="canonical" href="https://tim.kicker.dev/2023/05/18/whatsapp-analyze/">
<meta name="description" content="I am a huge fan of gathering, analyzing and evaluating data. Creating statistics and colorful graphs just has something to it. But the interesting par">
<meta name="author" content="Tim Kicker">
<meta property="og:image" content="https://tim.kicker.devundefined">
<meta property="og:site_name" content="Hexo" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Data about data" />
<meta property="og:description" content="I am a huge fan of gathering, analyzing and evaluating data. Creating statistics and colorful graphs just has something to it. But the interesting par">
<meta property="og:url" content="https://tim.kicker.dev/2023/05/18/whatsapp-analyze/" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Data about data">
<meta name="twitter:description" content="I am a huge fan of gathering, analyzing and evaluating data. Creating statistics and colorful graphs just has something to it. But the interesting par">
<meta name="twitter:image" content="https://tim.kicker.devundefined">
<meta name="twitter:url" content="https://tim.kicker.dev/2023/05/18/whatsapp-analyze/" />
<!-- Mobile Specific Metas
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Preload fonts
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
<link rel="preload" href="../fonts/dm-serif-display-v4-latin-regular.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="../fonts/inter-v2-latin-regular.woff2" as="font" type="font/woff2" crossorigin>
<!-- CSS
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
<link rel="stylesheet" href="/css/normalize.css">
<link rel="stylesheet" href="/css/skeleton.css">
<link rel="stylesheet" href="/css/custom.css">
<link rel="stylesheet" href="/css/prism-dark.css">
<link rel="stylesheet" href="/css/prism-line-numbers.css">
<!-- User css -->
<link rel="stylesheet" href="/css/user.css">
<!-- Favicon
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
<link rel="icon" type="image/png" href="/images/teddy-bear-apple.webp">
<!-- Custom Theme Color Style
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
<style>
a:not(.icon) {
text-decoration-color: #0FA0CE;
background-image: linear-gradient(
to bottom,
rgba(0, 0, 0, 0) 50%,
#0FA0CE 50%
);
}
blockquote {
border-left: 8px solid #0FA0CE;
}
.nanobar .bar {
background: #0FA0CE;
}
.button.button-primary:hover,
button.button-primary:hover,
input[type="submit"].button-primary:hover,
input[type="reset"].button-primary:hover,
input[type="button"].button-primary:hover,
.button.button-primary:focus,
button.button-primary:focus,
input[type="submit"].button-primary:focus,
input[type="reset"].button-primary:focus,
input[type="button"].button-primary:focus {
background-color: #0FA0CE;
border-color: #0FA0CE;
}
input[type="email"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
input[type="text"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus {
border: 1px solid #0FA0CE;
}
</style>
<!-- Google Analytics (With Privacy Settings On)
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
<meta name="generator" content="Hexo 6.3.0"></head>
<body>
<div class="container">
<div class="row">
<div>
<div class="row">
<div class="two columns" style="max-width: 50px">
<h1 class="mt-2 mode">
<div onclick=setDarkMode(true) id="darkBtn">🌑</div>
<div onclick=setDarkMode(false) id="lightBtn" class=hidden>☀️</div>
<script >
if (localStorage.getItem('preferredTheme') == 'dark') {
setDarkMode(true)
}
function setDarkMode(isDark) {
var darkBtn = document.getElementById('darkBtn')
var lightBtn = document.getElementById('lightBtn')
if (isDark) {
lightBtn.style.display = "block"
darkBtn.style.display = "none"
localStorage.setItem('preferredTheme', 'dark');
} else {
lightBtn.style.display = "none"
darkBtn.style.display = "block"
localStorage.removeItem('preferredTheme');
}
document.body.classList.toggle("darkmode");
}
</script>
</h1>
</div>
<div class="six columns ml-1">
<h1 class="mt-2">
Hello World.
</h1>
</div>
<div class="twelve columns">
<div class="row">
<div class="nine columns left">
<a href="/">Home</a>
<a href="/archives" class="ml">Blog</a>
<a href="/About" class="ml">About</a>
<a href="mailto:[email protected]" target="_blank" class="ml">Email</a>
</div>
</div>
<hr style="margin-bottom: 2.6rem">
</div>
</div>
<div class="trans">
<h2>Data about data</h2>
<p>I am a huge fan of gathering, analyzing and evaluating data. Creating statistics and colorful graphs just has something to it. But the interesting part is not necessarily the data itself, it’s the data about the data. How often does something occur, at which time and by whom are very important characteristics when it comes to creating patterns.</p>
<p>For example, let’s look at the two weekday-graphs of two different WhatsApp-chats of mine.</p>
<p><strong>Weekdays Chat A</strong></p>
<img src="/2023/05/18/whatsapp-analyze/hourchartA.png" class="">
<p><strong>Weekdays Chat B</strong></p>
<img src="/2023/05/18/whatsapp-analyze/hourchartB.png" class="">
<p>It is not that hard to figure out the difference between those two graphs. The amount of daily messages in A are pretty stable except Friday and Monday, which are two extremes. Maybe this could be about a friend group planning what they’re going to do on the weekend? The general quantity of messages are also lower as in figure B. The second chat also has a huge gap between Sunday and Saturday. Could this be a groupchat related to work? Or is it someone close who happens to live in the same house?</p>
<p>You can see that it is possible to gather connections and create assumptions about certain topics without even looking at the data itself. Now let’s take a deeper look.</p>
<p><strong>Days-Heatmap Chat A</strong></p>
<img src="/2023/05/18/whatsapp-analyze/heatmapA.png" class="" title="This is an example image">
<p>How interesting. We can see that the group is most active between the end of January till May and spikes again in October. If you happen to live in Austria, you probably now what that means. See most Austrian summer breaks for students last from June till the beginning of September while Christmas lasts from December till January. There is also one small break during November. You can clearly see that this could be a chat between friends who happen to be students but don’t have the same classes together. Those friends probably spend a lot of their free time together, which explains the lack of data during the breaks.</p>
<p><strong>Days-Heatmap Chat B</strong></p>
<img src="/2023/05/18/whatsapp-analyze/heatmapB.png" class="" title="This is an example image">
<p>We can see that the amount of messages remains pretty stable. This could prove our theory of two people in the same household as true. The gap in August could be a planned vacation maybe?</p>
<p>It would be pretty frighting if I told you all our assumptions were correct. Right? You may now probably recognize that metadata is a lot more valuable than you originally thought. But what conclusions can we draw from this new gained awareness? </p>
<p>Most people rely on the encryption of their messaging apps. If no one can read my data then I am safe right? No. As we can see, an attacker does not need access your communication in order to gather valuable information.</p>
<p>Just keep that in mind. </p>
<p> — May 18, 2023</p>
<div class="row mt-2">
<div class="eight columns">
<p id="madewith">
#<a href="https://github.com/timkicker/timkicker.github.io" target="_blank" rel="noreferrer">opensource</a></p>
</div>
<!-- Sepcial thanks to https://simpleicons.org/ for the icons -->
<div class="four columns mb-3 posisi" >
<a class="ml-0 footer-link icon" href="https://github.com/timkicker" target="_blank" style="text-decoration: none" rel="noreferrer" aria-label="GitHub">
<svg class="github svg-hov" width="18" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>
</a>
<a class="ml-0 footer-link icon" href="https://www.linkedin.com/in/tim-kicker-5438b1237/" target="_blank" style="text-decoration: none" rel="noreferrer" aria-label="LinkedIn">
<svg class="linkedin svg-hov" width="18" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>LinkedIn</title><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="/js/nanobar.min.js"></script>
<script>
var options = {
classname: 'nanobar',
id: 'myNanobar'
};
var nanobar = new Nanobar(options);
nanobar.go(30);
nanobar.go(76);
nanobar.go(100);
</script>
</body>
</html>