Wednesday, April 1, 2015

Why You Need Stomach Acid (Part 2)

This is part 2 of a series of articles relating GERD and low acid stomach. For part 1 click here.

How to increase stomach acid

If you read and recall from the first part of this series, HCL or Hydrochloric Acid is the reason for many diseases. In order to improve digestion you can buy HCL on a pill. With this pill you are temporarily stimulating your stomach to get your body to produce its own stomach acid. Betaine hydrochloride is a chemical substance made in a laboratory, which is used to temporarily increase stomach acid production. Unfortunately there isn't much medical research on this area, so dosage is left up to the patient to decide.  To make things worse, doctors might never give you Betaine HCL as a means to heal diseases, since it is labeled as a dietary supplement. I cannot recommend a suggested dosage, since Betaine will serve your needs depending on how grave your condition is. But I suggest you start small and then increase the dosage until you feel a small burning sensation on your belly for an instant relief. Once you have reached that sensation, it's time to reduce the dosage by one pill (or half a pill). Do this for every meal you consume [1].

Even though Betaine will help relieve many of the symptoms you might have, this is however not the solution. Betaine will indeed NOT make you produce more HCL on a long term. Science has gotten very far into determining the different kinds of stomach problems a human being may face, but it is far from having all the solutions. Even naturopaths who claim to know it all, don't know it all. In fact, they know nothing.

How to improve your digestion once and for all

You might have the problem I had, or might have something totally different. We will 
probably never know. What you can do however is to try and fix on a natural basis different problems that you might have. If you see an improvement, well then continue with it. If not, then change the treatment. I this article I will propose one treatment.

You see, I thought for a long time I had low stomach acid. Or maybe I did, but that wasn't the whole story. In fact my stomach was "nervous" which led to me probably producing low levels of HCL and other strange things. I do have good news. I healed and I did it with medically proven natural ingredients. Yes, there is such a thing. It is called Iberogast.  

Iberogast is a mixture of extracts from bitter candytuft (Iberis amara), angelica root (Angelicae radix), milk thistle fruit (Silybi mariani fructus), celandine herb (Chelidonii herba), caraway fruit (Carvi fructus), liquorice root (Liquiritiae radix), peppermint herb (Menthae piperitae folium), balm leaf (Melissae folium) and chamomile flower (Matricariae flos) [1]. Now don't get me wrong, I am endorsing Iberogast and getting money out of it. If you do find a different solution with the same ingredients and dosage, then go ahead and try it out. I am just pointing out what worked out for me.

In fact, regularly drinking Iberogast has helped me heal from all the stomach problems I had and I even continue drinking it. It might help you, or might not. But you can at least try. It's natural and it's approved by doctors. In the meantime I can give you some time-proven recipes to treat the most common symptoms of GERD and bloating.

Treating common symptoms

If you want to treat common GERD symptoms I will warn you, you will be drinking a lot of tea/fluids. In fact you can drink: 
  • chamomille tea to reduce heartburn pain, 
  • peppermint tea to reduce belching and bloating, 
  • fresh ginger tea to stop heartburn, 
  • and of course drink Iberogast to increase and regulate stomach acid (amongst other digestive problems)
Every human being needs stomach acid. Don't let anyone tell you otherwise. There is a reason why our stomach has been built they way it has been. Whether you have low stomach acid or not, well let's hope you don't.

Monday, March 16, 2015

Elasticsearch is now Elastic

Elasticsearch has changed its name. Now it's called Elastic. According to their official blog, the company has always referred itself as Elastic. So it kind of makes sense that they would have eventually changed their name. Elastic has grown since its inception to a stunning 20 million downloads and over 170 employees and it keeps on growing. This is a wonderful product with an amazing engineering team! 
Congrats to the Elastic team!


Monday, March 2, 2015

Professional source code management with Git

If you want to start working on an open-source project or if you are applying for a new job that requires previous experience with distributed revision control and source code management (SCM), then almost certainly you are being asked to know how to use Git.

Git is a huge monster, it is pretty extensive and can be overwhelming at first. If you don't believe me, just take a look at the Git bash documentation: In fact, please do. It is a great start if the following terminology is foreign to you: pushing, pulling, rebasing, branching.

