gastro ./ lower gastrointestinal bleeding 
          Gastro-oesophageal Reflux, Factors That Determine It And Treatments                                  By Groshan Fabiola                                                                                      Gastro-oesophageal reflux is a condition that appears if the lower oesophageal sphincter is abnormally relaxed. Because of the abnormally relaxed oesophageal sphincter, stomach's acidic contents can reflux into the gullet. This fact can also provoke heartburn, and if this happens daily, you must contact your doctor in order to receive medical care and advices.
  Repeated episodes of gastro-oesophageal reflux can cause oesophagitis, which is the inflammation of the inner lining of the oesophagus. Gastro-esophageal reflux oesophagitis usually comes with symptoms like a burning or a painful sensation in the upper abdomen or chest, that sometimes radiates to the back, some patients can have breathing difficulties and suffer from hoarseness, and also excess belching can appear.
  It was observed that gastro-oesophageal reflux appears especially after eating a large or fatty meal, drinking alcohol, lying down, bending over or bending and lifting. Usually, symptoms occur rarely, but there are also cases when they appear weekly, or even daily. It is also known that smoking makes the gastro-oesophageal reflux to become much worse.
  Gastro-oesophageal reflux can have a great influence in our lifestyle, the quality of our life can become lower. This disease can provoke oesophagitis if you are exposed for a long time to refluxed acid, and also, if oesophagitis lasts for a long time, it will lead to complications. There can appear a scar-tissue that contracts and a narrowing will come in the affected part of the oesophagus. Of course, this is a grave situation, the patient will have great difficulties when we wants to swallow, or he will not be able to swallow at all. He will need immediately medical care, but fortunately, this complication is rare.
  The oesophageal sphincter, which is the muscular ring situated near the diaphragm, at the lower end of the oesophagus is functioning as one-way valve. It has the role to prevent stomach contents from flowing upward. When the sphincter is not working properly, stomach acid will flow into the oesophagus. It is not known the exact cause of gastro-oesophageal reflux apparition, but there are a few conditions that surely contribute to this problem.
  If the patient has an overweight problem, the excessive fat in the abdominal cavity makes the pressure inside it to increase. That determines the contents of the stomach to travel up into the gullet. Hiatus hernia is also a problem that can  
          
          lead to gastro-oesophageal reflux apparition. The oesophagus remains open because the diaphragm is not closing the lower end, and stomach acid will enter into the oesophagus. In pregnancy, the uterus increases in size, it presses the stomach ,and the possibility of the reflux to come grows.
  You should avoid tobacco, some foods like peppermint, coffee, fruit juices, chocolate and alcohol, and also you must take in consideration that lying down makes the reflux tendency to increase.
  Usually, the symptoms of gastro-oesophageal reflux are obvious, so no tests are needed, but the doctor can perform some tests if he has doubts. For example, he can perform a gastroscopy, or can measure the acidity in the lower end of the oesophagus during a 24-hour period. There exists another method too, used only in complicated cases, and that is called oesophageal manometry.
  If you want to reduce the risk of developing reflux, you should stop smoking, drink less coffee and alcohol, avoid high-fat meals, and try to lose weight if it is necessary. If you do not have frequent symptoms, you can treat with antacids and histamine antagonists, no medical attention being needed, but if symptoms are very unpleasant, and the heartburn is frequent, you must go to the doctor at once.The doctor will determine if there are necessary some tests, or if you need stronger medication.
  Usually antacids successfully have effect in controlling the symptoms, but if antacid medication fails, the doctor will prescribe medicines called histamine H2 antagonists, and next , if it is needed, proton pump inhibitors. There exist also a small number of cases that require laparoscopical procedure, where the oesophageal sphincter is strengthened. Article Source: http://www.articlemap.com For more resources about acid reflux or especially about acid reflux treatment please click this link www.acid-reflux-info-guide.com/acid-reflux-treatment.htm 
 
  
          
          For Hallowe'en, I'm half hoping we get all the kids so we have no candy left, and half hoping we get no kids so we have all the candy left 
      For the past few years,
