Friday, April 30, 2021

Blog milestone: 200 blog posts, 1M page views!

This is my 200th blog post. Also I reached 1M page-views recently. In those 200 blog posts, I used approximately 325K words. An average non-fiction book is somewhere between 70K to 80K words. So that would amount to somewhere around 4 books. Why did I write so many blog posts, what did I write about, which are my favorites, what do readers think? In this rather personal blog post I'm going to look back on the past 10 years of blogging.



10 years of blogging

The topics I covered in my blog posts, change over time. I generated 3 word clouds based on the tags I used for the posts (also tried generating clouds based on titles but the results were similar). They cover more or less 3 different periods in my professional life which determine the topics / products I wrote about during that period.

I write blogs on my personal blog site here, on the AMIS Technology Blog here and on Medium here. Several of my blogs have also been actively promoted by software vendors such as Oracle and Sonatype.

2012 - 2016

As you can see, during this time I was mostly concerned with Oracle SOA Suite, WebLogic and BPEL. I was lucky to start out at one of the first large Oracle SOA implementations in the Netherlands in 2007 via Ordina, my first full-time employer. I was lucky to get the job because initially they wanted to suggest someone else to work there, but that person left the company. By the time Oracle SOA Suite became better known, I was already quite experienced. In addition, I mostly took on the challenging parts of implementations such as CI/CD, performance, security and the like which gave me a chance to obtain all kinds of not so common knowledge about these products. During that period, I switched to Atos for various reasons.

People from Atos, my employer at the time, suggested to me to start writing blogs and submit to conferences because the knowledge I had would be valuable to others and of course it would have marketing value for the company. Also it would put my name out there on the internet as someone knowledgeable on the topics I wrote about and maybe attract customers.

I learned several things during that period. Your network is extremely important. In my case, that would have been Oracle and the Oracle community at the time. I did some submissions to conferences and didn't get accepted because I lacked the contacts. 

Also I found that it is a good idea to blog using a personal blog account somewhere and not (only) the one your company offered. Atos was hosting a campaign at that time to attract new employees which had the slogan 'join the rebels'. They also hosted a blog site for it and I wrote some posts for them. After a while, actual rebels (the ones involved in wars and such) started abusing the comments feature of the site for exchanging information. Atos decided to take it offline. If I would have put my blog posts only on that site, they would have been lost for me or I would have needed to put in effort to try to retrieve them within the large organisation. Luckily I had also started a blogger site; javaoraclesoa.blogspot.com which was inspired by the work of Edwin Biemond (here). In 2013, one of my first real encounters with the Oracle community was the Oracle SOA Blackbelt training I did in Berlin which was organized by Jürgen Kress.

In 2014 I was at a crossroad in my career. It seemed there were 2 obvious paths I could choose from at the time. Start working as a software, infra or solution architect. Atos had some people I could learn things from in those areas. An alternative was focus on expanding my contacts and knowledge in the Oracle world. My value at the time (why people wanted to hire me) was especially my Oracle SOA knowledge and I was just starting out in the field of software architecture.

I chose to expand my Oracle network and decided to join AMIS to achieve just that. One of the reasons to switch to AMIS was that AMIS had several people working for them who were big names in the Oracle SOA world and had good contacts with Oracle. Edwin Biemond, who I mentioned before and Lucas Jellema, the CTO, of AMIS who had written a famous Oracle SOA book at the time and also blogged a lot, were like role models. When I joined AMIS, I started working at a customer which had hired more Oracle ACEs and ACE Directors. This again helped in expanding my network in that community. During that time I also started presenting at national and international conferences. I especially enjoyed going to Norway and the UK for the nice people and good atmosphere but Oracle Open World in San Francisco was also an experience I wouldn't have wanted to miss. It did not take long (actually some years due to changes in Oracle award policies) to also become an acknowledged expert by Oracle and I was awarded first the ACE Associate title and later the Oracle ACE title (with help of several people, including Jürgen Kress, Bob Rhubart and Lucas Jellema).

2017 - 2018

Around 2017 I started working as a software architect. In the same year me and my wife adopted our daughter from the USA (blogging was challenging during the first couple of months with a little baby, think sleepless nights). Oracle started to make a move towards the cloud. At first, it was difficult to obtain cloud credits to try out the new services. This was frustrating because it limited my ability to get to know the new cloud services and write blogs about them / present about them. Also when the cloud services started out, they still needed to mature and couldn't compete with the on-premises products or cloud products by competitors who had been active longer in the cloud space. Of course, at first I felt more or less obliged (being an Oracle ACE) to take a look at the Oracle services and deal with the account challenges and product limitations. I even took several Oracle cloud certification exams, blogged about the products (such as Application Container Cloud Service, Mobile Cloud Service and custom cloud adapters) and presented at conferences. However, it did not seem the effort was worth it. In the Netherlands there were very few customers who were really interested in Oracle's cloud products at the time. I also noticed the Oracle User Group conferences started to get less attendees and that quite some customers in the Netherlands were not that enthusiastic about Oracle anymore and started to look into alternatives. I decided it was time to focus on something else which was more rewarding (professionally and personally).

