RSS Feed


Comments RSS

Good Privacy Resource Information

Summary of trusted privacy tools and information:
1) General file encryption: miniLock, Chrome App,
2) Steganography: steghide, application,
3) Full Disk Encryption: VeraCrypt, application,
4) Secure OS: TAILS, TOR enabled Linux Distro (live CD/USB),
5) Crypto Programming Library: libsodium, cross-platform,
6) Secure mobile Texting & Voice, Signal, Android & IOS,
7) Public Key Crypto: GNU Privacy Gaurd, cross-platform,
7) Learning About Cryptography: Ciphers by Ritter, website,
8) The definitive book on cryptography: The Codebreakers; The Comprehensive History of Secret Communication from Ancient Times to the Internet, by David Kahn,
9) Ongoing security information and teaching:  Security Now!, website/podcast,

quote: “Arguing that you don’t care about the right to privacy because you have nothing to hide is no different than saying you don’t care about free speech because you have nothing to say.”,
Edward Snowden, Reddit, May 21, 2015

Pyinstaller and cx_Oracle success!

I have had success with producing a single file executable from a Python script that includes cx_Oracle.  Here are the details.  Another post in the PyInstaller Google Groups forum from the past put me onto the right track.  Hopefully this will also help someone struggling to get this working.
OS was Windows 7 Pro 64 bit.
Python was 2.7.8 32 bit.
cx_Oracle-5.13 for 2.7
Python script, this was my program.
Oracle 11g instant client DLL files, OCI.dll and oraociei11.dll (OCI.dll seems to stay constant from version to version of Oracle, but the other DLL file’s name will change with Oracle versions.)
A properly designed tnsnames.ora file.  This contains the necessary connection information for your Oracle database.
A Pyinstaller-2.1 .spec file to make sure Pyinstaller did everything that was needed to produce the single file .exe.  Pyinstaller-2.1 will not automatically include both DLLs into the .exe without using a .spec file.  It does pick up the OCI.dll file automatically, but not oraociei11.dll.
First, I began by writing my Python script, which imports cx_Oracle, makes the connection to the database, and does some work.  My working directory was C:\Python27, so the script, two DLL files and .ora file were all placed there.  Test the code to make sure that via the interpreter the script interacted with the database correctly.
Second, I ran Pyinstaller-2.1 against the script without the -F option (for single file .exe).  This created an oracle_connect.spec file which I used as a template which was edited to include the needed settings.
Third, I edited the oracle_connect.spec file (see below) to specify a single file executable and to include the oraociei11.dll in the compilation  The paths were specific to my installation environment and where I had placed by Python source file and other files, adjust to match your environment.  This oracle_connect.spec file I then placed in my c:\Python27\PyInstaller-2.1 direcory.  Then I executed the following to produce the single file executable.
C:\Python27\PyInstaller-2.1>..\python.exe .\ .\oracle_connect.spec
The resulting oracle_connect.exe may now be distributed without including loose DLLs.  The only additional file needed is the tnsnames.ora file.  This cannot be compiled into the program and must reside in the same location as the executable program.  It is a configuration file for the communications parameters necessary to make the connection to the Oracle database.  I include a sample of a tnsnames.ora file below.
oracle_connect.spec file contents:
# -*- mode: python -*-
a = Analysis([‘..\\’],
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.binaries  + [(‘oraociei11.dll’,’c:\python27\oraociei11.dll’,’BINARY’)],
console=True )
Sample tnsnames.ora, values in <> are Oracle installation specific, contact your local Oracle admin for the correct values to use.
# tnsnames.ora Network Configuration File
<Oracle instance name> =
(ADDRESS = (PROTOCOL = TCP)(HOST = <FQDN or IP>)(PORT = <1521>))
(SERVICE_NAME = <Oracle service name>)

GERD and PVCs, finding relief