fewer and fewer kids have been showing up on our door step looking for candy.
That doesn't stop Bunny from being opimistic and overbuying candy just in case scores of kids come by and get candy,
least we get our house redecorated with eggs and toilet paper.
Me,
I've always been surprised when any kids show up these days on Hallowe'en.
So it was that Bunny bought way more candy than I felt we needed. 
We ended up with three kids showing up.
In one group.
At around 7:30 pm.
At least we avoided carving a pumpkin this year,
opting instead for my ceramic, pre-carved pumpkin. 
The good news? 
Bunny bought candy we like. 
The bad news? 
Bunny bought candy we like. 
It won't go to waste,
but it will go to our waist. 
      ]]>
    The actual root cause of yesterday's bug were laid over twenty years ago 
      Yesterday,
I found the root cause of a bug but I did not go into details about how that bug slipped into production
(so to speak).
That's easy?the configuration of mod_blog differ between my development server and public server.
On my public server,
I have the following bit of code in the configuration: 
process = require("org.conman.process")
-- --------------------------------------------------------------------
-- process limits added because an earlier version of the code actually
-- crashed the server it was running on, due to resource exhaustion.
-- --------------------------------------------------------------------
process.limits.hard.cpu  = "10m" -- 10 minutes
process.limits.hard.core =  0    -- no core file
process.limits.hard.data = "20m" -- 20 MB
-- --------------------------------------------------------
-- We now resume our regularly scheduled config file
-- --------------------------------------------------------
I load a module to configure bits of the environment that mod_blog runs in.
The configuration file on the development server does not have such code.
So when I compiled the email notification program,
the fact that I did not include the -rdynamic compiler option was not an issue when I ran my tests. 
Yes,
a case where there was a difference between development and production that allowed a bug to slip through.
So I decided to dig a bit deeper.
A few days ago I explained why I had such directives in my configuration file when
I was asked why didn't I use Apache's RLimitMEM directive.
I answered that the cause of adding the process limits happened pretty early in the use of mod_blog and that I didn't recall seeing such a directive in Apache at the time. 
But I did get curious as to when Apache might have added the RLimitMEM directive.
I started this site using Apache 1.3
(when that was the current version of Apache?I've been blogging for quite a long time)
and I was thinking that the RLimitMEM directive may have been added around version 2.0.
In my archives,
I found a copy of Apache 1.3.9 and wouldn't you know it?RLimitMEM existed! 
Sigh. 
I could have avoided yesterday's issue had I only read a bit further into the Apache documentation back in the day. 
      ]]>
    It worked, but it failed 
      In posting the previous post I encounted an interesting bug!
It wasn't in mod_blog per se,
but in the hook running after an entry has been added,
and therein is the bug?the entry was successfully added,
but the hook failed. 
The hook program failed due to a compilation error that was only triggered when it ran.
I took the email notification code from mod_blog and turned it into a program.
I also linked to the bloging core of mod_blog to avoid having to duplicate the code to read the configuration
(the email notification block is now ignored by mod_blog itself),
and because the configuration format is Lua,
a compiler option is needed to support Lua modules written in C?basically, -rdynamic to allow C-based Lua modules to call Lua functions
(which I allow, and need, to support my particular configuration). 
This is the root cause of the issue. 
But in the meantime,
because the hook failed to run,
the script I use that uses the HTTP PUT method received a status of ?500 Internal Server Error,?
the entry was stored,
but none of the statically generated files
(index.html and the various feed files)
were generated,
nor email sent. 
Once I figured out what happened,
it was easily remedied,
but that still leaves the question of what should happen?
I intended the add entry post-hook to handle situations like notifications,
so in this case,
if the hook fails,
normal processing should proceed,
but how to send back that the entry post-hook failed?
Looking over the HTTP status codes,
perhaps I could return a ?202 Accepted? when the entry post-hook fails,
with some information about the failure.
That could work. 
      ]]>
    The fix wasn't easy, or C precedence bites 
      For the past decade now,
