As of 2016-02-26, there will be no more posts for this blog. s/blog/pba/
Showing posts with label Blogger. Show all posts

If you have a blog with more than a thousand of posts, what are you going to do with broken links? Or the question should be how can you know if the links in your posts are still working? Links fail to work all the time and thats no surprise, and if you hope readers would help report, well, you can jut forget it. You have to check them on your own.

But you know thats an impossible task. So, I was thinking how on Earth I can check the links. two years ago, I wrote a shell script linkckr.sh. Its a simple script to check a HTML file or URL, but it definitely not for checking entire blog.

And that was when lnkckr came into the picture, a Python 2/3 library with command-line script, supports list of links, HTML, and Blogger XML Export file. You feed it with the XML file, and it gets to work for you.

https://lh5.googleusercontent.com/-JBBe-HVH_0M/URuaB0yeZHI/AAAAAAAAEc8/E6O7uL9gmJI/s800/lnkckr-blogger.png

I have also updated b.py to add new command for using lnkckr to check links, I can now check the links within Vim while writing this blog post in reStructuredText. This could save some troubles when you add broken links and you dont even realize. Believe me, many bloggers do that a lot.

lnkckr not only checks links as in anchors <a/> but also the images, iframes, or anything elements with attributes href and src. So its fairly thorough checking. It also does quick check on fragment part of URL. Some #id also disappear after some time.

Originally, I had thought of adding this checking function to bea, which already does some analysis on Blogger XML Export file, but I dropped the idea when I saw more potential for lnkckr to be standalone. It loads Blogger XML Export file, and can be extended to support WordPress export file or anything other data dump files.

lnkckr is pretty new and probably still very buggy. Any feedback is welcome!

Recently, I noticed there was an Disqus issue with mobile template. I wrote my own Blogger template (the template in the post is super outdated) and didn't care about mobile, although 3.5% of visitors are mobile users. Every day, there is a few posts with ?m=1 in my daily report, they had been under my radar for very long time.

Few days ago, I simply set desktop theme as mobile theme after I saw the comments were from Blogger's commenting system, so Disqus comments will show up and I don't have to update Blogger layout widget for mobile devices. Going through those XML without proper official documentation is a pain-in-ass and unfair guessing game, you will see an example later in this post.

I wasn't aware that even Disqus loaded, it didn't really work properly due to mis-configuration. On Disqus, the query part is part of identification of a thread and that would be a problem since a not-too-old-with-slug-feature blogging platform most likely wouldn't require to use something like ?p=### to identify a post which visitor is requesting.

So, for mobile users, ?m=1 would be a problem as well as some tracking query which are appended after post URLs.

If you use automatic method when you migrate to Disqus, which Disqus edits the template for you, then you should be fine. However, if you write your own template from scratch and add XML and JavaScript for Disqus by hand, you may want to double-check. I also suspect Blogger's ccTLD resolution might also cause same issue. If you live in USA and you may not even be aware of it since it's always be .blogspot.com for you unless you use custom domain as I do, then ccTLD wouldn't cause you any trouble.

Be sure to append ?m=1 to a post which has comments, check if those comments are loaded. If it says 0 comments, then it's time to fix your template.

The quickest way is to set disqus_url:
<script>
  var disqus_url = "<data:blog.canonicalUrl/>";
  if (!disqus_url.length) {
    disqus_url = "<data:blog.url/>";
  }
</script>
or simply use the following in posts loop:
<script>var disqus_url = "<data:post.canonicalUrl/>";</script>
I adopted the code from Disqus' code, Blogger's documentation has no mention of canonical link. Before I checked out Disqus' code, I used
// needs jQuery
window.disqus_url = $('link[rel=canonical]').attr('href');
// and another possible method
window.disqus_url = location.protocol + '://[THE_BLOG_DOMAIN]' + location.pathname;
I think Disqus should look up if there is a canonical in presence before it uses window.location.href:
<link rel="canonical" href="http://example.com/">

Just for the record, the old Disqus method's code looks like:
<!-- +disqus -->

<a class='dsq-comment-count comment-link commentslink' expr:href='data:post.canonicalUrl + &quot;#disqus_thread&quot;'>View Comments</a>

<!-- -disqus -->

<!-- +disqus -->

<div id='disqus_thread'/>
<div id='disqus_post_title' style='display:none;'><data:post.title/></div>
<div id='disqus_post_message' style='display:none;'><data:post.body/></div>
<script type='text/javascript'>
  var disqus_url = '';
  var disqus_title = document.getElementById('disqus_post_title').innerHTML;
  var disqus_message = document.getElementById('disqus_post_message').innerHTML;
</script>
<script src='http://disqus.com/forums/[DISQUS_SHORTNAME]/embed.js' type='text/javascript'></script>
<noscript>Please enable JavaScript to view the <a expr:href='&quot;http://disqus.com/?ref_noscript=[DISQUS_SHORTNAME].disqus.com&quot; + data:post.url'>comments powered by Disqus.</a></noscript>
<a class='dsq-brlink' expr:href='&quot;http://disqus.com&quot;'>blog comments powered by <span class='logo-disqus'>Disqus</span></a>

<!-- -disqus -->

<!-- +disqus -->

