tag:blogger.com,1999:blog-39323384953915471902024-02-22T08:09:20.309-08:00factbasedKarsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.comBlogger78125tag:blogger.com,1999:blog-3932338495391547190.post-59299936685898793572023-02-18T09:39:00.003-08:002023-02-18T09:39:48.702-08:00Large Matrix Multiplication: DuckDB vs. SQLite<div class="container-fluid main-container">
<p>On my laptop with 16 GB RAM, I would like to perform a matrix-vector
multiplication with a sparse matrix of around 10 million columns and
2500 rows. The matrix has approximately only 2% non-zero entries, but
this are still 500 million numbers and the column/row information, too
large to work comfortably in-memory.</p>
<p>A while ago, I tried using <code>sqlite</code> for this task. It kind
of worked, but was too slow to be useful. This weekend, I revisited the
problem and tried using <code>duckdb</code>.</p>
<p>TLDR: duckdb is amazingly faster than sqlite for this problem, around
20 times. The matrix multiplication above takes around 20-30seconds.</p>
<p>First, let’s build a small example and see if the approaches produce
the right solution.</p>
<pre class="r"><code>set.seed(13)
nvars <- 1000 # columns
ncons <- 500 # rows
n_nonzero <- round(0.2*nvars*ncons) # approximate, there may be actually less values
Amat <- data.frame(
i=sample.int(ncons, n_nonzero, replace=TRUE),
j=sample.int(nvars, n_nonzero, replace=TRUE),
x=runif(n_nonzero)
)
Amat <- Amat[!duplicated(Amat[,c("i", "j")]),]
bvec <- runif(nvars)
# Matrix solution
library(Matrix)
AmatSparse <- Matrix::sparseMatrix(i=Amat[,"i"], j=Amat[,"j"], x=Amat[,"x"])
expected <- as.vector(AmatSparse %*% bvec)
str(expected)
# num [1:500] 45.7 41 43.5 38.1 40.8 ...</code></pre>
<p>For sqlite and duckdb, the matrix multiplication is performed as SQL.
First, we create connection objects. The function that performs the SQL
is identical:</p>
<pre class="r"><code>library(DBI)
# set up SQLite
library(RSQLite)
dbname <- "sparsemat.db"
con1 <- dbConnect(drv=RSQLite::SQLite(), dbname=dbname)
# set up duckdb
library(duckdb)
dbname <- "sparsemat.duckdb"
con2 <- dbConnect(duckdb(), dbname)
dbExecute(con2, "PRAGMA memory_limit='1GB';")
# save to SQLite / duckdb
dbWriteTable(con1, name="Amat", value=Amat, overwrite=TRUE)
dbWriteTable(con1, name="bvec", value=data.frame(j=seq(1:nvars), x=bvec), overwrite=TRUE)
dbWriteTable(con2, name="Amat", value=Amat, overwrite=TRUE)
dbWriteTable(con2, name="bvec", value=data.frame(j=seq(1:nvars), x=bvec), overwrite=TRUE)
mat_mult_sql <- function(con) {
ans <- dbGetQuery(con, paste(
"select sum(Amat.x*bvec.x) from Amat",
"join bvec on Amat.j=bvec.j",
"group by Amat.i order by Amat.i"
))
return(ans[,1, drop=TRUE])
}</code></pre>
<p>Let’s benchmark the different approaches:</p>
<pre class="r"><code>library(microbenchmark)
chk_fun <- function(...) {
res <- list(...)[[1]]
for (x in res) {
if(!all.equal(expected, x)) return(FALSE)
}
return(TRUE)
}
microbenchmark(
sqlite=mat_mult_sql(con1),
duckdb=mat_mult_sql(con2),
times=100, check=chk_fun
)
# Unit: milliseconds
# expr min lq mean median uq max neval
# sqlite 59.9924 61.77500 62.595894 62.49010 63.17130 75.5612 100
# duckdb 1.6891 1.77065 1.942087 1.98605 2.04365 2.9142 100</code></pre>
<p>Both approaches produce the correct solution. The <code>duckdb</code>
approach is 30 times faster.</p>
<p>But do the approaches work with the big matrix, too? And how big are
the files created? Let’s find out. We create 250 small-enough matrices
in memory and write them to the disk.</p>
<pre class="r"><code>library(data.table)
nvars <- 10000000
ncons <- 10
n_nonzero <- round(0.02*nvars*ncons) # approximate, there may be actually less values
set.seed(13)
# the first table
Amat <- data.frame(
i=sample.int(ncons, n_nonzero, replace=TRUE),
j=sample.int(nvars, n_nonzero, replace=TRUE),
x=runif(n_nonzero)
)
setDT(Amat)
Amat <- unique(Amat, by=c("i", "j"))
# save to SQLite / duckdb
bvec <- runif(nvars)
# write to sqlite
dbWriteTable(con1, name="Amat", value=Amat, overwrite=TRUE)
dbWriteTable(con1, name="bvec", value=data.frame(j=seq(1:nvars), x=bvec), overwrite=TRUE)
# write to duckdb
dbWriteTable(con2, name="Amat", value=Amat, overwrite=TRUE)
dbWriteTable(con2, name="bvec", value=data.frame(j=seq(1:nvars), x=bvec), overwrite=TRUE)
# the 249 other tables
for (iter in 2:250) {
Amat <- data.frame(
i=sample.int(ncons, n_nonzero, replace=TRUE),
j=sample.int(nvars, n_nonzero, replace=TRUE),
x=runif(n_nonzero)
)
setDT(Amat)
Amat <- unique(Amat, by=c("i", "j"))
Amat[,i:=i+(iter-1)*500]
dbWriteTable(con1, name="Amat", value=Amat, append=TRUE)
dbWriteTable(con2, name="Amat", value=Amat, append=TRUE)
}</code></pre>
<p>Now the matrix has 500 million non-zero elements. The sqlite database
is 12GB, the duckdb is 7GB large.</p>
<p>(I also did run both database backends separately. Building the
matrix with sqlite took 350s, with duckdb 230s.)</p>
<p>So, let’s benchmark the matrix multiplication:</p>
<pre class="r"><code>microbenchmark(
sqlite=mat_mult_sql(con1), # 500sec
duckdb=mat_mult_sql(con2), # 23 sec
times=1
)</code></pre>
<p>I did not save the detailled timing results, but the sqlite approach
took about 500s, while the duckdb approach took only 23s. Again, duckdb
is much faster, around 20 times.</p>
<p>So I am deeply impressed by the speed of duckdb. There seem to be
huge progressions in OLAP queries. One small part of it is that <a href="https://stackoverflow.com/a/75476732/216064">duckdb can use more
than one thread</a>:</p>
<pre class="r"><code>dbExecute(con2, "PRAGMA threads=4;")
dbGetQuery(con2, "SELECT current_setting('threads');")
# current_setting('threads')
# 1 4</code></pre>
<p>There is also the <code>bigsparser</code> which looks as if it can be
even faster than <code>duckdb</code>, however, I could not yet figure
out how to create a big matrix on disk with this package.</p>
</div>Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-18914089644716609032023-02-07T06:21:00.001-08:002023-02-07T06:22:44.459-08:00Using chatGPT in the teaching of R
<p>I am currently focalising an introductory course in programming with R within my organisation. We use datacamp.com as a resource and meet online once a week to share.</p>
<p>This week my input was an interaction with chatGPT, see below. My impression is that AI can be quite helpful in learning a programming language. Especially if you can ask good questions. In the future, as a course organiser, the focus will be less on the content and more on being together as a learning group and sharing.</p>
<p>Also worth reading on the topic of chatGPT is a discussion thread on <a href="https://discourse.datamethods.org/t/accuracy-of-chatgpt-on-statistical-methods/6402">datamethods.org</a>.</p>
<hr>
<p>Here is the AI interaction:</p>
<p><strong>I want to extract the first five characters of a string using
R. How would the code look like?</strong></p>
<blockquote>
<p>You can extract the first five characters of a string in R using the
substring function. Here is an > example:</p>
<pre class="r"><code>string <- "Hello World"
result <- substring(string, 1, 5)
print(result)</code></pre>
<p>This code will return the following output:</p>
<pre class="r"><code>[1] "Hello"</code></pre>
</blockquote>
<p><strong>Explain how vectorisation works in R!</strong></p>
<blockquote>
<p>In R, vectorization is the process of performing operations on entire
arrays of data, rather than iterating over the elements one by one. This
is important because vectorized operations are typically much faster
than non-vectorized operations, due to the optimized underlying
code.</p>
<p>The key to vectorization in R is that all basic data structures in R
are arrays, or vectors. This means that operations performed on them are
automatically vectorized. For example, if you add two vectors of the
same length, the result is a new vector where each element is the sum of
the corresponding elements from the input vectors.</p>
<p>Here is an example to illustrate this:</p>
<pre class="r"><code>a <- c(1, 2, 3, 4, 5)
b <- c(5, 4, 3, 2, 1)
c <- a + b
print(c)</code></pre>
<p>This code will return the following output:</p>
<pre class="r"><code>[1] 6 6 6 6 6</code></pre>
<p>In this example, the + operator is applied to the entire vectors a
and b, producing the new vector c that contains the sums of
corresponding elements.</p>
<p>It’s worth noting that not all operations in R are vectorized, and
some operations can only be vectorized under certain conditions. For
example, some operations require that all elements in a vector have the
same length and structure, and some operations may return unexpected
results if applied to vectors with different lengths.</p>
</blockquote>
<p><strong>Give me another example!</strong></p>
<blockquote>
<p>Sure, here’s another example that demonstrates vectorization in
R:</p>
<pre class="r"><code>x <- c(1, 2, 3, 4, 5)
y <- x * 2
print(y)</code></pre>
<p>In this code, we create a vector x with 5 elements, and then use the
* operator to multiply each element in x by 2. The result is a new
vector y that contains the doubled values of the elements in x.</p>
<pre class="r"><code>[1] 2 4 6 8 10</code></pre>
<p>This demonstrates how vectorization allows us to perform operations
on entire arrays of data, without having to loop over the elements one
by one. This is a more efficient and concise way to work with data in
R.</p>
</blockquote>
<p><strong>What are the most important string functions in base
R?</strong></p>
<blockquote>
<p>Here are some of the most commonly used string functions in base
R:</p>
<ol style="list-style-type: decimal">
<li>nchar: returns the number of characters in a string</li>
<li>substring: extracts a substring from a string</li>
<li>paste: concatenates strings into a single string</li>
<li>toupper: converts all characters in a string to uppercase</li>
<li>tolower: converts all characters in a string to lowercase</li>
<li>gsub: replaces all occurrences of a pattern in a string with a
replacement string</li>
<li>grep: searches for a pattern in a string and returns the matching
elements</li>
<li>grepl: similar to grep, but returns a logical vector indicating
which elements match the pattern</li>
<li>strsplit: splits a string into substrings based on a specified
separator</li>
<li>trimws: removes leading and trailing whitespace from a string.</li>
</ol>
<p>These functions form the basis for many common string manipulation
tasks in R, and are commonly used in data cleaning and preparation. It’s
worth noting that there are many more string functions available in R,
and many specialized string manipulation packages available in the R
ecosystem.</p>
</blockquote>
<p><strong>Translate excel string functions to their corresponding R
functions!</strong></p>
<blockquote>
<p>Here are some common Excel string functions and their equivalent R
functions:</p>
<table>
<thead>
<tr class="header">
<th align="left">Excel function</th>
<th align="left">R function</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td align="left">LEFT</td>
<td align="left">substring</td>
</tr>
<tr class="even">
<td align="left">RIGHT</td>
<td align="left">substring</td>
</tr>
<tr class="odd">
<td align="left">MID</td>
<td align="left">substring</td>
</tr>
<tr class="even">
<td align="left">LEN</td>
<td align="left">nchar</td>
</tr>
<tr class="odd">
<td align="left">UPPER</td>
<td align="left">toupper</td>
</tr>
<tr class="even">
<td align="left">LOWER</td>
<td align="left">tolower</td>
</tr>
<tr class="odd">
<td align="left">CONCATENATE</td>
<td align="left">paste</td>
</tr>
<tr class="even">
<td align="left">REPLACE</td>
<td align="left">gsub</td>
</tr>
<tr class="odd">
<td align="left">SEARCH</td>
<td align="left">grep or grepl</td>
</tr>
</tbody>
</table>
<p>Note that the R functions are not always a direct match to their
Excel counterparts, but they can be used to achieve the same results.
For example, substring can be used to implement the functionality of the
LEFT, RIGHT, and MID functions by specifying different arguments for the
start and end positions of the desired substring.</p>
</blockquote>
Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com3tag:blogger.com,1999:blog-3932338495391547190.post-24039488645055800362022-10-30T15:55:00.000-07:002022-10-30T15:55:07.476-07:00Getting acquainted with Mastodon -- Instances<p>Elon Musk has to buy Twitter after all. I took this as an opportunity to look at Mastodon at the weekend, a decentralised alternative. TL/DR: super!</p>
<p>What I had to understand first was the concept of an “instance”. My first impression is that you can compare a Mastodon server to an email server. Imagine that in order to write emails, you would have to create an account with one single company in the US and agree to their terms-of-service. Every email you send would go through that company. Not a good idea. That just seems wrong. Fortunately, emails work differently. I can create an account with a server of my choice, in Germany for example with Posteo.de, web.de or gmx.de. And I can send my messages anywhere, to any email server in the world.</p>
<p>This decentralised approach now also works with short messages. Via Mastodon. I can choose my server, or my instance as it is now called. But my messages can be read by all Mastodon users, no matter which instance they use. I find that convincing.</p>
<p>Which instance is the right one for me? Who offers me a Mastodon account now? </p>
<p>My research this weekend revealed <a href="https://github.com/kweinert/msocial/blob/main/inst/extdata/instances.txt">55 potential providers</a>. I collected these manually, I did not find a central overview of providers. (EDIT: As is sometimes the case, after writing this I found the link to the
<a href="https://mastodon.fediverse.observer/list">Fediverse Observer</a>. There is even an API there. I'll take a closer look at that another time).</p>
<p>Using the Mastodon API, it is possible to retrieve information from any server. This is easily done via the <code>msocial</code> package that I just uploaded to Github. It uses the new pipe operator introduced with R 4.0. The <code>remotes</code> package is needed for installation, the packages <code>data.table</code> and <code>knitr</code> are needed for this vignette. </p>
<pre><code class="r">#install.packages("remotes")
#remotes::install_github("https://github.com/kweinert/msocial")
library(msocial)
library(data.table)
library(knitr)
</code></pre>
<p>The information is retrieved from the instances as follows.</p>
<pre><code class="r">stats <- get_instances() |>
lapply(get_instance_stats) |>
rbindlist()
</code></pre>
<p>The code is actually only given for transparency reasons. The result is much more important: </p>
<table><thead>
<tr>
<th align="left">instance</th>
<th align="left">registration</th>
<th align="right">user_count</th>
<th align="right">status_count</th>
<th align="left">country_code</th>
</tr>
</thead><tbody>
<tr>
<td align="left"><a href="https://mastodon.social">https://mastodon.social</a></td>
<td align="left">TRUE</td>
<td align="right">814812</td>
<td align="right">39787754</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://mastodon.cloud">https://mastodon.cloud</a></td>
<td align="left">TRUE</td>
<td align="right">220222</td>
<td align="right">4424023</td>
<td align="left">US</td>
</tr>
<tr>
<td align="left"><a href="https://mstdn.social">https://mstdn.social</a></td>
<td align="left">TRUE</td>
<td align="right">76258</td>
<td align="right">5503036</td>
<td align="left">IN</td>
</tr>
<tr>
<td align="left"><a href="https://fosstodon.org">https://fosstodon.org</a></td>
<td align="left">TRUE</td>
<td align="right">24187</td>
<td align="right">1031281</td>
<td align="left">FR</td>
</tr>
<tr>
<td align="left"><a href="https://mastodon.xyz">https://mastodon.xyz</a></td>
<td align="left">FALSE</td>
<td align="right">23870</td>
<td align="right">1749182</td>
<td align="left">US</td>
</tr>
<tr>
<td align="left"><a href="https://mastodon.technology">https://mastodon.technology</a></td>
<td align="left">FALSE</td>
<td align="right">23837</td>
<td align="right">1334756</td>
<td align="left">US</td>
</tr>
<tr>
<td align="left"><a href="https://mstdn.io">https://mstdn.io</a></td>
<td align="left">FALSE</td>
<td align="right">18173</td>
<td align="right">2549736</td>
<td align="left">US</td>
</tr>
<tr>
<td align="left"><a href="https://qoto.org">https://qoto.org</a></td>
<td align="left">TRUE</td>
<td align="right">17741</td>
<td align="right">821107</td>
<td align="left">GB</td>
</tr>
<tr>
<td align="left"><a href="https://social.tchncs.de">https://social.tchncs.de</a></td>
<td align="left">TRUE</td>
<td align="right">17621</td>
<td align="right">1648232</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://pixelfed.de">https://pixelfed.de</a></td>
<td align="left">TRUE</td>
<td align="right">13569</td>
<td align="right">99447</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://octodon.social">https://octodon.social</a></td>
<td align="left">FALSE</td>
<td align="right">11923</td>
<td align="right">2117274</td>
<td align="left">NA</td>
</tr>
<tr>
<td align="left"><a href="https://chaos.social">https://chaos.social</a></td>
<td align="left">FALSE</td>
<td align="right">9198</td>
<td align="right">3025391</td>
<td align="left">IN</td>
</tr>
<tr>
<td align="left"><a href="https://det.social">https://det.social</a></td>
<td align="left">TRUE</td>
<td align="right">8053</td>
<td align="right">35106</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://mastodon.fun">https://mastodon.fun</a></td>
<td align="left">TRUE</td>
<td align="right">7709</td>
<td align="right">761778</td>
<td align="left">US</td>
</tr>
<tr>
<td align="left"><a href="https://norden.social">https://norden.social</a></td>
<td align="left">TRUE</td>
<td align="right">6258</td>
<td align="right">424112</td>
<td align="left">GR</td>
</tr>
<tr>
<td align="left"><a href="https://hostux.social">https://hostux.social</a></td>
<td align="left">TRUE</td>
<td align="right">5584</td>
<td align="right">365994</td>
<td align="left">LU</td>
</tr>
<tr>
<td align="left"><a href="https://meow.social">https://meow.social</a></td>
<td align="left">TRUE</td>
<td align="right">5329</td>
<td align="right">620144</td>
<td align="left">GB</td>
</tr>
<tr>
<td align="left"><a href="https://vis.social">https://vis.social</a></td>
<td align="left">TRUE</td>
<td align="right">5181</td>
<td align="right">67908</td>
<td align="left">FR</td>
</tr>
<tr>
<td align="left"><a href="https://scholar.social">https://scholar.social</a></td>
<td align="left">FALSE</td>
<td align="right">5144</td>
<td align="right">299049</td>
<td align="left">FR</td>
</tr>
<tr>
<td align="left"><a href="https://climatejustice.social">https://climatejustice.social</a></td>
<td align="left">FALSE</td>
<td align="right">4312</td>
<td align="right">66041</td>
<td align="left">US</td>
</tr>
<tr>
<td align="left"><a href="https://aus.social">https://aus.social</a></td>
<td align="left">TRUE</td>
<td align="right">4209</td>
<td align="right">234313</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://linuxrocks.online">https://linuxrocks.online</a></td>
<td align="left">TRUE</td>
<td align="right">3845</td>
<td align="right">185353</td>
<td align="left">US</td>
</tr>
<tr>
<td align="left"><a href="https://social.targaryen.house">https://social.targaryen.house</a></td>
<td align="left">FALSE</td>
<td align="right">3807</td>
<td align="right">109173</td>
<td align="left">US</td>
</tr>
<tr>
<td align="left"><a href="https://sueden.social">https://sueden.social</a></td>
<td align="left">TRUE</td>
<td align="right">2730</td>
<td align="right">14666</td>
<td align="left">US</td>
</tr>
<tr>
<td align="left"><a href="https://mastodon.partipirate.org">https://mastodon.partipirate.org</a></td>
<td align="left">TRUE</td>
<td align="right">2417</td>
<td align="right">31210</td>
<td align="left">FR</td>
</tr>
<tr>
<td align="left"><a href="https://oc.todon.fr">https://oc.todon.fr</a></td>
<td align="left">TRUE</td>
<td align="right">2377</td>
<td align="right">116484</td>
<td align="left">GB</td>
</tr>
<tr>
<td align="left"><a href="https://mastodon.gougere.fr">https://mastodon.gougere.fr</a></td>
<td align="left">TRUE</td>
<td align="right">1809</td>
<td align="right">207780</td>
<td align="left">GB</td>
</tr>
<tr>
<td align="left"><a href="https://awoo.space">https://awoo.space</a></td>
<td align="left">FALSE</td>
<td align="right">1743</td>
<td align="right">615982</td>
<td align="left">NL</td>
</tr>
<tr>
<td align="left"><a href="https://aleph.land">https://aleph.land</a></td>
<td align="left">TRUE</td>
<td align="right">1542</td>
<td align="right">215486</td>
<td align="left">FR</td>
</tr>
<tr>
<td align="left"><a href="https://animalliberation.social">https://animalliberation.social</a></td>
<td align="left">TRUE</td>
<td align="right">1182</td>
<td align="right">3023</td>
<td align="left">US</td>
</tr>
<tr>
<td align="left"><a href="https://dresden.network">https://dresden.network</a></td>
<td align="left">TRUE</td>
<td align="right">1141</td>
<td align="right">46729</td>
<td align="left">NA</td>
</tr>
<tr>
<td align="left"><a href="https://icosahedron.website">https://icosahedron.website</a></td>
<td align="left">FALSE</td>
<td align="right">818</td>
<td align="right">374745</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://im-in.space">https://im-in.space</a></td>
<td align="left">TRUE</td>
<td align="right">788</td>
<td align="right">65204</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://graz.social">https://graz.social</a></td>
<td align="left">TRUE</td>
<td align="right">712</td>
<td align="right">24131</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://maly.io">https://maly.io</a></td>
<td align="left">TRUE</td>
<td align="right">653</td>
<td align="right">133470</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://Bonn.social">https://Bonn.social</a></td>
<td align="left">TRUE</td>
<td align="right">597</td>
<td align="right">114461</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://scicomm.xyz">https://scicomm.xyz</a></td>
<td align="left">TRUE</td>
<td align="right">563</td>
<td align="right">18918</td>
<td align="left">GB</td>
</tr>
<tr>
<td align="left"><a href="https://xoxo.zone">https://xoxo.zone</a></td>
<td align="left">FALSE</td>
<td align="right">497</td>
<td align="right">59844</td>
<td align="left">US</td>
</tr>
<tr>
<td align="left"><a href="https://oldbytes.space">https://oldbytes.space</a></td>
<td align="left">TRUE</td>
<td align="right">382</td>
<td align="right">96653</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://berlin.social">https://berlin.social</a></td>
<td align="left">TRUE</td>
<td align="right">346</td>
<td align="right">5423</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://functional.cafe">https://functional.cafe</a></td>
<td align="left">TRUE</td>
<td align="right">321</td>
<td align="right">132400</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://social.wxcafe.net">https://social.wxcafe.net</a></td>
<td align="left">TRUE</td>
<td align="right">289</td>
<td align="right">148851</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://fediscience.org">https://fediscience.org</a></td>
<td align="left">TRUE</td>
<td align="right">289</td>
<td align="right">11322</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://mst3k.interlinked.me">https://mst3k.interlinked.me</a></td>
<td align="left">TRUE</td>
<td align="right">228</td>
<td align="right">343658</td>
<td align="left">CA</td>
</tr>
<tr>
<td align="left"><a href="https://eupublic.social">https://eupublic.social</a></td>
<td align="left">TRUE</td>
<td align="right">137</td>
<td align="right">19777</td>
<td align="left">US</td>
</tr>
<tr>
<td align="left"><a href="https://masto.raildecake.fr">https://masto.raildecake.fr</a></td>
<td align="left">FALSE</td>
<td align="right">136</td>
<td align="right">5736</td>
<td align="left">FR</td>
</tr>
<tr>
<td align="left"><a href="https://dads.cool">https://dads.cool</a></td>
<td align="left">TRUE</td>
<td align="right">84</td>
<td align="right">309546</td>
<td align="left">FR</td>
</tr>
<tr>
<td align="left"><a href="https://feuerwehr.social">https://feuerwehr.social</a></td>
<td align="left">TRUE</td>
<td align="right">72</td>
<td align="right">1173</td>
<td align="left">UA</td>
</tr>
<tr>
<td align="left"><a href="https://eupolicy.social">https://eupolicy.social</a></td>
<td align="left">TRUE</td>
<td align="right">65</td>
<td align="right">622</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://mastodon.indie.host">https://mastodon.indie.host</a></td>
<td align="left">TRUE</td>
<td align="right">24</td>
<td align="right">11558</td>
<td align="left">DE</td>
</tr>
<tr>
<td align="left"><a href="https://mastodon.land">https://mastodon.land</a></td>
<td align="left">TRUE</td>
<td align="right">13</td>
<td align="right">4683</td>
<td align="left">US</td>
</tr>
<tr>
<td align="left"><a href="https://social.imirhil.fr">https://social.imirhil.fr</a></td>
<td align="left">FALSE</td>
<td align="right">3</td>
<td align="right">47042</td>
<td align="left">GB</td>
</tr>
<tr>
<td align="left"><a href="https://social.diskseven.com">https://social.diskseven.com</a></td>
<td align="left">FALSE</td>
<td align="right">1</td>
<td align="right">75273</td>
<td align="left">GB</td>
</tr>
<tr>
<td align="left"><a href="https://share.elouworld.org">https://share.elouworld.org</a></td>
<td align="left">FALSE</td>
<td align="right">1</td>
<td align="right">1988</td>
<td align="left">FR</td>
</tr>
<tr>
<td align="left"><a href="https://social.lkw.tf">https://social.lkw.tf</a></td>
<td align="left">FALSE</td>
<td align="right">1</td>
<td align="right">6</td>
<td align="left">FR</td>
</tr>
<tr>
<td align="left"><a href="https://social.ballpointcarrot.net">https://social.ballpointcarrot.net</a></td>
<td align="left">FALSE</td>
<td align="right">1</td>
<td align="right">409</td>
<td align="left">US</td>
</tr>
<tr>
<td align="left"><a href="https://manx.social">https://manx.social</a></td>
<td align="left">TRUE</td>
<td align="right">1</td>
<td align="right">59</td>
<td align="left">CA</td>
</tr>
</tbody></table>
<p>The largest instances contain “mastodon” in their address and are rather generic communities. Other names suggest a technical / open source software focus (fosstodon, linuxrocks.online, functional.cafe). There are politically oriented communities (mastodon.partipirate.org, eupublic.social). Other servers have a geographical focus (graz.social, bonn.social, berlin.social, dresden.network, norden.social, sueden.social, aus.social). </p>
<p>I find qoto.org interesting, which also integrates other services like Gitlab and a group concept.</p>
<p>Some interesting communities are closed, e.g. scholar.social or chaos.social.</p>
<p>I can't really make sense of the country codes. To find out the countries, I used the packages <code>iptools</code> and <code>rgeolocate</code>:</p>
<pre><code>get_instance_countrycode <- function(instance) {
stopifnot(length(instance)==1) # not vectorized
ip <- iptools::hostname_to_ip(gsub("^https://", "", instance))[[1]]
if(length(ip)>1) ip <- ip[1]
if(ip=="Not resolved") return(NA)
fn <- system.file("extdata","GeoLite2-Country.mmdb", package = "rgeolocate")
rgeolocate::maxmind(ip, fn)[,"country_code"]
}
</code></pre>
<p>I don't really trust the results. For example, aus.social claims to be hosted in Australia.</p>
<pre><code class="r">table(stats$country_code)
</code></pre>
<pre><code>##
## CA DE FR GB GR IN LU NL UA US
## 2 17 9 7 1 2 1 1 1 14
</code></pre>
<p>I decided on <code>berlin.social</code>. Then the local timeline makes sense for me. I have also already found some R users and am now following them. I have also already found two interesting toots that will occupy me in depth in the short to medium term. All in all, a good start.</p>
Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com1tag:blogger.com,1999:blog-3932338495391547190.post-48769934824835977422022-08-27T16:56:00.004-07:002022-08-27T16:56:54.027-07:00Book Review: Siegfried Schrotta (ed.), Systemic Consensus Building (German)<p>This is an exciting idea based, among other things, on measuring resistance rather than approval to proposals.</p><p>Chapter 2 compares this method with the traditional majority principle. Chapter 4 proposes concrete metrics. Chapter 5 reminds me in parts of Design Thinking. Chapter 19 makes reference to Plato's aporia or hopelessness or tension. Chapter 27 has additional very practical ideas.</p><p>I can imagine that today there is even more scientific evidence for the effectiveness of this method. For example, Sarah Brosnan's finding that while we have no inborn sense of fairness, we do have an inborn sense of unfairness when we experience it. </p>Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-26897931601979084972022-08-27T08:45:00.001-07:002022-08-27T08:45:02.202-07:00Book Review: M. Scott Peck, The Different Drum<p>I have not read the book from cover to cover. But maybe it is a book where you look at the table of contents and pick out one or two chapters.</p><p>Community building is not easy and the book helps pave the way. </p><p>Would be nice if there was a newer book. A 35 year old book sometimes seems a bit dated with its references to the Cold War. Community building is gaining importance again, after Corona, etc.</p><div><br /></div>Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-49312916764132145862022-08-27T08:06:00.002-07:002022-08-27T08:06:45.658-07:00Book Review: Alice Munro, Dear Life / Too Much HappinessFrom what I remember, Jonathan Frantzen is a fan of Alice Munro. If you don't have enough time to read a novel, read a story by Alice Munro -- that's his advice as I understood it. And that's what I did and enjoyed. A story reads in three hours, ideal for a slow afternoon in the park at the weekend. <div><br /></div><div>There is probably a deep analysis, or even several, to each story. I'm not going to try to analyse the stories here in this review now. What I like, what I admire, is how Munro manages to take me out of the role of reader. The stories touch me. </div><div><br /></div><div>Some stories I have read several times: "Train", "Dimensions", "In Sight of the Lake" (inside?). </div><div><br /></div><div>These books will certainly stay on my shelf and I will pull them out from time to time.</div>Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-18044613911214641562022-04-18T14:20:00.004-07:002022-04-18T14:20:45.713-07:00Play & Analyse Wordle Games<p>So now I, too, wrote an R package with functions that make playing Wordle easy.</p>
<p><a href="https://www.nytimes.com/games/wordle/index.html">English</a> and <a href="https://wordle.at/">German</a> Wordle Games are supported.</p>
<h3 id="installation">Installation</h3>
<p>You will need the statistical software environment R. See <a href="https://www.r-project.org/">here</a> for installation notes. </p>
<p>To install this github repository, run the following code at the R console:</p>
<pre><code>install.packages(<span class="hljs-string">"remotes"</span>)
<span class="hljs-function"><span class="hljs-title">library</span><span class="hljs-params">(remotes)</span></span>
<span class="hljs-function"><span class="hljs-title">install_github</span><span class="hljs-params">(<span class="hljs-string">"kweinert/wordlegame"</span>)</span></span>
</code></pre><p>That's basically it! If you installed the package <code>tinytest</code>, you can optionally check if the installation worked:</p>
<pre><code><span class="hljs-function"><span class="hljs-title">library</span><span class="hljs-params">(tinytest)</span></span>
<span class="hljs-function"><span class="hljs-title">test_package</span><span class="hljs-params">(<span class="hljs-string">"wordlegame"</span>)</span></span>
</code></pre><h3 id="play-wordle">Play Wordle</h3>
<p>To use the tool while playing Wordle, the following steps are necessary. First, you set up a "knowledge model" in which all permissible words are stored and later the findings from your guessing attempts are also stored:</p>
<pre><code>library(wordlegame)
kn <- knowledge(<span class="hljs-string">"en"</span>) # <span class="hljs-string">'de'</span> is also supported
</code></pre><p>The wordlists of permissible words are taken from github (<a href="https://raw.githubusercontent.com/tabatkins/wordle-list/main/words">en</a>, <a href="https://raw.githubusercontent.com/SchulzKilian/GermanWordle/main/germandict.txt">de</a>).</p>
<p>Now you can use this object to output one or more suggestions for your first guess attempt. For this purpose, there is the function <code>suggest_guess</code>, which takes as arguments the knowledge object, the current round (between 1 and 6) and the number of words to be output:</p>
<pre><code>suggest_guess(kn, num_guess=<span class="hljs-number">1</span>, n=<span class="hljs-number">10</span>)
#[<span class="hljs-number">1</span>] <span class="hljs-string">"ables"</span> <span class="hljs-string">"spire"</span> <span class="hljs-string">"rones"</span> <span class="hljs-string">"maise"</span> <span class="hljs-string">"skean"</span> <span class="hljs-string">"sorda"</span> <span class="hljs-string">"cries"</span> <span class="hljs-string">"tines"</span> <span class="hljs-string">"togae"</span>
#[<span class="hljs-number">10</span>] <span class="hljs-string">"safer"</span>
</code></pre><p>Wordle gives you feedback on your guess attempt. This feedback can be passed on to the knowledge object. Wordle feedback uses colours that need to be translated into letter codes. There are three codes:</p>
<ul>
<li>green means: the letter is in the correct position. This is to be coded as "t" (true).</li>
<li>beige means: the letter occurs, but in a different position. This is to be coded as "p" (position).</li>
<li>grey means: the letter does not occur. This is to be coded as "f" (false).</li>
</ul>
<p>So if your guess attempt is e.g. "safer" and the feedback is "grey, beige, beige, green, beige", then this translates into:</p>
<pre><code>kn <- learn(<span class="hljs-name">kn</span>, <span class="hljs-string">"safer"</span>, <span class="hljs-string">"fpptf"</span>)
</code></pre><p>and you can use <code>suggest_guess</code> again to get new suggestions:</p>
<pre><code>suggest_guess<span class="hljs-comment">(kn, num_guess=2, n=10)</span>
<span class="hljs-attr"># 5</span> fits: fubar, iftar, friar, filar, flair
<span class="hljs-attr">#[1</span>] <span class="hljs-string">"filar"</span> <span class="hljs-string">"flair"</span> <span class="hljs-string">"friar"</span> <span class="hljs-string">"iftar"</span> <span class="hljs-string">"fubar"</span>
</code></pre><p>And so on.</p>
<h3 id="some-tricks">Some Tricks</h3>
<h4 id="popularity">Popularity</h4>
<p>Many words from the word lists are rare words. It is plausible to assume that these are unlikely to be the solution. To estimate the popularity of words, the function <code>popularity</code> can be used:</p>
<pre><code>popularity(c(<span class="hljs-string">"fubar"</span>, <span class="hljs-string">"filar"</span>, <span class="hljs-string">"friar"</span>, <span class="hljs-string">"iftar"</span>, <span class="hljs-string">"flair"</span>))
# fubar filar friar iftar flair
# <span class="hljs-number">1216001</span> <span class="hljs-number">434000</span> <span class="hljs-number">3212094</span> <span class="hljs-number">2630000</span> <span class="hljs-number">13500000</span>
</code></pre><p>Here we can see that 'flair' is by far the most popular word and thus a good candidate.</p>
<p>The idea for the <code>popularity</code> function came from <a href="https://github.com/KewKalustian/wordle_cracker/blob/master/script.R">Kework K. Kalustian</a> -- kudos.</p>
<h4 id="non-strict-candidates">Non-Strict Candidates</h4>
<p>Sometimes the guessing attempts reduce the permissible words to relatively few words that are at the same time quite similar. Here is an example:</p>
<pre><code>kn <- knowledge(<span class="hljs-string">"en"</span>)
kn <- learn(<span class="hljs-name">kn</span>, <span class="hljs-string">"safer"</span>, <span class="hljs-string">"fffpf"</span>)
kn <- learn(<span class="hljs-name">kn</span>, <span class="hljs-string">"glide"</span>, <span class="hljs-string">"ttfft"</span>)
</code></pre><p>In this example, after two guesses, only 6 words are possible: glute, glume, gloze,
glebe, globe, glove. Now there is the possibility to choose one of these words and rely on luck. Or we can strategically choose a word that, while certainly not the solution, effectively limits the words allowed. The function <code>suggest_guess</code> has the parameter <code>fitting_only</code>. If this is <code>FALSE</code>, then non-permissible words are also suggested. This allows the second strategy to be implemented:</p>
<pre><code>suggest_guess(kn, num_guess=<span class="hljs-number">3</span>, n=<span class="hljs-number">10</span>, fitting_only=<span class="hljs-literal">FALSE</span>)
<span class="hljs-meta"># [1] <span class="hljs-string">"cobza"</span> <span class="hljs-string">"bloat"</span> <span class="hljs-string">"vocab"</span> <span class="hljs-string">"above"</span> <span class="hljs-string">"tabun"</span> <span class="hljs-string">"novum"</span> <span class="hljs-string">"combs"</span> <span class="hljs-string">"baton"</span> <span class="hljs-string">"embox"</span></span>
<span class="hljs-meta"># [10] <span class="hljs-string">"bokeh"</span></span>
kn <- learn(kn, <span class="hljs-string">"above"</span>, <span class="hljs-string">"fptft"</span>)
<span class="hljs-meta"># 1 fits: globe</span>
</code></pre><p>The parameter <code>fitting_only</code> is only evaluated in rounds 2 to 5. If it is not explicitly set, then a heuristic is applied: if there are less than 100 permissible words, non-striked candidates are also included in the consideration, otherwise not.</p>
<h3 id="evaluating-strategies-by-simulations">Evaluating Strategies By Simulations</h3>
<p>The most fun is the search for an algorithm that quickly and reliably finds a solution to the puzzles. In my search for a strategy, I came up with four approaches:</p>
<ul>
<li><strong>Probability</strong>: Take the words currently allowed and determine which letter/position combinations occur particularly frequently. Then find a word that best fits this probability distribution.</li>
<li><strong>Contrasts</strong>: Take the currently permissible words and form all two-way combinations from them. For each combination of two, determine the letters that appear in only one of the two words. These so-called contrast letters are good for separating the two words. Now find a word that contains as many contrast letters as possible.</li>
<li><strong>Answer entropy</strong>: For one word <em>w</em> and the currently allowed words, determine the answer that Wordle would return. These answers form a probability distribution on the space of possible return values, given the word <em>w</em>. Calculate the entropy of these distributions for each admissible word <em>w</em> and take the word with the highest entropy.</li>
<li><strong>Full entropy</strong>: For each word <em>w</em> and the currently admissible words, determine the answer that Wordle would return. Now additionally determine the allowed words for each possible Wordle pattern. These two pieces of information, frequency of the answer pattern and admissible words, form a probability distribution on the Cartesian product of the answer patterns and the admissible words, given the word <em>w</em>. Calculate the entropy of these distributions for each admissible word <em>w</em> and take the word with the highest entropy.</li>
</ul>
<p>As can be seen: the strategy can become arbitrarily complicated. Unfortunately, so can the computational time: the above approaches would take -- for my patience and the computational power available to me -- too long. Therefore, I limited the number of allowed words to a maximum of 50 (parameter <code>sample_size</code> in <code>suggest_guess</code>.). </p>
<p>To see how good the strategies are, there are some help functions in the package. With <code>sim_wordle</code> a game is simulated. With <code>distr_wordle</code> several games are simulated. The function <code>compare_methods</code> calls <code>distr_wordle</code> for the above methods and returns the result as <code>data.frame</code>.</p>
<p>Here is the result of 200 simulations for each method except 'full_entropy', which takes too long.</p>
<table>
<thead>
<tr>
<th style="text-align: left;">method</th>
<th style="text-align: right;">n_runs</th>
<th style="text-align: right;">duration</th>
<th style="text-align: right;">avg_guess</th>
<th style="text-align: right;">fails</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">prob</td>
<td style="text-align: right;">200</td>
<td style="text-align: right;">53.87</td>
<td style="text-align: right;">4.431818</td>
<td style="text-align: right;">24</td>
</tr>
<tr>
<td style="text-align: left;">contrasts</td>
<td style="text-align: right;">200</td>
<td style="text-align: right;">88.15</td>
<td style="text-align: right;">4.699422</td>
<td style="text-align: right;">27</td>
</tr>
<tr>
<td style="text-align: left;">reply_entropy</td>
<td style="text-align: right;">200</td>
<td style="text-align: right;">66.68</td>
<td style="text-align: right;">4.469613</td>
<td style="text-align: right;">19</td>
</tr>
</tbody>
</table>
<p>In my opinion there is much room for improvement. Unfortunately, I no longer have the time.</p>
<p>To invent your own strategies, you need to fork the repository and change the function <code>suggest_guess</code>.</p>
<h3 id="further-readings">Further Readings</h3>
<p>Searching Twitter for "#rstats" and "wordle" reveals a lot of other information on the subject.</p>
<p>For example, there are </p>
<ul>
<li><a href="https://olyerickson.shinyapps.io/wordler/">this</a> and <a href="https://mohang.shinyapps.io/wordle/">this</a> shiny app, </li>
<li><a href="https://github.com/DavidASmith/wordler">this</a> and <a href="https://github.com/coolbutuseless/wordle">this</a> package,</li>
<li><a href="https://github.com/alicetprojects/wordle_tool">this</a> and
<a href="https://blog.ephorie.de/wordle-solve-wordle-with-r#more-5706">this</a> blogpost, or</li>
<li><a href="https://www.youtube.com/watch?v=YEoCBnQwdzM">this</a> and <a href="https://www.youtube.com/watch?v=v68zYyaEmEA">this</a> video.</li>
</ul>
Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-5265432499157295102022-03-03T12:37:00.001-08:002022-03-03T12:37:56.655-08:00Reviewing my First Shiny Project (1/n) – Buttons<p>My first serious Shiny project is finished: 4517 lines of code (without comments)! Now I’m taking the time to go through the code again and reflect. What has turned out well and can be continued in the future? What are problem areas and need to be reworked?</p>
<p>I share my thoughts here in a series of articles, also to sort them out and not to forget them. This first article is about buttons.</p>
<div id="vertical-alignment" class="section level1">
<h3>Vertical alignment</h3>
<p>Often my button is placed to the right of an input box, slider or similar. The other input elements often have a label, the button does not and is then vertically shifted:</p>
<div class="figure">
<img src="data:image/png;base64,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" width="100%" alt="vertically shifted button" />
</div>
<p>On <a href="https://stackoverflow.com/a/70543848/216064">stackoverflow</a> I asked how to fix this and quickly got a solution:</p>
<pre class="r"><code>shiny::column(2,
shiny::actionButton(ns("dbconnect"), "Connect!"),
style = "margin-top:25px;" ## <-- !
)</code></pre>
</div>
<div id="warnings-and-error-messages-in-shiny" class="section level1">
<h3>Warnings and Error Messages in Shiny</h3>
<p>I want the code that actually does something (hereafter: working code) to be separate from Shiny. That means I don’t want any calls to <code>showNotification</code> in my working code. However, I still want to use the classic signal functions of R – <code>message</code>, <code>warning</code> and <code>stop</code> – in my working functions.</p>
<p>On <a href="https://stackoverflow.com/a/30490698/216064">Stackoverflow</a> I found a solution for this and defined it as the function <code>exec_safely</code>. The function is stored <a href="https://pastebin.com/3RURswkd">here</a>. It is a decorator, where an expression is executed with <code>tryCatch</code> and <code>withCallingHandlers</code>.</p>
<p>Now when I write an event handler for a button, I use <code>exec_safely</code>:</p>
<pre class="r"><code>rv <- shiny::reactiveValues()
shiny::observeEvent(input$btn, exec_safely(session,{
rv[["log_x"]] <- log(as.character(input$x))
})
)</code></pre>
<p>The <a href="https://pastebin.com/3RURswkd">sample app</a> demonstrates the behaviour. To do this, the code at the link above must be read in, e.g. via <code>source("https://pastebin.com/3RURswkd")</code>. Then both the functions <code>exec_safely</code> and <code>demo_exec_safely</code> are defined. The app is started via <code>demo_exec_safely()</code>.</p>
<p>Negative values should produce a warning and non-numeric values an error and display in the web interface.</p>
</div>
<div id="modal-confirmation-dialogue" class="section level1">
<h3>Modal Confirmation Dialog</h3>
<p>Before deleting, I want to show the user a modal dialogue and give them a chance to change their mind.</p>
<p>I found a solution to this on stackoverflow as well, but can’t find the post about it anymore. I use the code as a pattern, wrapping it in a function requires too many parameters and doesn’t increase readability. Here is an example:</p>
<pre class="r"><code> ns <- session$ns
# remove button pressed?
shiny::observeEvent(input$delete_button, {
shiny::showModal(shiny::modalDialog(
title="Are you sure?",
"Deleting is irreversible.",
footer = shiny::tagList(
shiny::actionButton(ns("delete_confirmed"), "Delete!"),
shiny::modalButton("Cancel")
)
))
})
shiny::observeEvent(input$delete_confirmed, exec_safely(parent, {
shiny::removeModal()
# do it...
message("Deletion complete.")
}))</code></pre>
<p>Note that I’m using Shiny modules, so I need to wrap the <code>id</code> of the “Confirm” button in the namespace function <code>ns</code>.</p>
</div>
<div id="plot-button" class="section level1">
<h3>Plot! Button</h3>
<p>In my app there are several tabs that visualise data from a database. The visualisation is parameterised. The parameters either concern the data (e.g. a time period) or are display options (e.g. the font size). Accordingly, the <code>renderPlot</code> function can be understood as a function with two arguments: <code>do_plot(dset, plot_options)</code>.</p>
<p>It has proved useful to include a “Plot!” button that recalculates the <code>dset</code> variable:</p>
<pre class="r"><code>rv <- shiny::reactiveValues()
shiny::observeEvent(input$btn, {
rv[["dset"]] <- calc_dset()
})</code></pre>
<p>The function <code>calc_dset</code> is often a reactive expression depending on one or more interactive input parameters and time-consuming.</p>
<p>At the above <a href="https://pastebin.com/3RURswkd">link</a>, a function <code>demo_confirm_plot</code> is also defined, which demonstrates both the confirmation dialogue and the Plot! button.</p>
<p>Note that the parameter <code>n</code> can be changed without re-plotting. Re-plotting only occurs after the “Plot!” button is pressed. This allows the user to set the data parameters at their leisure (especially if there are multiple parameters) and decide for themselves when to perform the elaborate operation.</p>
<p>If, on the other hand, the parameter ‘col’ is changed, the plot is immediately regenerated, because no data has to be recalculated.</p>
</div>
<div id="summary" class="section level1">
<h1>Summary</h1>
<p>Regarding the implementation of buttons in my first larger Shiny project, I am satisfied. There are still some code places where I proceeded differently than described here, this still needs to be adjusted and updated.</p>
<p>Share your thoughts on this article on <a href="https://twitter.com/intent/tweet?url=https://factbased.blogspot.com/2022/03/reviewing-my-first-shiny-project-1n.html&text=Buttons%20in%20shiny">Twitter!</a></p>
</div>
Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-33238920464237602402021-11-28T13:26:00.004-08:002021-12-01T11:09:10.941-08:00Book Review: Helmut E. Lück, Kurt Lewin<p>This is a book that I read spontaneously and only in parts. The book is written in an accessible way; there is no difficulty in skipping sections.</p><p>What I took away: Kurt Lewin tries to overcome mechanistic and linear-causal thinking in psychology, using ideas from physics (force field) and mathematics. He starts from a <i>life space</i>, consisting of the person and his environment, which this person passes through and changes in the process. So the person acts and is influenced by the life space, like a compass needle by the magnetic field or an asteroid by the earth's gravitational field.</p><p>Lewin has a spatial conception of the life space. As an early example, Lewin describes the experience of a wartime landscape, where he perceived the front as the boundary of the landscape and where the state of war also changes the objects in the landscape, e.g. furniture, and their wartime character becomes visible, e.g. as fire wood or barricades. </p><p>The elements of life space, and this is a central concept of Lewin's, can have (attractive or repulsive) promptive character, i.e. <i>valence</i> (from valency and value). The occurrence of several valences at the same time can lead to conflicts for the person, such as</p><p> - the choice between two elements with positive valence</p><p> - the choice of the lesser evil between two elements with negative valences</p><p> - the approach/avoidance conflict in the case of elements that have both a positive and a negative valence</p><p>The life space as a field with attractive and repulsive forces is one of Lewin's objects of investigation. The readiness to act, the <i>determining tendency</i> of the person is the second field of investigation of Lewin and his students. </p><p>I found the connection to Gestalt psychology interesting. Christian von Ehrenfels generalised the idea of melody into a concept of <i>gestalt</i>, and named oversummativity -- a melody is more than the individual notes -- and transposability as characteristic properties. A drawing of a table is also a gestalt: more than the individual strokes and enlargeable. Lewin now transferred the Gestalt idea to actions and so dealt with <i>unfinished / interrupted actions</i> and <i>substitute actions</i>.</p><p>As I said, I have only read a little of the book, and I am leaving some of it out. I didn't find the transfer of topological concepts to psychological phenomena very interesting. </p><p>Since reading it, I walk through my life space with altered attentiveness and notice the valences around me. Trello has it, the sweets on the table have it. The subway coming in makes me stand up, even if it's the wrong line. Thinking in fields reminds me of Porter's 5 forces model and Eckhart Böhme's Wheel of Progress. The idea of actions as movement in the life space reminds me of the customer journey in design thinking.</p><p>For that alone, the book is an enrichment.</p>Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-79350094708428452462021-08-16T11:16:00.002-07:002021-08-16T11:16:33.599-07:00Book Review: Keith Richards, PRINCE2 Agile<p>In March 2021 I passed the exam to become a "PRINCE2 Agile Practioner". The training and the preparation for the exam were very helpful for me to reflect myself as a project manager in a consulting company.</p><p>In addition to the training, I had two textbooks at my disposal: the general PRINCE2 textbook ("Managing Successful Projects with PRINCE2") and "PRINCE2 Agile", which I will go into in more detail in a moment. </p><p>First, a brief introduction to PRINCE2. PRINCE2 is (as I understand it) a partially abstract system for describing project structures. I have the idea that some smart people have analysed a large portfolio of projects and have extracted and named recurring structures (principles, themes, processes) from it. For example, I found it interesting that it is not a good idea to bundle certain roles in the project in one person, e.g. project management and project assurance.</p><p>While PRINCE2 is quite abstract and formal, PRINCE2 Agile is an adaptation of PRINCE2 that works well for complex projects. Complex projects are projects where it is not clear in detail at the beginning how the project will proceed and are in contrast to complicated or simple projects.</p><p>Here, the author brings order to the different agile frameworks. On the one hand, there are agile practices (e.g. Scrum) and tools (Kanban). I use Scrum practices in particular more and more. The "time-boxing" of the sprints reduces stress because it protects against subsequent call-ins. Changes just have to wait until the next sprint. Stand-ups are helpful in a multi-project environment to remind people about the project.</p><p>But the word "agile" is not just about a working style. "Agile" needs framework conditions. The client has to be convinced of the iterative way of working and a flexible handling of quality and scope. And the team also needs to get to know agile practices and be willing to try them out. The book highlights this and gives valuable advice on how to achieve each. </p><p>For example, the "Agilometer" is presented, where agility is measured in six dimensions. Because according to the author -- whose name is Keith Richards, by the way -- "agile" is not to be understood categorically (yes/no), but metrically (more or less). In my opinion, the Agilometer is comparable to the newer Agile Fluency Model.</p><p>Although I found the book very helpful to learn about agile project management. However, I also needed the impetus provided by the exam, the incorrectly answered questions and the follow-up research. The book is not suitable to browse through in a quiet minute. It is heavily structured, with lots of lists and headings. It is not visually attractive. Therefore, it only gets 4 out of 5 points.</p><p>The next step in this topic for me is to apply the methodology to projects of all kinds, to take the time to apply the PRINCE2 terminology to what I am doing. </p>Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-46888130362339594632021-07-31T00:28:00.002-07:002022-03-03T13:17:46.644-08:00Book Review: Arieh Ben-Naim, Entropy Demystified<p> The author explains entropy essentially with a dice-rolling experiment: Given N dice, e.g. all with the six on top, choose any dice (chance no. 1) and roll (chance no. 2). If the experiment is carried out often enough, the sum of the numbers on the dice approaches a value quite stably. It is very likely that the value 6N will not be reached again if N is sufficiently large.</p><p>It is clear from the experiment what is meant by (generally not directly measurable) specfic events (the numbers on the individual dice) and by (directly measurable) "dim" events (the sum of the numbers on the dice). I would have been interested to know whether the relationship between specific and measured events must always be linear.</p><p>The fact that 6N will most likely not be reached again is an illustration of the "arrow of time".</p><p>There are many more specific events that lead to a sum 3N or 4N than to 6N. This seems to me to be the main point of the book.</p><p>The author equates "entropy" with search cost, i.e. as a measure of missing information. I would have liked to see a proof of equivalence to the usual definition of entropy (sum of p log p over all p).</p><p>These are definitely important insights for me. I'm not sure if I needed to read this at this length to understand it. Why does this need to be discussed for 2, 4, 10, 100 and 10000 dices? And then again imagine that it's not numbers of dice but colours, smells, tastes or sounds?</p><p>I don't find the book entertainingly written. The examples from physics (Bose-Einstein configurations, Fermi-Dirac configurations) did not help me as a non-physicist. While reading, I had the idea that one could write a book "Entropy Mystified", where the many applications of this ingenious concept are presented.</p>Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-31876132419160266632021-07-20T00:01:00.001-07:002021-07-20T00:01:22.500-07:00Book Review: David Foster Wallace, Everything and More. A Compact History of Infinity.<p> I came across David Foster Wallace through his famous speech "This is Water". I then read some of his essays, about lobsters, about cruises, about severe depression and about how few good books there are on mathematics that can be understood by lay people.</p><p>The last essay in particular, "Rhetoric And The Math Melodrama", made me curious about how Wallace himself would write such a book on mathematics. And indeed, Everything and More is a unique non-fiction book.</p><p>I like the personal references: Wallace's niece is mentioned, the high school teacher gets a place of honour. I like how Wallace sketches the human side of the mathematicians (Kronecker, Cantor, Weierstrass, Dedekind et al) with one paragraph, I had an immediate image, and contrary to some biographies, I think these images are plausible. </p><p>I also like how he takes elements of textbooks on mathematics and plays with them. Abbreviations suddenly appear that have to be remembered, proofs, "interpolations". It may give a layman a sense of how mathematics is often written then and now.</p><p>The many footnotes and "IYI" ("if you're interested") insertions make the revision processes visible to me. Sometimes there is direct reference to notes from the editor, sometimes a footnote nullifies itself, "but in an interesting way". This brings Wallace closer to me, I am not only concerned with the text and its content, but also with Wallace, with the thoughts that (might) have led to the text.</p><p>From a mathematical-philosophical point of view, I find §1c particularly interesting, where two types of abstraction are presented: one where the concrete is inferred to the abstract ("horse", "forehead", "horn") and one where different abstractions are linked together ("unicorn"). I also find interesting, even if I don't yet know exactly what I will do with it, the criticism of the "Theory of Types" in §7f, according to which it is be a philosophically bad idea to derive definitions from paradoxes. </p><p>Mathematical induction, the epsilon delta technique and the diagonal proof are presented as techniques for dealing with the infinite. From my point of view, the compactification is missing, although the idea was touched upon. I would also have liked more on the axiom of choice. But I can understand that in a book where Cantor is the focus, it is only mentioned. (For those interested in mathematics: Eric Schechter in Handbook of Analysis and its Foundations really goes into this topic intensively from a practical point of view).</p><p>In short: a beautiful book that invites you to pay attention not only to the content but also to the form.</p>Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-40872314522882711742021-01-05T15:12:00.004-08:002021-01-05T15:27:03.196-08:00Book Review: Jesper Juuls, Aus Stiefeltern werden Bonuseltern (German)<p>This was a gift from my life partner. I like the neologism "bonus parent", but I'd rather be "adult friend" than "bonus dad".</p><p>The book is organized by situations or issues that can occur in patchwork families.The book points out possibilities that I would not have thought of myself, and it points out preconceptions or misconceptions that perhaps many people -- including me -- have. </p><p>Still, something makes me not give the book full marks. It leaves me wanting to read more; it remains an introduction.</p><p>Another point is that the translator seems to have failed to alternate between genders. (I have read the German edition).</p><p><br /></p>Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-20343207455384358632020-12-27T10:29:00.003-08:002021-01-05T15:08:19.571-08:00Book Review: Michael Gelb, Body Learning: An Introduction To The Alexander Technique<p>This book (its German edition) was given to me by my Alexander teacher when I asked her for a recommendation.<br /><br />I like it. It is well-structured: </p><p></p><ol style="text-align: left;"><li>basic terms, </li><li>a in my opinion honest and enthusiastic exposition of the possibilities this technique has to offer (spoiler: it's not only about posture), </li><li>exemplary, in my opinion sometimes pessimistic, exposition of the possibilites this technique has to offer when teached in schools, and </li><li>a tentative list of suggestions for self-experimentation without teacher.</li></ol><p></p><p><br />I am not sure if I would have understood the d) part as I do now after some Alexander lessons. I think lessons are some kind of shortcut to the experiences Alexander has to offer.<br /><br />Mindblowing for me was how close related Alexander-Technique and John Dewey's philosophy are. I am still sorting this out.</p>Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-14930278017177641322020-10-04T05:17:00.005-07:002020-10-04T05:19:20.369-07:00Book Review: Stefan Klein, Alles Zufall (German)<p>Ein gutes Sachbuch: angenehm, ja unterhaltsam zu lesen. Der Autor schreibt in Geschichten und vermag mich manchmal zu berühren.</p><p>Die Geschichten, woran ich mich erinnern werde:</p><p>Die Liebeserklärung an die Libelle in Kapitel 6, ein wunderschöner Organismus für ein Leben im Fliegen, gefolgt von dem Hinweis, dass die Fliegen (und damit auch die Mücken) evolutionsbiologisch aus etwas der Libelle Ähnlichem entstanden sind. "Nur weil die Evolution zufällig verläuft, war dies möglich." Was meine Vorstellung über die Position des Menschen in der Evolution verändert hat.</p><p>Die Charakterisierung des Mathematikers John von Neumann in Kapitel 8 als jemand, der eigennütziges Denken als Naturgesetz betrachtete. Die ganze Spieltheorie wirkt auf mich wie eine Theorie des Kampfes jeder gegen jeden.</p><p>J.v.Neumann war dann auch derjenige, der die Städte ausgewählt hat, auf die die ersten Atombomben abgeworfen wurden, und die Aufrüstung Amerikas mit Atomraketen empfahl. Er diente als Vorbild für "Dr. Seltsam oder wie ich lernte die Bombe zu lieben".</p><p>Das Layout, die Anmerkungen und das Literaturverzeichnis, alles sehr schön aufgemacht und gefällt. </p><p>Als Mathematiker und potenzieller Glücksspieler muss ich aber doch am Gesamtkonzept herumnörgeln und will nur 4 von 5 Sternen geben. Die sehr kurzen Ausführungen zur Entropie in Kapitel 3 reichen mir nicht aus. Hier wäre auch eine gute Geschichte möglich gewesen, angefangen von Laplaces Prinzip der Indifferenz hin zum Prinzip der maximalen Entropie. Die wichtige Gleichgewichtsvoraussetzung des Prinzips der maximalen Entropie fehlt, und damit machen die ganzen Ausführungen zum Leben recht wenig Sinn für mich. </p><p>Man merkt, dass der Autor sich in seinem akademischen Leben mit Hirnforschung befasst hat und seine vorhergehenden Sachbuchpublikationen u.a. Fragen der Evolution behandelten.</p>Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-55408830111488532402020-06-25T09:49:00.001-07:002020-06-25T09:49:21.650-07:00Book Review: L.A. Paul, Transformative ExperienceThere are decisions that we cannot make through reason. These are, for example, decisions that change us in such a way that we cannot imagine the situation after the decision. Should I have a child? Should I join the church? Or, to quote an example from a book I recently finished: Should I accept the inheritance or not? L.A. Paul speaks of transformative experiences and sheds light on the problems that a rational, reason-based approach entails:<br /><br />
<ol>
<li>Is the information available on the consequences of the decision applicable to me?</li>
<li>Problems of merging information: "There might be a mistake in trying to reduce the richness and quality and character of human experience to numbers".</li>
<li>Diachronic decision-making: "Which self matters: the self making the decision, or the self that would result?"</li>
</ol>
It's about the value of first-hand experience. There is a difference between getting explained what "red" is and seeing red. It is worth pursuing this value of self-made experiences and not relying or not relying solely on the views of others. "There's a role for first-person experience for evaluating quality of life".<br /><br />The book by L.A. Paul is for me an example where reason shows limits to reason. "I want us to recognize what we can do and what we can't do. What we can know, and what we can't know. Not set ourselves impossible tasks. So, take a stance involving epistemic humility; and then, from that stance, look at what kinds of decision models we might be able to build". I like that. Other examples for me are Karl Popper on truth and Noam Chomsky on the limits of knowledge that follow from language.<br /><br />Actually, I didn't read the book at all, but heard an <a href="https://www.econtalk.org/l-a-paul-on-vampires-life-choices-and-transformation/">interview </a>about the book. From her voice, the author seems to have found peace in reason. I am not planning to read this book, but am waiting for her next book, "Transformative Religious Experience and the Paradox of Empathy", expected 2021.<br />Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-52676916932933845862020-03-06T15:52:00.000-08:002020-03-06T15:52:01.907-08:00Me at “We Are Millions“<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img border="0" data-original-height="1276" data-original-width="956" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY2-Zqw0ftqo0l_r0P2sfPFEvZytiV2Q7vEl0z_Ed8UxgwspJ4uk3hfIBs0suFK3ci9NrIqMTOm9atkUPHrRL7NIAwp3x9VC77lRdXC4TVXmMgH9w2Jdq4nAmS6Br7l982Apb5jrPn0xY/s320/photo5390959799828589836.jpg" style="margin-left: auto; margin-right: auto;" width="239" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="https://www.actvism.org/latest/we-are-millions-campaign-julian-assange/">Assange</a></td></tr>
</tbody></table>
<br />Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-20962083027156378892020-03-01T14:05:00.001-08:002020-03-01T14:05:19.724-08:00Berlinale: Sweet ThingA film from a loving father, showing the faces of his beautiful daughter and son. If he were a painter, he would paint like August Macke painted his wife.<br />
<br />
Apart from this love, the film didn't tell me much new.Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-60877533634470119702020-03-01T14:01:00.000-08:002020-03-01T14:01:12.958-08:00Berlinale: SurgeA part of me seeks balance, avoids big changes. When big changes are inevitable, the system can get out of balance and remain in a screaming state for a while until a new balance is found.<br />
<br />
This balancing movement is, for example, set to music in Gustav Mahler's First Symphony, 4th movement "<a href="https://www.youtube.com/watch?v=5IQDQ9Qw0bQ">Stormily agitated – Energetic</a>" and also the subject of Rita Kalnejais' film "Surge". The increasingly wobbly camera work is intended to underline the movement. The leading actor was known to me as Grenouille from "The Perfume". I liked looking at him and at some point I sympathized with his transformation.<br />
<br />
When I ride my bicycle home, next to the highway, the cars at walking pace like every working day at this time, I wonder why these compensatory movements are so rare.Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-61413142153435137972020-03-01T13:46:00.003-08:002020-03-01T13:46:58.985-08:00Berlinale: SiberiaThe plot leaves the real world when the gambler turns into a bear. The film ends with a talking fish.<br />
<br />
For me, the film is an intense, partly disturbing firework of memories and feelings, as they are typically experienced by a man. It is about the soul, about life and death, about parents, about the women/wife, about reason and its limits.<br />
<br />
Now and then there is an allusion to the "black arts", for me a Faustian motif. Abel Ferrara was unknown to me before; I would like to see more films by him. I will probably watch Siberia a second time.<br />
<br />Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-59427988875343389162020-03-01T13:31:00.000-08:002020-03-01T13:31:10.305-08:00Berlinale: FREMThe filmmaker took some beautiful pictures of Antarctica using drones. But instead of one more episode of "National Geographic" she decided to add an idea: How would it look, how would it feel if an A.I. starts getting interested in life?<br />
<br />
The result is some analog visual effects and a nerve-racking sound, which in my opinion is almost a psychological torture. The sound reminds me of <a href="https://www.youtube.com/watch?v=s5ZrpXoanQI">a song by Hüsker Dü</a> from 1984. I, for one, suffered so much that I slid back and forth in my cinema chair and my mobile phone slipped out of my pocket unnoticed and got lost.<br />
<br />
But after the movie I don't know anything new about A.I.. My feeling is that an A.I. would not simply collect images, but would interact with the environment. The researcher Karl Friston once joked that A.I. stands for active interference.<br />
<br />
The film didn't teach me anything new about life either. Since in Antarctica, it doesn't distinguish between plants and animals.<br />
<br />
What remains are some landscapes from the Antarctic, which show me that even non-life, relaxation processes in the thermodynamic sense, can lead to beauty. And there remains some envy of the filmmaker who made this trip to Antarctica. (My cell phone was found the next day.)Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-8460748823964585982020-03-01T13:01:00.002-08:002020-03-01T13:01:22.939-08:00Berlinale: Los LobosFor me the most disturbing film I have seen this year at the Berlinale. An autobiographical film about a mother who goes to the United States with her two sons. While she takes on several jobs, the sons remain alone in the apartment.<br />
<br />
The film got under my skin because the truth slowly unfolded. At first I thought it was "only" the three people, a single incident, but later I realized that there are whole districts in which such precarious conditions prevail. And it takes a while before I understand that the at first playful climbing action of the two boys serves to urinate in the kitchen sink because the overstrained, exhausted mother has locked herself in the bathroom.<br />
<br />
The role of the church is dubious. The gestures of gratitude have something compulsively sick about them, especially because the mother stands sceptically beside them and actually only wants to have food.<br />
<div>
<br /></div>
Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-31469779005987030422020-03-01T12:48:00.000-08:002020-03-01T12:48:12.166-08:00Berlinale: Petite FilleBefore the movie, I didn't know that there were boys at 7 or 8 who thought they were girls -- "gender dysphoria"<br />
<br />
During the movie, I thought, how can you know what it means to have gender x or y at age 7 or 8? Isn't it more like being told: you're a boy, you have a penis. And the consequences, all the stuff with the dolls, the clothes, the long hair comes after, step by step? And why does the mother say "Madmoiselle" and not "Sasha"? <br />
<br />
After the film, while listening to the director, a present, calm, sensitive man, I thought, maybe there really is such a thing such as a child becoming irreversibly attached to the opposite sex. <br />
<br />
In the end, I believe that most of the problems of "gender dysphoria" would be obsolete if we would stop forcing <a href="https://www.youtube.com/watch?v=NybJ-xHUpdc">gender stereotypes</a> on children at an early age.Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-66760917503943693592020-03-01T12:30:00.002-08:002020-03-01T12:48:26.448-08:00Berlinale: H is for Happiness<b><span style="font-size: x-large;">A</span></b>ustralian<br />
<br />
<a href="https://www.allenandunwin.com/browse/books/childrens/childrens-fiction/My-Life-As-an-Alphabet-Barry-Jonsberg-9781743310977"><b><span style="font-size: x-large;">B</span></b>ook</a><br />
<br />
<span style="font-size: x-large;"><b>C</b></span>inematographically<br />
<br />
<span style="font-size: x-large;"><b>D</b></span>eveloped.<br />
<br />
<span style="font-size: x-large;"><b>E</b></span>ventually,<br />
<br />
<span style="font-size: x-large;"><b>F</b></span>elt<br />
<br />
<span style="font-size: x-large;"><b>H</b></span>appiness.Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0tag:blogger.com,1999:blog-3932338495391547190.post-4823549625457694062020-03-01T12:22:00.001-08:002020-03-01T12:22:46.110-08:00Berlinale: One of these daysMy first film at the Berlinale this year was the premiere of the panorama film "one of these days". The next morning, I was once again standing in the queue at Kudamm to buy new tickets in advance. It was drizzling, and I thought about the film.<br />
<br />
The film is about a competition: Twenty people stand around a car and touch the car with at least one hand. The last person standing wins the car. Basically, it's an advertisement for the car salesman on whose premises the competition takes place.<br />
<br />
It's about how much you really want something. It's a little bit like waiting in line at the Kudamm. After ten minutes in the drizzle, one or the other person has left. In front of me there were two who took turns: one in the queue, the other under the rain roof. Others had chairs with them.<br />
<br />
I had hoped for more from the film. A cinematic representation of waiting, an interior perspective with changed colours for example. Something about the motives to participate and about the occasions to give up. I had firmly expected the sentence: "It's only a car". Despite the two hours the director gave away a lot. In this respect, the film was a disappointment to me.<br />
<br />
One character from the film comes into contact with his fear of not being enough for his beautiful wife and fails because of this fear. A fear I can well understand. The beautiful woman is played by <a href="https://images.app.goo.gl/cfyUYFxdmrrBrhDe9">Callie Hernandez</a> and looks a little bit like the ticket seller at the box office at Kudamm, where I've been three times already and who has this glow in her eyes. Since it was the premiere of the film, some of the people involved in the film came on stage afterwards. Besides the beautiful Callie, I also noticed "The Notwist", a band I heard <a href="https://www.youtube.com/watch?v=-gS7hzi5E7Y">25 years ago</a> when I was at school. Nice to know they are still around.<br />
<div>
<br /></div>
Karsten W.http://www.blogger.com/profile/05710598626358932856noreply@blogger.com0