I have suffered with GERD (Gastrointestinal Esophogeal Reflux Disease) and heart rythym issues (Atrial Fib and PVCs)  for many years.  I have ended up in the ER twice in the last two years and the heart rythm issues only became worse.  I have taken beta blockers and calcium channel blockers which only help somewhat and I would still have major and long lasting episodes, particularly the PVCs.  I had long suspected the my GERD was somehow contributing to the heart rythym issues.  It seems that when my reflux was worse, so was the other.  I had asked doctors about this and they would either seem skeptical or claimed no medical evidence for such a conclusion.  Well, I decided to do some research on my own.  Sure enough, I came across scores of others online who were convinced that GERD was contributing to their PVCs.  Many also reported the same response from the medical community.  However, many had also found relief for symptoms.  One source of relief was the use of the foaming antiacid GAVISCON (Aluminum Hydroxide + Magnesium Hydroxide).   Recently, I was suffering badly with the PVCs, felt awful, short of breath, the whole range of symptoms, and the GERD was doing its thing.   So, I took 4 GAVISCON chewable tablets.    VIOLA!  Within only a few minutes the PVCs and other symptoms were 100% gone.  Next day, I ate breakfast but did not take the GAVISCON and the symptoms came back.  Took GAVISCON again, symptoms went away again.   I had been suffering for days, but taking the GAVISCON is consistently giving me relief from the heart rythym symptoms.  So, my conclusion is the GERD absolutely contributes to PVCs.  I am also conviced that the best treatment is my case is aggressively treating the GERD.  Here are my recommendations.

1)  Get off the caffeine.  If you have heart rythym issues, drinking a lot of coffee and other caffeinated stimuant beverages is not helping your situtaion.  Just common sense.

2)  Work on your diet, stop overloading your stomach.  Remember that your primary problem is likely GERD.  If you have GERD, overloading your stomach is not wise.

3)  Avoid drinking liquids in large amounts after eating a meal.  GERD sufferers often have stomachs that are slow to empty and you are just overloading it with fluid and making it easier for the GERD.

4)  Take the anti acid medicines such as Nexium, Protonics, etc.  These will help reduce the production of acid in the stomach.  Overproduction of stomach acid is a problem for many with GERD.

5) Most important, take GAVISCON!  It is not only an antiacid, it also forms a physical barrier in your stomach the floats on top of the stomach contents to help prevent them flowing back up into the esophogus.  Even if the reflux occurs, the GAVISCON make the trip up first and coats the esophogus, helping protect it from damage and reduce the irritation caused by the GERD – which is what is causing the PVCs.   Take the GAVISCON after each meal and also at bedtime.   After taking the GAVISCON, do not wreck the good that it is doing by immediately drink a lot of fluids, try to wait a couple of hours at least.  This will also give you stomach an opportunity to empty somewhat.

I hope this helps someone.

Barack Hussein Obama makes the “IN” crowd!


The Law

I invite you to read The Law, by Frédéric Bastiat. It is not very long, but is a tour de force of vital political philosophy.

The Law by Bastiat, Audio with introduction from the Mises Institute

Bye Bye Firefox!

I uninstalled the Firefox web browser from my Linux system today.  Good Riddance!   Use Chrome Browser !

Americans, played for fools!

Wake up America! It is all about their voting records! Contrary to popular belief, the final floor vote on an issue or bill is not always the most important one. There are lots of votes that happen before any floor vote in the State or U.S. Legislature. There are committee votes, procedural votes, and amendment votes. All of these determine what legislation actually comes down to that final floor vote and the final form the legislation appears in. MANY legislators/congressmen vote completely contrary to the clear wishes of their constituents in the VITAL preliminary votes only to vote “the right way” on the final floor vote. This gives the appearance that they are faithfully serving the will of their constituents when in fact they are actively thwarting them. All of these votes are matter of public record, do your research people. Wake up, you are being played for fools!

Article 5 of the U.S. Constitution

Please read this, the text of Article 5 of the U.S. Constitution VERY carefully, then I am going to try to explain Article 5 of the U.S. Constitution, also very carefully. I have found that too many people, including some conservatives, are spreading a serious misunderstanding concerning it.

Article 5
The Congress, whenever two thirds of both Houses shall deem it necessary, shall propose Amendments to this Constitution, or, on the Application of the Legislatures of two thirds of the several States, shall call a Convention for proposing Amendments, which, in either Case, shall be valid to all Intents and Purposes, as Part of this Constitution, when ratified by the Legislatures of three fourths of the several States or by Conventions in three fourths thereof, as the one or the other Mode of Ratification may be proposed by the Congress; Provided that no Amendment which may be made prior to the Year One thousand eight hundred and eight shall in any Manner affect the first and fourth Clauses in the Ninth Section of the first Article; and that no State, without its Consent, shall be deprived of its equal Suffrage in the Senate.