2019 - 2021

From my history with SOA Suite, the step towards Java wasn't such a big one. I started presenting on Java conferences in the Netherlands and publishing in Java magazines. My blog posts changed focus to security, performance and Kubernetes and mostly open source products. When looking at the state of Java though (TIOBE, GitHub, StackOverflow), I'm curious if it will be viable in the long run. It requires quite a lot of knowledge to use efficiently and that is a liability. 

Within AMIS, the lack of customer traction for the Oracle cloud products was also noticed. They decided to also adopt Azure and AWS as cloud providers to focus on but they do not have the reputation yet as being the experts such as they had within the Oracle world. That might quickly change though since people are quickly adapting and learning new things.

The future

I will continue to write mainly about technology. Why? Because that is the area I consider my contributions to be most valuable and I like figuring things out technology wise. I am quite capable to quickly dive into something quite deep and write about some technical challenge or fix an issue. I do try to indicate the purpose of a blog post and provide context though. My inspiration mainly comes from what I encounter at my employer and at customers. I of course also read a lot and visit conferences whenever possible. Technology changes quite rapidly and so will the topics I write about / I think are interesting / worthwhile. I'm no hype-hopper who looks for new hypes and use that to gain publicity. I try to be skeptic about hypes and will not take an overly positive story for granted until I've tried it out for myself or read enough about it to build a substantiated opinion.

About blogging

Why blogs

There are several reasons why I write blog posts

  • Freedom to (almost) do whatever you want.
    Customer implementations and employer requests often come with a context, boundaries and limitations. Your not free to do what you want since you have to take into account wishes and  existing structures. When writing blog posts you can do whatever you want (although only if you do it in your own time of course). If you work with minimal restraints, the usability of the blog post is usually also greater (applicability of the product to other use-cases). You can go a lot faster if you don't have to take others into account. When writing on a company blog, the owner can also limit what you are allowed to post thus choose your blog platform wisely.
  • Sharing your opinion
    Sometimes I encounter things I do not like at customers or speak to people who have ideas which I don't like. I don't like bashing people but I can write a blog post of well substantiated best practices. It is a way to express and share my opinion on specific topics. 
  • Sharing knowledge, online documentation/memory.
    Blog posts can also help you if you encounter a problem at a customer. You can point them to the blog post for help on their issue. In addition, blog posts can function as online memory.
  • Personal branding.
    It is really nice if you meet people who tell you they've read your blog posts or people get in touch because they have read something on your blog.
  • Closure
    When working on a topic, having found a solution to a problem or a pattern to do something specific, writing a blog post about it helps me to kind of package the knowledge and put it away in my head. I've written a blog post about it, it has been published, it is done. On to the next topic!
Why blog posts and not books?

A book usually has a single topic. It takes a long time to write and to get it published. When you look at the topics I have written about, they differ. I have never spend a long time on a single topic (consider SOA Suite as having several subtopics). Also, since I focus on new technology, what is the worth of something I write now in a year or 2? Is it that people consider you the expert on topic X because you invested much time on writing a book about it?

I have thought about writing a book but could not identify a single topic I could remain interested in for long enough to be able to write a book about. I could write about more general things like practices and experiences but personally I wonder if that would add much. I don't think people for example would appreciate something like '100 stupid things I encountered at customers'. The lack of interest to focus on a single topic for a long time, is also a reason I did not become a PhD (next to the university culture which I did not have good experiences with). Also my time is limited (family, friends, hobbies). A blog post you can do relatively quickly. You do not have a review process and a blog post does not have to be that good. I do care about quality of my blogs and reread them usually at least once and often twice before publishing (often rewriting sections), but with a book, it just needs to be better in my opinion and that takes more time. When writing about cloud products, they constantly change so a book written a year ago is probably not worth much now anymore. I also do not buy many books because of the same reason, only if I need to obtain a solid basis in something which does not change mush over time (such as security). Also, as I've understood from several authors of IT books, writing and selling a book is financially not worthwhile considering the time investment. 

What did I learn?