<b:if cond='data:blog.pageType != &quot;item&quot;'>
  <script type='text/javascript'>
    (function() {
      var links = document.getElementsByTagName('a');
      var query = '?';
      for(var i = 0; i < links.length; i++) {
        if(links[i].href.indexOf('#disqus_thread') >= 0) {
          query += 'url' + i + '=' + encodeURIComponent(links[i].href) + '&';
        }
      }
      document.write('<script src="http://disqus.com/forums/[DISQUS_SHORTNAME]/get_num_replies.js' + query + '" type="text/javascript"></' + 'script>');
    })();
  </script>
</b:if>

<!-- -disqus -->
The new method's code as follows, it's much cleaner, but not working for my template, it seems to have specific requirements on element IDs or that sort of things.
<b:includable id="main">
  <script type="text/javascript">
    var disqus_shortname = '[DISQUS_SHORTNAME]';
    var disqus_blogger_current_url = "<data:blog.canonicalUrl/>";
    if (!disqus_blogger_current_url.length) {
      disqus_blogger_current_url = "<data:blog.url/>";
    }
    var disqus_blogger_homepage_url = "<data:blog.homepageUrl/>";
    var disqus_blogger_canonical_homepage_url = "<data:blog.canonicalHomepageUrl/>";
  </script>
  <b:if cond="data:blog.pageType == &quot;item&quot;">
    <style type="text/css">
      #comments {display:none;}
    </style>
    <script type="text/javascript">
      (function() {
        var bloggerjs = document.createElement('script');
        bloggerjs.type = 'text/javascript';
        bloggerjs.async = true;
        bloggerjs.src = 'http://'+disqus_shortname+'.disqus.com/blogger_item.js';
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(bloggerjs);
      })();
    </script>
  </b:if>
    <style type="text/css">
      .post-comment-link { visibility: hidden; }
    </style>
    <script type="text/javascript">
    (function() {
      var bloggerjs = document.createElement('script');
      bloggerjs.type = 'text/javascript';
      bloggerjs.async = true;
      bloggerjs.src = 'http://'+disqus_shortname+'.disqus.com/blogger_index.js';
      (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(bloggerjs);
    })();
    </script>
</b:includable>

I have turned off Navbar. For a long time, I preferred to have it on my blog because it provides a search box and simple sharing method. However, I finally realized it costs 2.1 seconds of loading time.

But the story started with the Next blog link, which always redirects to one blog about Pentadactyl, it's obvious to me that there was something wrong with Blogger. I found some discussions about the issue:
http://productforums.google.com/d/topic/blogger/yurRm7gOiMo/discussion
http://productforums.google.com/d/topic/blogger/hq7dcykLLOc/discussion
http://productforums.google.com/d/topic/blogger/MnCkBCXlXYk/discussion
http://productforums.google.com/d/topic/blogger/6G-D9g8kpGA/discussion
http://productforums.google.com/d/topic/blogger/bnwvUVIvkNs/discussion
http://productforums.google.com/d/topic/blogger/z97M2nAIycc/discussion
http://productforums.google.com/d/topic/blogger/XnEUJ48aIAg/discussion
I'd thought about posting a new thread, but then I saw the loading time, the issue didn't matter anymore.

I used this post and FireBug to time the loading. Before, it's ~4 seconds. If I turned off Navbar, it's ~1.9 seconds, that's 2.1 seconds difference. If I only blocked the Google+ share button (the plusone.google.com domain), it's ~2.9 seconds.

The number speaks it all and made the decision for me already: get rid of that now!

What functionality would be missing? Well, basically nothing. I have a more powerful search page and more options for sharing, which already accessible from top navigation menu. If I have to list, then the Blogger brand icon and Report Abuse are the only two missing.

2 seconds page loading time for very simple post on my years old computer, not many blogs can give you that. I don't like fancy or over-stuffed blogs, so that's the way my blog should be.

Think about it: 2.1 seconds, round it down to 2 seconds and only take 10% of it, 0.2 seconds, which is overly underestimated, even for recently built computer I believed. Anyway, 0.2 * 22,100 pageviews (current last 30-day pageviews in Blogger Stats), that would be 4,420 seconds ~= 1 hour, 13 minutes, and 40 seconds. That's the energy I save for Earth.

I had put a link to Dynamic Views (simply append /view/ in URL) on top navigation for a very long time. Dynamic Views isn't too bad as an alternative way to view a blog, if you have a nice computer, it's kind of resource hug in my opinion. Anyhow, I'd like readers to have option to choose when it's in arm's reach already.

But two days ago, I noticed it now shows comments and a comment form. I may be wrong since I don't use Dynamic Views, but I don't recall they were in Dynamic Views before, a popup window or something was the way to access comments before.

I went to change Comment Location to Hide, I thought it did what it meant, hiding the comments. And it did hide the comments section, but it also disallowed commenting. This caused my blog showing no comment section for almost two days until I just found out moments ago.

Why I mention disallow when it seems to be implied as you choose to hide comments? Because I use Disqus and I enable the comment synchronization, so the comments will be posted back to Blogger's comment system from Disqus' for backup purpose.

The first problem is it hides not only the comments but also the comments in normal Blogger layout, it's a simple template design issue. I can bypass it, but the problem is the Hide means Disallow, so Disqus can no longer synchronize back the comments. I have no choice to turn it back on, if I want to backup comments.

Why in the first place I do not want comments to show up in Dynamic Views? Because I can only make comments synchronize back to Blogger, not the other way around, or duplex. Therefore, I must not allow regular readers to have chance to access Blogger comment form.

If you want to suggest why not just enable Disqus in Dynamic Views? Because we can't, maybe in future. Dynamic Views is a unique interface and I totally agreed with that, but it should be little more flexible on option on/off.

There may be a way to get around, I think you can add Disqus embed code in each post to have it, I saw some project for having Gist embedded in Dynamic Views. However, it's utterly impractical as how much effort you must to put in for Disqus to show up.

I tried to add a message to Comment Form Message to ask people not to comment in Dynamic Views, that setting doesn't work for Dynamic Views, same as Embedded/Full page/Popup window, comments always embedded in the post.

Anyway, since I have no control for comment section in Dynamic Views, I decided to take that link down, even though people can still append /view/ to access it.

I have to say, I hardly see any blogs use Dynamic Views. Not even Google's blogs. It seems Blogger team developed a product doesn't gain much utilization. Much same to Blogger Stats, but in the value bloggers give to it. The worst part is not the lack of customization, but no option to turn them off completely.

I swore this got me scared for a bit.


Just minutes ago, this showed up while I was writing a new post:

You have logged out from another location. Do you want to log in again?

Yes, I want to log in again.

Close

First thought to mind: Oh, no, have I just got hacked?

Question popped up right after: What should I do?

I went to check Google Accounts, but it doesn't show you account activity but a last sign-in time, which isn't useful. I was hoping I could get a list of IP and logging times like Gmail's. If I could have a list, I could determine if I get hacked easier.

Anyway, I googled that line as I should've already done. A thread brought me to a known issue, which isn't labeled as fixed yet. The last discussion in that thread was in September, two months later, I got the same message.

After re-logged in, everything seems fine. So, I am probably okay, it's just a glitch on Blogger.

I noticed there was a jump in pageviews in Google Analytics after I resumed my posting. The increased number of pageviews were from me, they were generated by post preview. It seems that I had those in the past, I wasn't aware of those.

Because I don't have huge amount of pageviews, so my own pageviews sort of affects the accuracy of statistics in a way. I wanted to exclude those pageviews, at least for a while.


The preview URI looks like:
http://[BLOG_ID]_[HASH].blogspot.com/b/post-preview?token=[TOKEN]&type=POST
Side note: the host used to be on my custom domain blog.yjl.im, now it's on blogspot.com with strange hash and blog ID.

By using filter, we can exclude those from profile.


I use relatively strict pattern, only exclude post previews. There might be some other Blogger functions under /b/.*, you can exclude more if you want.

I think those preview is valid data, I may remove the filter some time in the future. If you are a statistics freak, you may want to see how many previews per post. Although, I don't know if that number really means anything useful.

You can check with Real-Time report, but note that filter takes time to be effective:

Keep in mind that changes made to profiles may take up to a couple of hours to update in Real-Time reports. We're working on reducing this latency.

Be patience. Wait for a couple of hours after you save new filter, then click on Preview button to see if post preview shows up in report.

I first knew Firefox's special release ESR (Extended Support Release) via an error during system update, which is intentionally for being used in mass deployment of organizations. A few days ago, Blogger dashboard display this message:

Your browser is no longer supported by Blogger. Some parts of Blogger will not work and you may experience problems.
If you are having problems, try Google Chrome. | Dismiss

Aside: I really don't like Google has been prompting Chrome more and more whenever it has a chance, though I can't really blame it since Chrome is its own product.


At first, I believed it's a mistake because I didn't think ESR was out-of-date. But after reading about ESR's proposal, I realized that the releases of ESR weren't what I thought. Originally, I thought their functionality somewhat matches normal releases, but they don't. Every point release (##.0.x) matches the version number of normal release, e.g. Firefox 15 for Firefox ESR 10.0.5, 16 for ESR 10.0.6. There has nothing to do with normal release except the release time. So, Firefox ESR 10.0.x is based on Firefox 10, that means Firefox ESR 10.0.x has only Firefox 10 functionality.

On Gentoo, the latest stable version of Firefox (both source and binary) is Firefox ESR 10, the unstable version is Firefox 13, which is the currently official stable version of Firefox.

If I want to get rid of that message, I can use Google Chrome (from official binary package) or I can upgrade to Firefox 13. But I don't use Chrome and don't like unstable packages.

The message is not annoying to me, just don't exactly know what functionality will not work properly. Since I haven't encountered any problems, I guess I will just live with that message for now.

In Blogger

I have mentioned that my labels has grown out of control, 2,119 labels as of 5/8. It's always been a daunting task whenever I need to apply a label to multiple posts or remove therefrom. See for yourself:


See how short that blue grip is? A slight mouse movement could skip dozens of labels easily. When writing, it's basically fine, because it has filter and auto-completion. But in the posts management, no label filter. I have to scroll down carefully.

I added a user style in Pentadactyl to expand the list box's width:
" maximize Labels popup in Blogger
style http://draft.blogger.com/blogger.g* <<EOF
div.blogg-menu-popup {
    left: 0 !important;
}
div[role="listbox"] {
    max-width: none !important;
}
div[role="listbox"] > div > div {
  display: inline-block;
}
EOF
This resolves the issue. Now it looks like:


Even expanded in post writing, too:

In Google Reader

The same situation happens in Google Reader as well, though it's not as severe as in Blogger.


And the following code is similar to one for Blogger:
" maximize Labels popup in Google Reader
style https://www.google.com/reader/view/* <<EOF
.subscription-folders-menu {
  left: 0 !important;
}
.subscription-folders-menu div[role="menuitem"] {
  display: inline-block;
}
EOF
The folders listbox now looks like:

A picture is worth a thousand words:


Probably one more is better:



You can read the installation instructions if you want to have it on your blog. It's a script to convert Blogger's Blog Archive into a bar chart using Column Chart of Google Visualization API. Since the API is interactive, you will still be able to click and to view the archive from the chart.

The only restriction is you must use dropdown menu style, I only write the parser for that, you can still choose one of Monthly, Weekly, and Daily. The chart will draw accordingly. The color is default to gray bars, but you can customize the chart.

I got this idea when I was reading this month's post count after I just finished something on GitHub. The GitHub's commits timeline chart gave me this inspiration.

My original idea was writing a Blogger Gadget, unfortunately, I saw no way to retrieve same data as Blog Archive receives. The only way is to process a list of published dates via JSON API with Partial Fields. It's not really a big deal, but for long-lasted blog, it may have thousands of posts. It's really not so efficient.

I decided to parse the dropdown menu of Blog Archive gadget, not perfect but better than previous way in my opinion. Later, I rewrote a bit and wrote a Blog Archive XML, so no dropdown menu will be rendered, which you probably only would see in a blink if you install this barchart'd code with parsing method.

The installation is really easy either your modify template or simply add two lines to an HTML/JavaScript gadget, that's all you need to do.

I put the code with BloggerGadgets.js, and moved the repository to GitHub, because the file hosting need. I wished I could keep the code on Bitbucket, but I couldn't, tried hg-git, but it hanged when I tried to push to gh-pages branch via hg bookmark.

Feedback is welcome, feel free to add your thoughts in comments. For bugs, please create an issue on GitHub.

I just received a final nudge about migrating legacy Blogger account to Google Account System. It reminds me of my first Google account and first blog. Somehow, I missed or totally forgot the notice from last year. Its quite amazing, Blogger has supported legacy accounts for 5 more years, which hasnt been migrated to new system.

Five years, thats a long time, a big commitment. You need some if here and there to access two different data table for account information, basically.

Here is the email I got:

Hello,

You are receiving this message because your email address is associated with
an unmigrated legacy Blogger account. As we announced in April of last year,
legacy accounts will no longer be accessible after May 30th, 2012 unless they
are updated to the Google Account system. Any blog content associated with
this account will also be unmodifiable after that date.

To transfer your blog to the Google Account system you need to visit the
Legacy Migration page at http://www.google.com/appserve/mkt/PBoHh5KBnsStFd
right now to make sure that your account and associated blogs are claimed. If
youve forgotten the Blogger password that is associated with this email
address, you can use our Account Recovery page at
http://www.google.com/appserve/mkt/fg7kGId8kywXKn to request password
information to be sent via email.

For more information, please see our initial announcement we posted to our
blog at http://www.google.com/appserve/mkt/7eACad7aQ4IOSR . If you have
questions, please visit our Help Forum at
http://www.google.com/appserve/mkt/iw9dARzsHGMGz0 and create a message with
[Legacy Account] in the subject line.

Regards,

The Blogger Team
Google
1600 Amphitheatre Parkway
Mountain View, CA 94043
----
This e-mail is being sent to notify you of important changes to your Blogger
account.

I finished the process in a couple of minutes, though it gave me an error code when finalizing migration, but I could already see the blog in dashboard, hopefully it would be fine. I still remember the passwords of Blogger and Google accounts. Different passwords, of course.

I felt strange. It was the time that I first learned the word blog, but that was also the time which I didnt want to have lived. Weird, right. Without that period, I wouldnt be writing here. I might be in different place, doing things in other ways, thinking quite oppositely.

I would never know, because here I am, this is me.

Its been almost two weeks since the announcement of Blogger Export Analyzer (BEA), I added a few statistics to BEA:

  • More charts of published time by Year, Month, and Hour.
  • Most used words.
  • Post updating statistics.

For these additions, here is a sample output:

- Posts ----------------------------------------------------------------------

   941 Posts    899 Updated (after 256 days, 14:30:00.346941 in average)

   250,853 Words     266.581 per post
 1,339,093 Chars   1,423.053 per post
     5,021 Labels      5.336 per post

. 266 most used words ........................................................

8,234 i       7,205 the     7,128 to      4,752 a       4,340 you
4,298 is      3,499 and     3,242 it      2,904 of      2,693 in
<SNIP>

- Posts and Comments Published Time ------------------------------------------

. By Year and Month ..........................................................

YYYY-MM  Posts                             |                          Comments
2008-09  18                           #####|                                 1
2008-10  25                        ########|##                               6
<SNIP>
2012-03  94 ###############################|#########                       20
2012-04  65           #####################|############                    26

. By Year ....................................................................

Year Posts                               |                            Comments
2008 151             ####################|############################      81
2009 192       ##########################|################################# 93
2010 236 ################################|##############################    86
2011 145              ###################|#########################         72
2012 217    #############################|######################            63

. By Month of Year ...........................................................

Month  Posts                              |                           Comments
  01    90           #####################|###########                      30
  02   114     ###########################|################                 42
<SNIP>
  11   126  ##############################|#############                    35
  12    77              ##################|################################ 81

. By Day of Month ............................................................

Day  Posts                               |                            Comments
 01  29              ####################|########                          11
 02  38       ###########################|###                                4
<SNIP>
 30  22                   ###############|#######                           10
 31  22                   ###############|#####                              7

. By Hour of Day .............................................................

Hour Posts                               |                            Comments
 01  29              ####################|########                          11
 02  38       ###########################|###                                4
<SNIP>
 23  32            ######################|#############                     17
 24  30             #####################|#######                           10

For the additional charts, I wanted to see if I have particular posting hour. In most used words section, as you can see I use really lots of I. That is 3.2% of total words I wrote, its awfully a lot. As for updating statistics, 95.5% of posts has been updated at least once.

I created BEA because I desired seeing some numbers and I did. I will continue to add new stuff when something comes to my mind. If you have suggestions, feel free to leave a comment or create new issue.

After the post about Bloggers multi-ccTLD, I saw two more, .com.au and .de, I began to wonder how many domains Blogger actually owns at this moment. You will read the list of results soon, which was generated by using these files.

1   Gathering method

At the beginning, I used my ISPs DNS, Google Public DNS, and OpenDNS to check NS record. The first result showed there is NS record on blogspot.xxx, which was returned by OpenDNS. After looked into it, I believe OpenDNS was returned incorrect NS record, using blogspot.co.nl for instance (.xxx doesnt have whois server, not sure if that domain is already operational or not):

$ dig 208.67.222.220 NS blogger.co.nl

; <<>> DiG 9.8.1 <<>> 208.67.222.220 NS blogger.co.nl
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18728
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;blogger.co.nl.                 IN      NS

;; ANSWER SECTION:
blogger.co.nl.          84338   IN      NS      ns3.google.com.
blogger.co.nl.          84338   IN      NS      ns1.google.com.
blogger.co.nl.          84338   IN      NS      ns2.google.com.
blogger.co.nl.          84338   IN      NS      ns4.google.com.

;; Query time: 70 msec
;; SERVER: 208.67.222.220#53(208.67.222.220)
;; WHEN: Wed Apr 25 06:21:46 2012
;; MSG SIZE  rcvd: 113

$ whois !$
whois blogger.co.nl
Error: invalid .nl domain name

The whois query returned no such domain name, but OpenDNS DNS somehow returned NS records, which certainly is incorrect. However, if you use host to get the IP:

$ host !$ 208.67.222.220
host blogger.co.nl 208.67.222.220
Using domain server:
Name: 208.67.222.220
Address: 208.67.222.220#53
Aliases:

blogger.co.nl has address 67.215.66.132
Host blogger.co.nl not found: 2(SERVFAIL)

It gives you a OpenDNS IP and tells your that domain name is not found. That actually is OpenDNS manipulation, so it can serve you their own webpage with thr error message in webpage with search function. I know some people very dislike this method.

Since OpenDNS results are very confusing even unreliable, therefore I re-ran without OpenDNS servers and combined with results from whois command. It seemed to produce more accurate results.

2   List of results

Domain Blogger Blogspot
ae YES YES
ai YES YES
com.ar NO YES
asia YES YES
co.at YES YES
com.au YES YES
bj YES YES
com.br NO YES
ca YES YES
cf YES YES
ch YES YES
cm YES YES
co YES YES
com.co YES NO
com YES YES
cv YES YES
cz NO YES
de NO YES
com.ee YES NO
ee NO YES
com.es NO YES
fr NO YES
com.hk YES NO
com.hr YES NO
co.id YES NO
co.il YES YES
im YES NO
in NO YES
it NO YES
jp YES YES
co.ke NO YES
li NO YES
lu NO YES
com.lv NO YES
me YES NO
mobi YES NO
mx NO YES
com.my YES NO
net YES NO
co.nz NO YES
org YES NO
com.pe YES NO
com.ph YES NO
com.pk YES NO
pl YES NO
pro NO YES
pt YES YES
re YES YES
com.ro YES NO
ru NO YES
se YES YES
sl YES NO
td YES YES
tel YES NO
com.tr YES YES
com.tw YES YES
co.uk NO YES
us NO YES
com.ve YES NO

3   Thoughts

I did not gather the created time (some whois servers are terrible, they dont provide such information), so no idea when the domain name is registered. You can see Blogger does not own both blogger and blogspot with some TLD. For those, they probably have been registered, or cant be confirmed with whois server when there is no whois server available on the TLD, or really hasnt been registered. But I can say the last case is rare.

I wanted to check Blogger owned domains, because I was curious how serious the domain names have been taken because of the name Blogger or Blogspot. There are a lot of domain cockroaches around, I believe many have been taken by them. I name people who register domain for re-selling to make such unethical money as domain cockroach or re-take when a domain expires.

Years ago, I owned a domain which contained my username. Less than two years, I didnt want to use it anymore, so I terminated it with registrar. Till today, that domain is still registered. But the worst part is it shows up at top of result in search engine, the first result. I should have kept my old domain name for that reason, I didnt know better.

It is not much a big deal when currently it only gives you almost empty WordPress site, which is still fine to me. But what if it stuffs with some strange contents? Like ads or worse porn? My username is in that domain name. I have no control of it, cant even defend my reputation. I can only pray that day would never come and soon the cockroach will give up, then I will take it back just in case another roach steps in.

Since it tops all other pages, I suspect keyword matched domain name has very high weighted value in Google Searchs black box. Maybe livibetter.yjl.im could top that old domain name, so I can write a description which will alert people not to click on that old domain name. I do know occasionally my username is searched by people, no doubt that everyone will click on first result.

Anyway, the results for Blogger look not too bad, consider there are 314 TLDs currently, Blogger owns 80 domains with its name in.

More than a year ago, the loading time was around 6.4 seconds, I took few steps trying to reduce it. After that, I didn't pay anymore attention to it. A new post about Site Speed in Google Analytics got me looking into page load time again, which I have known before, but didn't pay attention to it, either.

I checked out it and it reported that it is about 5.66 seconds in average in last 30 days.


There seems to be two hiccups, I believe those views were from Poland and Hungary according to the data in Map Overlay. I am not sure what the problems really are, I don't believe that's because these two countries have slow connections to Blogger's servers.



I am quite happy to those numbers, though 5.66 seconds isn't something that you can call it a huge improvement. The global mean loading time is near 7 seconds based on the chart in Google Analytics' post. My blog is better than that, though I wish mine can be faster than mean value ~3 seconds.

The distribution of page load time is shown as the following image, it looks like the pages of my blog, 85.54% are loaded within between 1 and 7 seconds. This sounds very great.


I want to continue reading this data, so I updated my Google Analytics report script [diff]. This way, I don't need to constantly log in for checking it, I only need to read the daily report generated by my script.

Since I actually didn't do anything, in fact, I added more stuff. Maybe it's just computer gets faster, Internet connection are improved, or browser works more efficient. Anyway, I hope the number keeps going smaller.

Blogger Export Analyzer (BEA) is a simple analyzer for Blogger Export XML file, that I created to get some statistics using data from Blogger Export file. I was hoping the Blogger Stats data is part of Export file, but they werent. The code is written in Python 3 and licensed under the MIT License.

The following is a sample output:

= Blogger Export Analyzer 0.0.2 ==============================================

  YJL --verbose by Yu-Jie Lin
  Outputs directly from me <strike>about almost everything</strike>...

- General --------------------------------------------------------------------

       930 Posts       258.727 per year   21.561 per month
       391 Comments    108.777 per year    9.065 per months  0.420 per post
         2 Pages
         0 Drafts
     2,041 Labels

First post                     <-  3.6 years ->                      Last post
Let's Make Some Garbages       <-  43 months -> Multitasking with storytell...
2008-09-13 16:13:00-07:00      <-  1312 days ->      2012-04-18 10:56:00-07:00

- Posts ----------------------------------------------------------------------

   246,339 Words     264.881 per post
 1,315,911 Chars   1,414.958 per post
     4,970 Labels      5.344 per post

- Comments -------------------------------------------------------------------

   34 out of 391 Comments are not counted in this section.

. Top Commenters .............................................................

  125 ( 35.0%): livibetter
    9 (  2.5%): Calidan
    7 (  2.0%): Vajrasar
    6 (  1.7%): Derick Dalton Lee
    5 (  1.4%): Mario César
    4 (  1.1%): Jain
    4 (  1.1%): Guilherme Lino
    3 (  0.8%): zizukabi
    3 (  0.8%): MHazell
    3 (  0.8%): Lenama7

. Most Commented Posts .......................................................

   34 (  9.5%): Get ready for this Falling Snow Season!
   24 (  6.7%): Stick div at top after scrolling
   17 (  4.8%): Using Django's I18N in Google App Engine
   16 (  4.5%): Adobe AIR 1.5 on Fedora 10 x86_64
   14 (  3.9%): Migrating to tmux from GNU/Screen
   10 (  2.8%): Follow mouse for x11grab of FFmpeg
    9 (  2.5%): Sigh, glad I still have Disqus on my side
    9 (  2.5%): jQuery plugin jk navigation
    9 (  2.5%): Bad value X-UA-Compatible for attribute http-equiv on eleme...
    8 (  2.2%): Installing Woopra 1.2 beta on Ubuntu amd64

. Most Commented Posts Over Days Since Published aka. Popular Posts ..........

1.000: Sigh, glad I still have Disqus on my side
0.400: One Day Without Shoes 2012
0.375: Silly retard filename for removal
0.308: The Reading list in Blogger Dashboard
0.111: Better Bitbucket Explore
0.062: Earth Hour, a one-hour globally fanatic phenomenon?
0.038: Follow mouse for x11grab of FFmpeg
0.033: Disquise
0.030: Stick div at top after scrolling
0.027: Get ready for this Falling Snow Season!

- Posts and Comments by Month ------------------------------------------------

YYYY-MM Posts                             |                           Comments
2008-09  18                          #####|                                  1
2008-10  25                        #######|##                                6
2008-11  57             ##################|#####                            11
2008-12  51               ################|##############################   63
2009-01  32                     ##########|##########                       23
2009-02  13                           ####|###                               8
2009-03  27                       ########|########                         18
2009-04  41                  #############|####                             10
2009-05  14                           ####|#                                 3
2009-06   1                               |#                                 4
2009-07   1                               |                                  1
2009-08   1                               |                                  2
2009-09   1                               |                                  0
2009-10  27                       ########|##                                6
2009-11  18                          #####|####                              9
2009-12  16                          #####|####                              9
2010-01  16                          #####|#                                 3
2010-02   3                               |#                                 4
2010-03   2                               |                                  0
2010-04   9                             ##|                                  0
2010-05  19                         ######|                                  0
2010-06   2                               |                                  0
2010-07   1                               |                                  0
2010-08  53               ################|                                  0
2010-09  62            ###################|###########################      57
2010-10   8                             ##|#                                 3
2010-11  51               ################|#####                            11
2010-12  10                            ###|###                               8
2011-01  26                       ########|                                  1
2011-02  56              #################|#######                          16
2011-03   5                              #|####                              9
2011-04   0                               |                                  2
2011-05   0                               |#                                 3
2011-06   0                               |#                                 4
2011-07  13                           ####|                                  2
2011-08  18                          #####|######                           14
2011-09  27                       ########|#####                            12
2011-10   0                               |#                                 4
2011-11   0                               |#                                 4
2011-12   0                               |                                  1
2012-01  16                          #####|#                                 3
2012-02  42                  #############|######                           14
2012-03  94 ##############################|#########                        20
2012-04  54              #################|##########                       22

- General --------------------------------------------------------------------

     2,041 Labels labled      4,970 times      2.435 Labeled per label

. Most Labeled Labels ........................................................

  117 (  2.4%): OldBlogBlogarbage
   95 (  1.9%): OldBlogTuxWearsFedora
   93 (  1.9%): Python
   74 (  1.5%): OldBlogGetCtrlBack
   72 (  1.4%): Bash
   63 (  1.3%): JavaScript
   61 (  1.2%): OldBlogmakeYJL
   58 (  1.2%): thought
   51 (  1.0%): Google
   50 (  1.0%): Blogger

. Least Labeled Rate .........................................................

 1396 ( 68.4%) Labels labeled   1 times
  293 ( 14.4%) Labels labeled   2 times
  131 (  6.4%) Labels labeled   3 times
   62 (  3.0%) Labels labeled   4 times
   38 (  1.9%) Labels labeled   5 times
   24 (  1.2%) Labels labeled   6 times
   19 (  0.9%) Labels labeled   7 times
   16 (  0.8%) Labels labeled   8 times
   12 (  0.6%) Labels labeled   9 times
    4 (  0.2%) Labels labeled  10 times

The output is plain text like my Google Analytics report and I dont intend to add options for customization unless someone requests with good reason. The statistics you see in the image on the right is pretty much I have planned to have. I will only add new stuff when I get a new idea.

One number I wanted to see is the labels count, which have confirmed that my labeling seems to have gone out of control. 1,396 labels only are used one time. I always knew I was unable to tame my labeling misbehavior. ;p

I just sent a feedback:


You can read my thought about the "Reading list," it is useless to me and I really don't want it. I wonder if any Blogger blogger really read others' blogs in the dashboard. Isn't a feed reader more efficient?

I think such feature is only for who doesn't know what "Feed" means and is for. Of course, you can show your readers what blogs you are following. But you can achieve by a Links gadget (or whatever that is called). And indeed, it shows your appreciation when you follow a blog. But I think linking to one specific post from a related post of yours is much more meaningful to the blog.

Anyway, I just want an option to disable it or hide it, no data of that section is transmitted from Blogger. It's very interesting that you have a lot of options for individual Blogger blog, but not this dashboard. You only can turn on or off the important notification from Blogger.

Added at 2012-04-05T09:43:12Z.

After replied to the first comment, I think I need to clarify more. First of all, I do not follow any blogs even you see "Blogger Buzz" in the screenshot above. Blogger thinks you need something to read, so they put their Buzz blog for you. If you read the description of my feedback in the screenshot, you would know I have subscribed to Buzz already in Google Reader.

Secondly, you may ask why don't you follow any blogs? I want to but I have to un-follow all because I don't want to have plenty of data I don't read in this dashboard. I read them in Google Reader. I un-followed all great blogs when the Draft was still in that old orangish background color interface, so that must be a year or two years ago.

I wanted to let people know those blogs when they read the old Blogger profile, I really did. Now, I have connected my Blogger profile to Google+ Profile, so this part doesn't really matter anymore. So basically, this blog following feature is no more useful to me, since it can't automatically show the list in Google+ profile. You need to manually add links.

Once again, manual mentioning or g+ a post or a blog is much more meaningful and they emphasize your appreciations greatly. But this is just me and my humble opinion.

When I was trying out latest features of Blogger, I didnt think much about Custom Redirection. The only uses I had are for when you delete a page or a post, or you re-post with typo correction.

1   For a page or a post

Last a couple of day, I realized we can do more with it. For example, many bloggers have About page, as you know the pages on Blogger have slightly different URL path, which is:

/p/page-slug-name.html

I will bet some people dislike /p, least to say, and probably page-slug-name.html as well. With redirection, you can set up one or all of the following as redirected URLs:

/PageSlugName
/page-slug-name
/Page%20Slug%20Name

Imagine, you have /About instead of this awkward /p/about.html. It is easier to type. The last one redirects when a URL like /Page Slug Name is entered, the browsers will automatically to convert space to %20 to meet the specification.

As for post, its the best way to get rid of /????/??/blah.html. If you have some outstanding post, create a redirection for it with an easy memorable name for yourself.

2   For an index

I recently started two series which is labeled with special labels Song of the Day and Bash Scripting Made Easy. On blogger, you can click on a label and get all posts which are labeled with it. That feature is part of searching functional and its URL is little longer. For instance:

/search/label/Song%20of%20the%20Day

With the redirection, I can shorten it to just:

/SotD

Isnt that much easier to remember and to type when you want to share with friends. You dont need to find the post and copy the link. You just type in.

3   For a label feed

You can also shorten the URL of a label feed, which is way too long and no one can ever memorize it:

/feeds/posts/default?category=Bash%20Scripting%20Made%20Easy

to:

/BSME-Feed

4   For bizarre URLs

In Google Webmaster Tools, it offers you a report of 404 URLs, which are linked from within your website, for example:

2012-03-26--12:45:32

I know some of them are parsed from inline JavaScript, which I embed in posts. The Googlebot really works to hard to find links which may not even be valid ones.

I can either obscure the link look-alike in JavaScript, which requires me editing and I dont want to; or I can set up a redirection for it to get rid of the error reports. (Or just leave it there, I chose this way ;)

5   Final thought

You can redirect anything to anything, that about sums it up.

I think many Blogger users have been waiting for such improvements, the most useful option probably is the robots settings for me.

Robots header tags


I used to have my template with a special meta tag, so search engines won't index archive pages or search results pages. Now, I have set up this option:


You can read this page for details of those options. The robots tags is also available in per post basis, you can change for specific post.

The result is in HTTP Response Header, not in HTML (Response Body):

robots.txt

(added at 2012-03-27T10:35:58Z)

I noticed that there are some entries of Dynamic Views from search result, and I do not want those, so I customized the robots.txt based on current default robots.txt on Blogspot:
User-agent: Mediapartners-Google
Disallow: 

User-agent: *
Disallow: /search
Disallow: /view
Allow: /

Sitemap: /feeds/posts/default?orderby=update

404


There is also a new setting for writing your own message for 404. The text (HTML is allowed) is basically put into a small message box, the one like the No Found message when you search something not in your blog.

I wrote a 404 message, I think it fits this blog's style. Try to put something in URL and see by yourself.

There seems to have a new data:blog.pageType value error_page, if you customize your template, this may come in handy when you want to have totally different layout for error page.

Redirection


The last one I think is useful is the Custom Redirection. I used to have a page call Selections, but I never updated it after I created it, so I deleted a while ago. If I want, now I can set up a redirection for it.

The other scenario is typo in post title. We all make mistakes, and sometimes you want to fix it. If you post a blog post, then you finally notice there is a typo in your blog post. It may be too late to delete it and recreate a new post with correct post title. You can not change post slug URL, you must re-post in order to fix it.

The post probably is already indexed by search engine and even shared by your readers. If you delete it, whoever follow the link will not find it.

With this new redirection feature, there is no problem. Just post and set up a redirection, then redirect from the embarrassing one to the new one.

Search Description

To be honesty, this is not so practical in my opinion. For homepage,


Even you can see Google use posts contents to describe, I don't really care because it does not read like globgrubglab.

As for posts:


The first one should not have post title and time tag in the description, but second one is correct.

With Search Description feature, the issues above can be avoid. The question is are you willing to and can you remember to write a short description for each post? I am not and probably can't. But that's just me.

Still, this is a good addition, it's good to have even I don't need it. You can never know if someday this may save your life.

Click trapping is a good thing to prevent you from accidentally clicking on something while you only want to preview the output of your post. But I need to be able to click because I check related posts to see if I can add related internal links for currently writing post.

So, a quick solution:
" get rid of clickTrap of Blogger post writing preview
style blog.yjl.im div.blogger-clickTrap { display: none }
or
" get rid of clickTrap of Blogger post writing preview
style [blog-name].blogspot.com div.blogger-clickTrap { display: none }
for non-custom domain blogs.

No add-on/plugin or whatsoever required, Vimperator/Pentadactyl makes things easier and fixes quick. One-liner, that's all. I used to remove it by using FireBug to delete that element, four clicks, I think.

I do think Blogger should offer an option to disable it, because not everyone is a fan of that. And I do prefer to check links by hovering over link anchors and read the status bar.

Also, on Blogger, you can code JavaScript in your blog post which is awesome for JavaScript topic bloggers, so some UI may be displayed and interaction is needed. Though this is very rare case, 99% people wouldn't code and I don't actually code directly on Blogger but with local file generated with reStructuredText. So this part doesn't cause trouble for me at all.

I was wandering around the settings section and found out I can not only turn off sharing on Google+ but also have Google Analytics support from Blogger. I recall I had read it long time ago on Blogger Buzz.

I want it because the pageviews from View will be also tracked. I can not touch the code of View, so this option is very helpful if I want to have complete tracking statistics. I have put View link on top of navigation bar for really long time and I probably lost some data.

I wrote my own Layout template, so it won't work by default in my own layout. It is actually very simple to have it, add the following line before </body>, e.g.
  <b:include data='blog' name='google-analytics'/>
</body>

I also removed the tracking code from my main JavaScript script, so I wouldn't have duplicate data.

This is probably the second of third time I use View mode on Blogger, not only on my blog but entire Blogger blogs. I don't really like View, it looks good and nice, but I am just not a fan of it.

Maybe because it create unique style over different blogs. I like variety, diversity of styles or layouts or designs. Pretty or ugly, doesn't matter. The important thing is the style of the blog's owner. With View, it doesn't reveal of that much.

Since I hardly check the View of my blog. I just realize there are two ads units. One at right side, the other at bottom. I roughly check with FireBug Net tab, I think they are belong to me, my Google AdSense Publisher ID, I believe. (It's long ID, but looks like mine)

As you may know, I put two ad units in my template, so I don't object for the such convenience. Just I don't see any setting options I can adjust size or location for my View. So it probably also a unique setting all over the views, I guess.

Updated at 2012-02-25T23:08:40Z: This has nothing to do with Blogger. It seems Google Analytics' tracking script will detect if you hold the account. If you do, then it shows you the interface. Here is a screenshot when I view the homepage of my blog:





When I was writing my previous post, I saw this after I hit preview button:


We found no clickthroughs for this page. Try adjusting the date range or select another page.

You got it perfectly right, Google Analytics! Because it's totally new post, how could you find click? If you do, either your are a fortune teller or something gone haywire.

But I don't mind this show up when I edit my old posts. It would be nice to know some statistics. Only it takes a few seconds to load the Google Analytics frame every time you hit preview button.