This article defines exactly TWO avenues for amendments to be PROPOSED to the constitution.
1) Amendments to the constitution may be proposed by 2/3 of the Congress (i.e. 2/3 of the House and 2/3 of the Senate must agree to do so.)
2) Amendments to the constitution may be proposed by the States when 2/3 of the state legislatures agree to call a convention for the purpose of proposing amendments.
3) Please note that in either case amendments are only being PROPOSED. The second method via the States is only to bring together a convention for the purpose of PROPOSING amendments, not for in fact amending the constitution.
4) There is nothing in Article 5 even suggesting a mechanism for calling an actual constitutional convention by which the constitution would be directly amended. People are suggesting that an Article 5 States convention would or could do this, this is FALSE and to spread such an idea is either a deliberate lie or a serious misunderstanding.
5) There is also nothing in this amendment to suggest that Congress can deny the rights of the States to PROPOSE amendments via the States route. The States do not need Congress’ approval and if States proposed amendments are then also ratified by the States as set forth in Article 5, the U.S. Constitution is duly amended – PERIOD.
6) By either route of PROPOSING amendments, the PROPOSED amendments must still be RATIFIED by 3/4 of the States in order to become actual amendments to the U.S. constitution. Neither the Congress nor the States can do it other that through the TWO STEPS of PROPOSING amendments and then the States RATIFYING them.
5) Amendments are RATIFIED by either 3/4 of the State legislatures OR by 3/4 of State conventions. Which ratification mode, state legislatures or state conventions, is determined by the congress Congress. However, just because the Congress may determine which ratification mode is used, it may not ignore the fact that the states are by the necessary proportions proposing amendments and thwart ratification. Article 5 does not give Congress that power.

So, please LIKE and SHARE this as broadly as you can so as to help put aside the fear and uncertainty being spread concerning the power that the States do in fact posses to amend the Constitution per Article 5.

Also, see this additional comment:  Congress cannot legally block this process by the states.

Also, see this article:  The Myth of a Runaway Amendments Convention

Also, see this article:   Jurisprudence of the Amendment Process

Vote for Danny Pelton!

My name is Bill Allen. I am the Republican Precinct 23 Chairman for Erath Co. TX and I endorse Danny Pelton for the Texas House of Representatives, District 59. He is the Conservative Republican candidate, and you can trust him to truly represent our values and interests in Austin.

The Watch Folder

For the programmers and systems administrators among us.  Consider the following, and all too common, programming task. Events from one process need to trigger actions by another.  Now, the impulse may be to try to impliment a direct method of communications between the two process via networking sockets, low level OS signals, etc.  While this may be good to consider or even use at times, there may be a far more simple and less problematic method that is almost always worth considering – the Watch Folder.    If both processes can have access to a common directory, via network share or direct filesystem mount for instance, then all one has to do is have the first process drop a small file to the locaton and have the other process be watching for it, act in response and then clear it out and wait again for the next time the file appears in order to act again.   The second process can watch for it directly or have some other task be the watcher that then calls the final process, perhaps through a periodic call from a task scheduler such a cron.   There are lots of realitively simple ways of implementing such an arrangement without resorting to more complex networking or OS signaling programming schemes.   The Watch Folder methodology works well in any language but is particularly easy to implement in simple scripting languages that are available as part of the command shell of most any OS, such as BASH in Linux, Bourne or Korn Shell in Unix, or DOS Batch or Powershell script in Windows.

The Commandline Bible program is released!

My previous post concerned a little program I wrote one evening to process a bible text file and produce a database from it using Python.   That evening project took on a life of its own, so I have removed the archive download from that blog post as it is now very obsolete.   I now introduce and release to the public my Commandline Bible program.  It is a capable bible search and study program designed for use from the Linux or Windows commandline.  Both are writen in Python and require the installation of the Python 2x (currently 2.7.3) interpreter.   The program should work fine for any Python 2.5 or later 2x installation.  In both versions, extract the archive to folder.   For Linux, run python at the commandline.   For Windows, run the bible.bat batch file which ensures that the needed ANSI character support is loaded and then runs the Python interpreter and the program.   Many thanks to my good friend Larry D. Barr for many suggestions and beta testing support.  This is version 1.0.  Enjoy!


  • high quality KJV Pure Cambridge Edition (PCE) text is used
  • case sensitive single word or words found in series search
  • search can be for whole bible or limitied to Old Testament, New Testmant, or single Book of the Bible
  • verse display by reference
  • display of the Treasury of Scriptural Knowledge (TSK) references for verses
  • a simple ANSI color text interactive command line program not requiring any graphical interface at all
  • SQLite3 database and other associated datafiles made freely available
  • all software distributed via the free MIT lincese and other applicable free licneses
  • very low system resource usage and very fast