I learned several things by blogging
  • My English improved.
    English is not my native language. I wrote a lot of English texts during the last years (next to reading a lot). I've gotten a lot quicker at writing them and probably make less mistakes. I'm better on paper than talking in real live though (I have a Dutch accent and sometimes can't find the right words quickly enough when I need them in a conversation).
  • Explaining things helps understanding them better
    It seems obvious but breaking down a problem and explaining how to solve it on paper in a structured way also helps structure your own thoughts about the problem and solution.
  • I've gotten quite adept at quickly creating environments
    For most blog posts I create a specific and clean environment to show a solution in
  • Don't expect to make (much) money when writing IT blogs by putting up ads.
    I put on some ads on my personal blog site. Google pays when the balance reaches 70$. I'm at 59$ at the moment from 900K visitors. Maybe I'm doing something wrong? My audience might mainly consist of smart people not clicking ads.
  • Nothing lasts forever, especially in IT (don't stay on a sinking ship)
    I was quite fond of Oracle SOA Suite. It was a product I was quite comfortable with. Oracle decided to shift focus to cloud products and the number of customers in the Netherlands for SOA Suite started to decline. I needed to let go and become an expert in something else. I decided on Java since that was close to what I knew. Java however will also not last forever and what I'll focus on next won't neither.
  • Confidence
    I'm not afraid to put stuff online or share my opinion. I got into conflict about a small number of blog posts and all of them were resolved. I do care what others think about what I write but only substantiated comments I take seriously/personally. It helps if people who create products get in touch with you or share your blog posts. This also helps with the idea that people also take you seriously.

My personal best and worst blog posts

Which blog posts do I personally like best? They are probably the blog posts of which I have the feeling they really contribute something. The blog posts I spend quite some time working on and figuring out how things work. Me liking posts is usually related to the content and the experience I had around writing them. When thinking back, do they make me happy or not? They are not specifically well written or structured but are valuable to me.

Favorites

I like the following blog posts especially;

  • Java Microservices: What do you need to tweak to optimize throughput and response times? (here)
    This blog post combines a lot of data and other blog posts. I looked at different JDKs, at different microservice frameworks, performed a lot of tests (literally weeks of data) and used some machine learning to determine which factors influenced performance most. The answer: the choice of microservice framework was most important to the performance.
  • Production ready Kubernetes on your laptop. Kubespray on KVM (here)
    It was fun writing this blog post and figuring out how to quickly create a Kubernetes environment from scratch on my laptop. I tried several solutions to create a K8s environment. This solution is easy and stable. When I need a Kubernetes environment in the future, I will look it up again and walk through the steps myself.
  • Securing Oracle Service Bus REST services with OAuth2 (without using additional products)(here)
    I feel like I actually contributed a valuable solution which people can use to implement OAuth on Oracle Service Bus. I know several customers who are already using something similar.
  • Oracle SOA and WebLogic: Overview of key and keystore configuration (here)
    Key and keystore configuration is a complicated topic in Oracle SOA Suite. In this blog post I feel like I've explained it quite well where which configuration can be done where.
Which posts I dislike
  • Some challenges with Oracle Reports 12.2.1.3 (here)
    I really dislike Oracle Reports (just look at the screenshot...). Never should have wasted my time on it. Luckily Oracle announced there will not be any new major versions. Finally the pain will eventually end.
  • Oracle Mobile Cloud Service integration options (here)
    Oracle Mobile Cloud Service is a product on which I spend quite some time. I even did a certification for this one. I knew how it worked and what it could do at the time. No customers projects though to use this knowledge and also no positive incentive from Oracle to spend more time on it. Dropped it and never looked back.
 You can't always bet on the right horse though.

What did readers think?

I did not specifically ask for feedback on my blog post contributions but they have the option to add comments and of course the number of visitors also gives an indication of which topics are popular.

Analysis of visitors

AMIS Technology Blog


Personal blog


The top image is page views on the AMIS Technology blog site (currently about 100K pageviews for my blog posts). The image below if from my personal blog site which I started in 2012. When I started blogging in 2014 for AMIS, I noticed the visits to my personal site dropped (I create the same blogs on both sites). I started to compete with myself and maybe also because of the popularity drop of Oracle SOA Suite. I am not sure what caused the peak at the start of 2017 (21315 pageviews on the 1st of Dec 2017). 


On my personal blog site the all-time favorites from visitors were about Oracle SOA Suite. BPEL, WebLogic. On the AMIS Technology blog, the favorites were quite different. Context matters I think. The AMIS Technology blog gets different visitors and maybe blog posts also profit from related posts on the same blog. The most popular posts on the AMIS Technology site were about Virtualbox and Java. Resizing a Virtualbox HD as all-time favorite and a blog post about the Java Spring Framework Autowired annotation is also very popular. 

On my personal site the number of visitors is dropping. This can have several reasons. One of course is that I compete with myself on the AMIS site and on Medium also a little. Also, Blogger is not that popular anymore as blog medium. Maybe I should focus on Medium more. I do not know if the number of visitors over time for my blog posts on the AMIS site has increased; that there has been a 'move' of visitors from my personal site to the AMIS site. Also I might be moving into topics where there is a lot more competition (in contrast to SOA Suite) and I do not yet have a solid reputation (yet?).

Comments

There are some comments I got on blog posts which made me think if I had written the right things. 

  • I have done a single book review about "Oracle SOA Suite 11g Performance Tuning Cookbook" (here). It was nice of the author to give feedback on my comments. This was a moment I was a bit worried about the reception of my opinion on his work.
  • I did performance tests on R2DBC (here). Someone else also did a test (here) which gave different results. I would have liked to find out together where the differences came from. It did not come to that however.
  • I had taken a look at Akka in context of performance tests. Akka didn't do so well. One of the maintainers got in touch and said he would have liked to have been involved. My implementation of Akka was an important reason why its performance didn't look good. I didn't spend time to fix this though since I was already working on other things.
  • Long ago, I accidentally published some code which I had also implemented at a customer and which contained a hostname and password of a development environment at that customer. Stupid of course. I immediately removed it when someone noticed and informed me. It is important when you have created something at a customer and want to blog about it, to recreate it from scratch in your own time and generalize it to avoid such issues. It also helps with discussions about who owns certain code.

My routine

It might be interesting to know a little bit about my blogging routine for people considering writing blog posts themselves. I usually first create the blog post on my Blogger site (here). Why? Because I can do it quickly. I do not have to worry about blocks, I do not have to use the mouse a lot to create a blog post. Since it is my personal blog site, I want every blog post to at least also be published there (employers might change). Writing a blog post can take between days for complicated topics which require research to hours for relatively small things.

For code formatting, I usually use this site here. It produces an HTML block which I can paste in the HTML code of the Blogger site and similarly use on other sites (to copy it there, I usually open the Blogger site and use Developer Tools within Chrome to copy the element). I do disable the alternative background of the code formatter though since it does not play nicely with some sites. Usually I use Powerpoint for creating quick images. Snagit or Greenshot for screenshots with annotations and a bit of Paint.NET if the images require minor edits.

I usually structure my blog posts in a similar way.

  • Introduction of the context and the topic. What will the blog post be about. Also I usually add a title image.
  • What have I done and what were the results? I use headings and subheadings a lot for structure.
  • A conclusion, finally, afterthoughts

After I've put the blog online on my Blogger site, I usually put it on the AMIS Technology Blog (here). When I do that, I usually copy/paste the text and improve little bits. The quality of the blogs on the AMIS Technology Blog is slightly better because of that. Also on the AMIS Technology Blog, I take better care of SEO. Provide a meta description, tags, category, etc. Wordpress with plugins makes it quite easy to do this. I never really invested in this on my Blogger site (hence the slow drop in visitors?).

After that I sometimes post a link to the blog post on LinkedIn and Twitter to spread the news.

Usually several blog posts belong together and follow a similar topic. This is in turn often material for presentations at conferences. For Medium, I can import the post from Blogger and update the images manually.

Finally

How did I create the word clouds?

In order to generate the word clouds, I exported the blogs as XML from Blogger and fired of some XSLT to obtain relevant data. I used the following XSLT which I created with Oxygen XML Editor:

 <?xml version="1.0" encoding="UTF-8"?>  
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
   xmlns:xs="http://www.w3.org/2001/XMLSchema"  
   exclude-result-prefixes="xs"  
   version="2.0" xmlns:pe='http://www.w3.org/2005/Atom'>  
   <xsl:template match="/">  
     <root>  
       <xsl:for-each select="/pe:feed/pe:entry[count(pe:category[@term='http://schemas.google.com/blogger/2008/kind#post'])>0   
         and xs:dateTime(pe:published) &gt; xs:dateTime('2019-01-01T00:00:00.001+00:00')]">  
     <entry>  
       <tags>  
         <xsl:for-each select="pe:category[@scheme='http://www.blogger.com/atom/ns#']">  
           <tag><xsl:value-of select="@term"/></tag>  
         </xsl:for-each>  
       </tags>    
     <title>  
       <xsl:value-of select="pe:title"/>  
     </title>  
     <contentlength>  
       <xsl:value-of select="string-length(pe:content)"/>  
     </contentlength>  
       <words>  
         <xsl:value-of select="string-length(pe:content)-string-length(translate(pe:content,' ',''))"/>  
       </words>  
     </entry>  
     </xsl:for-each>  
     </root>  
   </xsl:template>  
 </xsl:stylesheet>  

Next I used an XPATH expression on the transformed data in Notepad++ using the XML Tools plugin  to extract the individual words. Since generating the word clouds on public websites was not that successful I used some Python code (here).

1 comment:

  1. Great congratulations! keep it going 20 more, appreciating work you have done.

    ReplyDelete