7th Anniversary

I reached a million views on 2017 September 27th.

Near the start of September, I had wondered if I would reach a million before my 7th anniversary, which is today. I used the traffic to this site to predict when I would hit the mark.

library(ggplot2)
library(dplyr)
library(cowplot)

# traffic as of 2017 September 4th
d <- read.csv('https://davetang.org/site_stat/blog_20170904.csv')
d$date    <- as.Date(d$date)
d$day     <- factor(weekdays(d$date), levels = c('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'))
d$weekend <- grepl(pattern = "^S", x = d$day)
d$month   <- factor(months(d$date), levels = month.name)
d$quarter <- factor(quarters(d$date))
d$year    <- format(d$date, "%Y")
d$cumsum  <- cumsum(d$views)

group_by(d, year) %>% summarise(views = sum(views))
# A tibble: 5 x 2
   year  views
  <chr>  <int>
1  2013  87415
2  2014 253844
3  2015 283973
4  2016 223065
5  2017 135922

head(cumsum(d$views))
[1] 130 399 657 803 855 908

ggplot(d, aes(x = date, y = cumsum(views))) +
  geom_point() +
  geom_smooth(method='lm')

Not the best fit.

Use only 2017 data to predict.

d_2017 <- d[d$year >= 2017,]
head(d_2017)
           date views       day weekend   month quarter year cumsum
1441 2017-01-01   117    Sunday    TRUE January      Q1 2017 848414
1442 2017-01-02   220    Monday   FALSE January      Q1 2017 848634
1443 2017-01-03   453   Tuesday   FALSE January      Q1 2017 849087
1444 2017-01-04   520 Wednesday   FALSE January      Q1 2017 849607
1445 2017-01-05   549  Thursday   FALSE January      Q1 2017 850156
1446 2017-01-06   382    Friday   FALSE January      Q1 2017 850538

ggplot(d_2017, aes(date, cumsum)) +
  geom_point() +
  geom_smooth(method = 'lm')

Much better fit.

Perform a linear regression.

fit <- lm(cumsum ~ date, d_2017)

# will I hit a million before my 7th anniversary?
predict(fit, data.frame(date = as.Date('2017-10-01')))
      1 
1001525

predict(fit, data.frame(date = as.Date('2017-09-28')))
       1 
999830.9

# not far off the real date
predict(fit, data.frame(date = as.Date('2017-09-29')))
      1 
1000396

I have mentioned the traffic to this site several times before. The main reason I do so is because it's one of the means by which I assess whether this site is still relevant and useful to people. I can only assume that some of the visitors have found the posts useful.

What's new since my last anniversary post? The biggest change is that I have started working with single cell data. In addition, I have been a bit more active with blogging. The period between my 5th and 6th anniversary, I only wrote 13 posts. Between my 6th and 7th anniversary, I wrote 29 posts, which is over two a month, and was my aim! I hope to keep it up.

As usual, let me know if you have found my blog useful. It really does motivate me. Have fun.




Creative Commons License
This work is licensed under a Creative Commons
Attribution 4.0 International License
.
4 comments Add yours
  1. Congratulations, Davo, with the 7th anniversary and the million views! The number of posts doesn’t matter that much, their informational content does, and your posts always have been examples of practical bioinformatics that is useful for many. I refer to many of your posts when teaching genomics classes. Good luck for another 7 years of blogging!

  2. Hi Dave, yes, your blog is useful!, thanks for this, I regularly refer to it to refresh my memory, your hard work is appreciated!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.