Using Python to create a Bible database program

The programming bug bit me this evening and I did something I have wanted to do for a really long time, write my own code to create a useable bible database.   So, I took an indexed bible text available in the public domain, wrote the code to parse it properly and then package the parsed bible into a Sqlite3 database file that can then be querried.  Basically, the heart of any bible search program.  I cannot believe how fast it runs!  That is a whole lot of text, but Python excells in the text processing domain.   The link is to an archive containing the bible text file that gets processed and the Python program.   When run, the database is created from scratch.

The code is Python 2.x style.   You may use this code in anyway you wish. NOTE: the following code is obsolete and has been removed.  Please see this blog post for the fully featured program!

The code has good examples of:
1)reading a text file, line by line
2)text parsing and regular expressions
3)error handling
4)Sqlite3 database handling

My first 5k race!

To put a bow on having lost 80 pounds from a year ago this month, I ran in my first 5k race!   I ran in the Faith 5k which was a fund raiser for the Faith Lutheran Church elementary school.  They put on a very nice event using a professional timing company.   They even emailed us our results following the race, mine are below.   I really just hoped to be able to finish the race so my result greatly surpassed my expectations.   Now I have a time to beat for my next race.   What a fun way to spend a beautiful Saturday morning in Stephenville, Texas.

The email I received following the race:

Congratulations on finishing the Running with Faith 5K on March 31, 2012.

There were 8 finishers in the Male 40 to 44 age group and 147 finishers in the race.

Your overall finish place was 79 and your age group finish place was 6.  Your overall finish percentile was 54 while your age group percentile was 75.  Your time of 30:36.18 gave you a  9:52 pace per mile.

Full results, as well as upcoming races can be found at  Be sure to like us on Facebook for up-to-date information about all local running events.

We hope to see you again next year.

DOS batch file to convert TIFF files to PDF

Here is a batch file I put together today for a coworker so he could easily convert TIFF format, .tif, files to PDF, .pdf, files. The batch file is put into the system environment PATH and a shortcut is put in the user profile ‘Send To’ folder, allowing the user to right click the .tif file and choose to send it as input to the batch file for conversion. The batch file requires the gnuwin32 utilities suite be installed and also listed in the system environment PATH. Installing these are well worth the time and effort as it freely brings the wealth of the GNU Utilities, that are the user space backbone of all Linux/Unix systems, to any Windows PC. They can be downloaded from here: The particular GNU utility we levarage to do the actual TIFF to PDF conver is called, understandably, tiff2pdf. Additionally, some interesting DOS batch techniques are used in parsing the input file path and file name, and also parsing out the base file name from its file extention. These involve the use of ~nx1 and ~dx1 as seen in the batch file that follows. Learn more about these techniques at the following site, in particular item #9:

So, here is the batch file. A DOS/GNU hybrid!

@echo off
REM usage: tiff2pdf.bat my_tiff_file.tif

REM get just the file name
set file=%~nx1

REM get just the working path of that file
set file_path=%~dp1

REM strip the file extension from the file name to prepare it for the processing command
set noext=%file:~0,-4%

REM call the GNU tiff2pdf utility with appropriate paramenters to convert from TIFF to PDF.
tiff2pdf.exe %1 -o “%file_path%%noext%.pdf” -f

Tech Podcasts

I have really been getting into podcasts lately, particularly tech type ones.   Here are some you might like to check out.

The Linux Action Show

Linux Basix

Hacker Public Radio

This Week in Tech

Finally, I am looking into partnering with another geek buddy to produce a new podcast.  I’ll post a notice here when it is ready.

Slackware vs. Arch Linux

I recently found an excellent article comparing Slackware and Arch Linux.

bye bye Ubuntu

I think I am going to scrub my Ubuntu 10.04 system (the one I am typing on is Linux Mint Debian), and do another Arch Linux install.   At that point Ubuntu will have been totally jettisoned.  For an Ubuntu done better than Ubuntu, I have Linux Mint.   LM is great for an easy productive installed Linux.  However, it is so easy that it does not do much for my need for a Linux “geek” fix.  So, that is what Arch is for.  Not an easy install.  I have to actually think, read, and learn to do stuff properly on it which is why I fell in love with Linux in the first place.