When you are joining a new open-source project, if your intentions are of course to contribute to the project, then the first step is to fork the repository. Forking and cloning the repository will create a clean slate for you to work on. Depending on what you intend to implement or fix (and also depending on the team) it is usually a good idea to start branching immediately after forking, since after you have forked a project, you will always first point to the master branch

Making your changes on the master branch can be catasthropic. Depending how much your new code affects existing code (e.g. if you are implementing a totally new function that overrides an existing one) and also depending on the size of the project and on the number of commits (per day/week/month) you will usually run into some merging (and probably political) problems. So creating your own branch gives you also the freedom to implement without having to worry to merge important changes. You will ideally only have to merge once at the end.

All of your changes will be pushed into your own branch, which will then be merged at the end into the master branch using pull requests. With professional source code management, comes also professional and consistent commit messages. Ideally you will be only committing once and with a single commit message that has the following structure:
Title - provides a brief summary of the Issue/Bug/Feature. e.g. Issue 3 - Fixed a new line error in the graphics engine

Description - provides a detailed description of what was fixed. e.g. The class graphicsEngine.js was ignoring CRLFs from Windows machines. This class now takes CRLFs into consideration.
Between title and description you have a new line (CRLF on Windows, but ideally only LF).
Having single commits for a branch is unfortunately not always the case. Sometimes you make mistakes or are not clear enough on commit messages. Sometimes you commit more than once, because you thought you were ready but clearly missed something in the end. Or maybe you just like committing stuff. So in order to get all your commits in one, you need to squash them. This is done using a technique called rebasing. Rebasing will allow you to merge all your commits and commit messages into one. It will also allow you to pick which commits you want merged and which should be left out. It is a great tool for refactoring your commits!

There are many other aspects that come with professional source code management with Git. This tutorial only covers the tip of the iceberg, but it provides a quick and good introduction to the power of distributed revision control tools such as git can offer.

Brief Introduction to Elasticsearch

Maybe you've probably heard of Elasticsearch. Maybe you are even using Elasticsearch right now. Or maybe you just haven't. For those who've never had any contact with this "relatively new" technology (even though the first version of Elasticsearch dates back to 2010, its precursor Compass dates back to 2004!), here is a brief introduction to it.

Brief introduction

Elasticsearch is a search server based on Lucene, which was originally created by Shay Banon. It provides a distributed, multitenant-capable full-text search engine with a RESTFUL web interface and schema-free JSON documents. It allows you to store, search, and analyze big volumes of data quickly and in near real time [1]. Elasticsearch, according to their official website, is mostly used as an underlying engine/technology to empower applications that require complex search features [1]. This Java-based search server is open sourced under the Apache License 2.0 and it literally requires zero configuration to set up.

At the moment, Elasticsearch is one of the most popular enterprise search engines available. Its popularity has been steadily increasing over time and many notable companies and organisations are using Elasticsearch.


Elasticsearch uses a special terminology, which may require some getting used to if you've never used "NoSQL" databases or come from a heavy relational database background. The following table pretty much summarizes some of the most commonly used terminology:

In Elasticsearch everything is indexed (unless you choose not to)

Having said that, let's take a look at how Elasticsearch works.

Distributed and highly available

In Elasticsearch multiple servers (nodes) run in a cluster. These nodes act as a single service. There are two types of nodes:

  • Nodes that store data
  • Nodes that help with speeding up queries
In order to replicate data, Elasticsearch uses the concept of sharding. All indexes are sharded and each shard can have zero or more replicas. The number of shards is also configurable, you can set up from the start how many shards you desire to have. These shards are usually distributed on different servers or server pools for failover reasons. So if one cluster goes down, data has already been replicated and can be restored easily.

Running Elasticsearch

Running Elasticsearch is very easy. Since Elasticsearch is a standalone Java application, installing and running it's as easy as downloading from the official site, unpacking and running:
$ bin/elasticsearch
 from its unpacked directory. After that you should then see something similar to this:

which indicates that Elasticsearch is running in its standard port 9300. Once the server is up and running (takes about 30 seconds depending on your machine speed), you can start creating indexes and start filling Elasticsearch with types, documents, and fields (see what I did there? I used the terminology defined above).
Since there are plenty of many - great - tutorials I will not get into details on how to use Elasticsearch. This posts intention was merely as a brief introduction.