I've done a Christmas release for mod_blog
(only missing the years 2019 and 2023),
just beacuse.
I was poking around the codebase looking for changes I could make for Christmas this year,
and well,
I got a bit impatient and have just now released a version in time for Halloween.
And it's scary?I'm removing features!
I've removed features in the past,
like no longer supporting ?ping servers? when it became clear it wasn't worth it,
or automatically updating LinkedTikFaceMyInstaPinMeGramWeTokInBookSpaceTrest when InstaPinTikMyLinkedFaceMeTrestBookGramWeInSpaceTok
changed how it works often enough to make it annoying for me to continue.
But this time ? this time it's different.
This is removing functionality that has existed in the code base since the beginning!  
To make it easier to write entries,
I had code within mod_blog to process the input?mostly what existed was to convert sequences like ``quoted'' to ?quoted? and ?...? to ???,
but with an option to add <P> tags around logical paragraphs.
But given that I now use my own markup language,
I rarely used the web interface
(like, I can count on my fingers the number of times I've used it and still have a few left over should give an indication of how little I use it)
and the code just sat there,
unused.
So unused that in fixing one bug I introduced another bug in the code I fixed!  
To recap,
here's the original code: 
char UrlDecodeChar(char **psrc)
{
  char *src;
  char  c;
  
  assert(psrc  != NULL);
  assert(*psrc != NULL);
  
  src = *psrc;
  c   = *src++;
  if (c == '+')
    c = ' ';
  else if (c == '%')
  {
    assert(isxdigit(*src));
    assert(isxdigit(*(src+1)));
    c    = ctohex(*src) * 16 + ctohex(*(src+1));
    src += 2;
  }
  *psrc = src;
  return(c);
}
and the ?fixed? version: 
char UrlDecodeChar(char **psrc)
{
  char *src;
  char  c;
  
  assert(psrc  != NULL);
  assert(*psrc != NULL);
  
  src = *psrc;
  c   = *src++;
  if (c == '+')
    c = ' ';
  else if (c == '%')
  {
    if (!isxdigit(*src))   return '\0';
    if (!isxdigit(*src+1)) return '\0';
    c    = ctohex(*src) * 16 + ctohex(*(src+1));
    src += 2;
  }
  *psrc = src;
  return(c);
}
I don't fault you if you can't spot the bug.
I only found it when testing the web interface to ensure it wasn't completely broken with the conversion code removed
(instead it's now only mostly broken but that's an interesting case in and of itself and requires its own post).
The bug is in this line of code: 
if (!isxdigit(*src+1)) return '\0';
 
The issue is due to C's precedence rules and dereferencing rules.
The code above is parsed as src[0] + 1 instead of the src[1] that I was intending.
When I modified the function,
changing the calls to assert() into actual code to return an error
(I typed in the new code as that's faster than modifying the existing code)
I ? kind of missed that. 
Oh,
who am I kidding?
I totally missed that.
But because I don't use the web interface this bug went unnoticed.
Sigh. 
For the record,
I changed the code to read: 
if (!isxdigit(src[0])) return '\0';
if (!isxdigit(src[1])) return '\0';
c    = ctohex(src[0]) * 16 + ctohex(src[1]);
 
Another long time feature I've removed is email notification.
I added it early on where you could submit your email address to get notified of posts,
but spammers and a lack of outside interest pretty much put the kibosh on that.
As I still have three users of the email notification
(one is me,
one is Bunny,
and one is one other person whom I'm not sure still reads the emails but they haven't bounced yet)
I don't want to drop support completely,
so now the email notifications are sent via the hook mechanism I added a few years ago. 
In total,
I removed over 3,000 lines of code from mod_blog.
Granted,
over 2,000 of them were in one function that was removed,
but still,
it's 3,000 lines of code I don't have to worry about any more. 
Still,
it's a bit scary to remove features that have been there for so long,
and thus,
a Halloween release. 
      ]]>
    So account deletion at Network Solutions is a bit more nuanced than I was led to believe 
      I was,
perhaps,
a bit harsh with my criticisms of account deletion at Network Solutions.
I noticed that they had yet to remove the billing information,
so I called back to get an update and this time I was able to talk to a ?billing specialist.?
They still had to manually delete the credit card info
(which they did while I waited)
but I also learned a bit more about their policies about account deletion.
If there's no services on an account,
it will be deleted after a month
(the ?billing speciallist? wasn't exactly clear on this,
but it sounded like a month)
of inactivity,
which,
okay,
I can see that.
I just wish that was a bit more visible on the site,
both to reassure those that want to leave Network Solutions,
and to warn those that do use Network Solutions that no billing activity on their account can lead to automatic deletion.
So they move up from ?clown show? to ?annoying to use.?  
      ]]>
     |