Don’t get me wrong, I am not an Ubuntu hater.  The Ubuntu team did some really great things and set some really high bars that I think had a great influence on the entire Linux world.  However, I think they have taken a wrong turn with their emphasis on the Unity desktop and have dumbed down the system far too much.  I do appreciate their reasoning for doing this in that they want to get as many newbies and hopeless end users onto Linux and expand the user base.  I really do applaud that and wish them all the best.  However, it is just not for me.  I am a hardcore geek.  I write code.  I do geek for a living and for pleasure.  I just need something more chanenging and interesting.  Fot me comptuing is not just a means to and end, it an end unto itself.   So, of to greener pastures.  I have done Arch before, and really like it.  Even when I got stumped a few times on how to do something, I really liked it.  Linux Mint for my everyday utilitarian computing and Arch for my geek needs.  That’s where I am at now, but given time all this too will change.  I love the ever changing Linux landscape.


GRUB2 – editing the boot menu

When it comes to Linux bootloaders, I cut my teeth on LILO.   Learned that, got good at it!   But, time moves on and pretty much all the Linux distros went to GRUB.  So, learned that, got good at it, LIKED IT!   But, time moved on again.  Now most of the major distros have switched to GRUB2.  Granted, it did fix some problems found in GRUB, but we lost the easy-to-edit menu.lst file which was a one stop shop for configuring the boot menu in GRUB.   Typically, you would either want to manually added entries to the boot menu or to remove unneeded entries.  This much more complex in GRUB2, but not impossible.   With a little guidance, you can get back to having a boot menu done the way you want.   After some searching, I found these two articles that provide the best HOWTO info that I know of, particularly without being overly complex.  Both of these authors have done a very good job at making this understandable, and doable.  Check them out.

Understand the structure of GRUB2 and how to add entries:

Clean up your boot menu in GRUB2 and remove unneeded entries:

Save our Internet-Oppose SOPA

Opposition to SOPA.  We are in danger of losing a free American
Internet.  Unless you really want to enjoy internet restrictions
like those in China, you need to tell your representatives in
congress to oppose SOPA.  Read the following and take action!

A Private Internet

I have taken a great interest in personal privacy on the Internet.
I have found some things to help accomplish that.  Please comment
if you know of additional resources or techniques.

1) Private email via PGP encryption:  Seems to be most easily
accomplished using the Thunderbird email client with the Enigmail PGP
add-on.  Note, you will need to have PGP or GPG also, installed.  This
is usually true by default on Linux systems, but on Windows you need
to install GPG4Win.
To obtain the Thunderbird mail client program:
To obtain the Enigmail add-on:
Another option is the Claws Mail client which incorporates PGP support
A good article introducing the use of the Thunderbird email client with
the Enigmail add-on.

My public key for  wa5pb19 <at> gmail <dot> com  is:

2) Private surfing using the TOR browser, which is a specialized cut of
Firefox which incorporates the use of internet relays to help keep your
own internet surfing presence anonymous.

3) Private internet searching via the DuckDuckGo search engine.  Which
can also be added as a search provider for the Firefox search bar.

4) Encryption of files using GPG.
A good, brief intro to GPG.
The official GPG documentation.

Some people might ask, "Why? Do you have something to hide?".  To
which I respond, "No. But, why not?  Do we not have a right to privacy?".
However, it must be remembered that if we desire a right to privacy,
we much put effort into keeping our own information private.  If we
release information about ourselves, intentionally or not, it is no
longer private and we arguably lose the reasonable expectation of
privacy afforded by the 4th Amendment of the U.S. Constitution. The
problem arises when we unwittingly reveal information about ourselves
via the internet and other computing activities.  These resources may
help a person to avoid doing that.


On March 11, 2010, the United States Court of Appeals for the Eleventh Circuit ruled, in Rehberg v. Paulk, 598 F.3d 1268, that a person does not have a reasonable expectation of privacy in an e-mail once any copy of the communication is delivered to a third party.[80]

On December 14, 2010, in United States v. Warshak, the United States Court of Appeals for the Sixth Circuit ruled that a person has a reasonable expectation of privacy in his emails and that the government violated Warshak’s Fourth Amendment rights by compelling his internet service provider to turn over his emails without first obtaining a warrant based upon probable cause.[81]