Posts Below
4/18/2017 - Taxation should be totally banned (Finances)
4/18/2017 - Cow milk's flavor can be damaged by exposure to light (Food)
3/27/2017 - Salty XML Transformer v1.0 (Software)
3/14/2017 - The Mad Drummer (Music)
2/5/2017 - A simple Schematron demo for PHP 5.6.28 and Saxon/C 1.0.2 (Software)
2/3/2017 - How to get the Schematron Testing Framework (stf) to run in Lighthouse 64 Puppy Linux 6.02 Beta 2 (Software)
1/12/2017 - VUE: How to detach images from bubbles (also known as nodes) (Software)
1/8/2017 - GNU Emacs: Using helm-unicode; changing the font and font size only for helm-unicode; etc. (Emacs Lisp)
1/8/2017 - My slightly modified VUE: Visual Understanding Environment (Software)
12/19/2016 - Links: Music generated (or partly generated) by software (Music)
11/26/2016 - The renovated Puppy Linux Setup Kit will probably require PHP and PHP-GTK (Programming)
11/17/2016 - Always check ingredients lists, since you never know when a food company might add sucralose, or who knows what else (Food)
10/8/2016 - My nice, now "organized" room :-) (Journal)
9/21/2016 - Link: "It's Impossible to See all the Dots on this Optical Illusion at Once" (Science)
9/19/2016 - How to make Saxon/C into a PHP extension for PHP 5.6.13 in Lucid Puppy Linux 5.2.8 (Puppy Linux)
9/1/2016 - The death of Star Trek actor Anton Yelchin was possibly a result of software-controlled car parts (Software)
8/26/2016 - Link: Free eBook Giveaway from Hay House Publishing (Books)
8/25/2016 - Zippable pillow protectors: better than plastic bags for organizing things (Self-Help)
8/14/2016 - Oxalates and their interference with the absorption of nutrients (Health)
8/10/2016 - Link: "A Palace Was Unearthed Where Legend Places King Arthur's Birthplace" (History)

Welcome to Astroblahhh.Com. This site, consisting of both blog and non-blog pages, features a gradually growing assortment of miscellaneous things on a variety of topics. I, the author of most of the stuff on this site, usually go by the name Apollia on the internet.

This blog was generated by the WordsPlatz blog software, which I wrote from scratch.


    Hide/Show:


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down
Taxation should be totally banned
Tuesday, April 18th, 2017
17:14:17 GMT

Finances

I'm relieved that Tax Day (which is today here in the USA) will soon be over.

Too bad it depleted a large chunk of my family's savings. But, at least we had (and have) some savings this year. But we'd have a lot more if taxes (among other things) hadn't stolen our money.


I've mentioned this before, but here again is an interesting essay (or perhaps it's actually a small book, since it has chapters) on why taxation is evil:

Income Tax: The Root of All Evil by Frank Chodorov, all in one page

You can also get it on this page in the annoying PDF format, or the slightly less annoying EPUB format.


I don't agree 100% with absolutely everything in that, but, I definitely agree that taxation is evil and does a lot more harm than good.

I hope someday all taxation is totally banned, even taxation of the rich, because taxation is extortion, and extortion is wrong regardless of whether the victim is poor or rich.

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
Cow milk's flavor can be damaged by exposure to light
Tuesday, April 18th, 2017
13:47:29 GMT

Food

I wish milk was sold in glass containers inside opaque cardboard boxes instead of in plastic jugs of any opacity. It probably would be healthier and might more reliably taste fine.

Another reason I dislike plastic (other than plastic exposing milk to too much light) is because plastic might have negative health effects.


Here are some pages about the fact that milk's flavor can be damaged by exposure to light:

What effect, if any, does light have on milk?
(July 14, 2009 from ShelfLifeAdvice.com

Quote:

"Milk can develop off-flavors after just a few minutes in direct sunlight or two hours of exposure to strong fluorescent light"


Consumers sour on milk exposed to LED light
(June 8, 2016, from news.cornell.edu)


It's so frustrating to never know for sure if the next jug of milk I get is going to taste drinkable to me.

I've encountered this problem for many years. Certain brands of milk are reliably terrible and undrinkable to me, and the brand I usually like is only drinkable maybe 85% of the time. And I recently got two jugs in a row which tasted undrinkably bad, even though I always strive to get milk from the back of the shelf, where hopefully it hasn't been exposed to as much light.


But I seem to be especially sensitive. I was never able to tolerate undiluted coffee because of its bitterness, and I've never been able to eat grapefruits or drink grapefruit juice because they taste like vomit to me.

To my frequent surprise and dismay, usually the people I live with can't taste any problem with the milk, so they often volunteer to drink the ones I can't drink. Though on rare occasions, the problem is bad enough they can taste it too.


I already tried one brand of organic cow's milk in a cardboard carton, but somehow that tasted ghastly and undrinkable to me too, though I'm not sure what caused that.

Perhaps I should just try harder to be more vegetarian, and quit my cow milk addiction.

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
Salty XML Transformer v1.0
Monday, March 27th, 2017
01:58:39 GMT

Software

Blog post last edited April 3, 2017 at 2:23 PM EDT.

Salty is now at Version 1.2.


If you liked the Simple Schematron Demo for PHP 5.6.28 and Saxon/C 1.0.2, here's another PHP and Saxon/C-requiring thing you might like.

I just finished and released this today:

Salty XML Transformer

A crude but effective-enough way to use (or try to use) any XSLT sheet to transform any XML file or VUE concept map file.

Named "Salty" because the name XSLT reminds me of salt, and because I didn't have the energy or patience to try to make something more perfect and less crude. ("Crude", "coarse", and "vulgar" are some of the less frequently-used meanings of the word "salty".)


Anyway, it's good enough that I can now much more easily play around with XSLT 2.0 in PHP, and try to figure out how to use XSLT to do clever things with VUE (Visual Understanding Environment) concept map files.

By the way, here's my modified version of VUE again.


Someday, I'd like to update my Puppy Linux Setup Kit sufficiently to make it tremendously easier to install everything you'll need to be able to use the Salty XML Transformer and/or the Simple Schematron Demo, such as PHP, Saxon/C, etc.

But, I'm probably going to be preoccupied for a while with trying to build a visual programming system, since I think even a relatively simple, primitive one might make programming far easier, faster, and more fun.


Addition, March 28, 2017, 11:17 PM EDT. Updated to Version 1.1, which hopefully fixes the problem (at least with VUE maps) of some Unicode characters such as 🗁 being transformed into garbage characters (also known as mojibake).

Also fixed that for some but not all plain, non-VUE XML files. To avoid garbage (mojibake) output, those XML files must use Unicode entities instead of normal Unicode characters.

Also fixed a small glitch that stopped plain, non-VUE XML files from even being read.


Addition, April 3, 2017, 2:23 PM EDT. Updated to Version 1.2. Now it's possible to give Salty arguments to pass as parameters to XSLT.

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
The Mad Drummer
Tuesday, March 14th, 2017
23:02:45 GMT

Music


On YouTube, I recently found one of the best drummers in the world. :-)

His website: TheMadDrummer.com


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
A simple Schematron demo for PHP 5.6.28 and Saxon/C 1.0.2
Sunday, February 5th, 2017
04:38:05 GMT

Software

Today, I figured out how to use the XML-validation language Schematron with PHP 5.6.28 and the XSLT processor Saxon/C 1.0.2.

And since examples of using Schematron with PHP plus Saxon/C currently seem to be quite rare on the web - possibly even nonexistent, except for my own - I put together this GitHub repo:

Simple-Schematron-Demo-for-PHP-5.6.28-and-Saxon-C-1.0.2


I only authored the PHP script and the "README.md" file. The included Schematron schema and XML files are my slightly modified versions of things from the the official Schematron repo.

Everything else is unmodified stuff from the official Schematron repo.


Now that I can use Schematron, I'm guessing I'm probably going to have a much easier time with all of my current and future XSLT projects.

Soon, I'll be able to be far more sure I'm generating valid VUE: Visual Understanding Environment concept maps with tools other than VUE itself. (Here's my slightly modified version of VUE.)

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
How to get the Schematron Testing Framework (stf) to run in Lighthouse 64 Puppy Linux 6.02 Beta 2
Friday, February 3rd, 2017
22:56:21 GMT

Software

The operating system with which I accomplished the below was Lighthouse 64 Puppy Linux 6.02 Beta 2.


I've been messing around with XML and XSLT lately, since I want to use XSLT to do some clever things with VUE: Visual Understanding Environment concept maps. (Here's my slightly modified version of VUE.)

So, I've been trying to figure how to use the XML-validation language Schematron, so I'll have a way to validate concept map files I generate or modify with XSLT instead of VUE.

In addition to Schematron, I also stumbled across some Java software called the Schematron Testing Framework (stf), which I'm not yet sure I'm going to need, but, figured out how to run anyway just in case I ever do need it.


It took me a while, but I finally figured out I needed to download some other Java software, and edit the "properties.xml" file included with the Schematron Testing Framework (stf) to tell it where to find that other software in my system.

Here's my entire "properties.xml" file:


In addition to the Schematron Testing Framework (stf) itself, I had to download the following three Java programs. I lazily downloaded binaries instead of compiling anything from scratch. (Possibly other versions than the ones I used would work.)


  1. Saxon-HE 9.7.0.14. You can get the "saxon9he.jar" file you need simply by unzipping "SaxonHE9-7-0-14J.zip".

    Quoted from the official web page about libre, open-source editions of Saxon:

    "Saxon-HE (Home Edition) is the open-source version of the Saxon XSLT and XQuery processor."


  2. XML Calabash 1.1.15-97. The "xmlcalabash-1.1.15-97.jar" file is an installer, which you can run either by double-clicking on it, or opening a console at its folder, and using this command:

    Quoted from the official XML Calabash web page:

    "XML Calabash is an implementation of XProc: An XML Pipeline Language."


  3. xml-commons-resolver-1.2.zip - Another file you can just unzip and don't have to install in any special place. The file you need for the Schematron Testing Framework (stf) is "resolver.jar".

    Here's the official Apache xml-commons web page.


I also used:


With everything installed and the "properties.xml" properly configured, all I had to do to run Schematron Testing Framework (stf) was go to stf's "example" folder, open a console there, and type:


That resulted in this output:


To confirm that Schematron Testing Framework (stf) was really reading the example XML files "foo-1.xml" and "foo-2.xml", I edited them, which, as expected, changed the output of the "ant" command a bit:


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
VUE: How to detach images from bubbles (also known as nodes)
Thursday, January 12th, 2017
02:12:57 GMT

Software

Last edited Jan. 12, 2016, at 2:37 AM EST.


This blog post applies to both the official version 3.3.0 of the concept mapping software VUE: Visual Understanding Environment, and my own slightly modified version. I haven't tried this in other versions.


I've been a delighted user of VUE since perhaps 2010. But it was not until the past several days that I finally stumbled across a way to detach images from nodes! (Or, as I prefer to call nodes - bubbles.)

These instructions work for me using VUE in either Lighthouse 64 Puppy Linux 6.02 Beta 2 or Lucid Puppy Linux 5.2.8 version 004. Haven't tried this in Windows or on a Mac.


Here's how to detach an image from a single bubble:

  1. Drag and drop an image onto your VUE map.

  2. Right-click the bubble containing the image and choose Remove Resource (keep image).

  3. At this point, the image is still not detachable. To make it detachable, copy and paste the bubble.

  4. Unless I'm mistaken - in the original bubble, the image will still be stuck no matter what you do. But with any pasted new copy of that bubble, you can click on the image and drag it out!


If you want to detach images from many bubbles:

  1. Select all the bubbles you want to detach images from.

  2. Go to the Content menu and select Remove Resources (keep images). (Have to do that instead of right-clicking, because oddly, the "Remove Resource (keep images)" item in the right-click menu disappears when you have more than one bubble selected.)

  3. Copy and paste all the bubbles.

  4. Again, unless I'm mistaken, the images are only detachable from the pasted copies, not the original bubbles.

    You can select multiple images to drag out by clicking one image, then pressing the Shift key on your keyboard when you click the other images. Once you've selected all the images you want, click one of your selected images, then drag all of them as a group to wherever you want.


If you put an image back into a bubble, it can get stuck again, but you can just repeat the above process to make another detached, bubble-free copy. Or use the undo feature.

Happily, detaching the images makes it possible to more easily resize the images, the same way you resize a bubble. (Click on the image to select it, which makes white boxes appear at the corners and edges, which you can click on and drag to resize the image.)


I don't know if there's a maximum size for images, but, you can definitely resize them to be larger than their full size.

And using VUE's Layers feature, you can actually use images as backgrounds for anything on higher layers!


To work with layers, go to the Windows menu and choose Layers, or press Ctrl-5.

Using just the controls in that small window, you can create new layers, lock and unlock layers, show or hide certain layers, move whatever bubbles, images, etc. you want to other layers, reorder layers, duplicate layers, merge layers, and remove layers. And perhaps do other things I don't know about.

The rename-layer feature in VUE 3.3.0 - and in my own slightly modified version of VUE - currently doesn't work in Lighthouse 64 Puppy Linux 6.02 Beta 2 and Lucid Puppy Linux 5.2.8 version 004, and also in a MacOS. No idea how to fix that yet, but I might try to figure it out.

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
GNU Emacs: Using helm-unicode; changing the font and font size only for helm-unicode; etc.
Sunday, January 8th, 2017
23:37:45 GMT

Emacs Lisp

I recently figured out that in GNU Emacs, I was using the helm-unicode extension wrong.

After installing that, I mistakenly assumed that the key sequence Ctrl-x 8 Return (or, C-x 8 RET for short) was automatically now using helm-unicode. Then I was confused that the list of Unicode characters only had names and not the actual characters.

Finally, I figured out that C-x 8 RET was only running the command (insert-char), not (helm-unicode). (To find out what command is assigned to a key sequence or keychord, you can type C-h k, then after the prompt "Describe key (or click menu item):" appears in the minibuffer, type the key, key chord or key sequence you're curious about.)


To make C-x 8 RET run (helm-unicode) instead, I had to run this command (and I also added it to my GNU Emacs preferences):




Another useful thing to add is this code to make the font larger only for helm-unicode searches. It's code I slightly modified, most of which I originally found on this page:

If you don't have the "Symbola" Unicode font, you can change "Symbola" to another font name. Or, you can download Symbola from this page:

Unicode Fonts for Ancient Scripts
http://users.teilar.gr/~g1951d/




Also, here's some code I found somewhere which will make GNU Emacs display Unicode in any buffer:

The problem with using that code is, it can sometimes make GNU Emacs very slow - for example, if you do the key sequence C-h h to look at the "HELLO" file included with GNU Emacs, which shows translations of the word "hello" in many different languages.




If you want to output the entire Unicode character list as browseable, editable text in a buffer, try this. A slightly modified version of code I found on this page:

I suggest pasting that code into your *scratch* buffer. Then, put your cursor (or "point" as it's called in GNU Emacs jargon) at the end of the "print-elements-of-list" function definition and do the key sequence C-x C-e.

Then, to actually output the list into whatever buffer you're running this in, put your cursor at the end of the last line and do the key sequence C-u C-x C-e.

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
My slightly modified VUE: Visual Understanding Environment
Sunday, January 8th, 2017
05:04:12 GMT

Software

I slightly modified the wonderful concept mapping software VUE: Visual Understanding Environment to work better for me in Puppy Linux.

My modified source code is available from here:

GitHub.com/Apollia/VUE


My top goals were:

  1. To make it possible in Puppy Linux to successfully open files and web pages by clicking resource buttons attached to VUE nodes (or as I prefer to call them, bubbles).

    If I recall correctly, that already worked in Windows XP, but it mostly didn't work right for me in any edition of Puppy Linux I tried VUE in - namely, Lighthouse 64 Puppy Linux 6.02 Beta 2 and Lucid Puppy Linux 5.2.8 version 004. (Except I was always able to open other VUE map files.)


    So, I fixed that, in a crude but effective-enough way. And now I can not only open other VUE maps, but do things like launch other programs and scripts, and visit web pages, just by clicking currently inconveniently tiny buttons in VUE.

    Reminds me a little of HyperCard.


  2. To make VUE visually blend in better with my preferred dark desktop theme.


I don't feel like writing in 100% thorough detail about how to compile the source code, but, one way to compile it is by using Apache Ant. (I used v1.10, and in the past, version 1.9.6 also worked for me.)

Once you have Ant installed, you can run the command "ant all" in the "VUE2/src" folder, which after about 20 seconds results in a runnable "VUE.jar" file which you can find at the path "VUE2/src/build/VUE.jar".

And you can run VUE.jar by opening a console in the "VUE2/src/build" folder and typing:

java -jar VUE.jar


It's also possible to build and run VUE using the Eclipse Java EE IDE for Web Developers Neon.2 Release (4.6.2), and probably other versions.

Eclipse also has debugging features I mostly haven't figured out how to use yet, and the useful ability to generate Javadoc pages like these.


This old forum post on how to put VUE into an Eclipse project was helpful, though I didn't follow all of those instructions. I told Eclipse to base the project on the Ant build file at VUE2/src/build.xml, and that worked fine.

Eclipse still listed a bunch of errors even after I excluded these folders using Eclipse's Resource Filters feature:

src/java15
src/oki/old
src/maclib
src/old
src/build

But, Eclipse still was able to build VUE anyway.

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
Links: Music generated (or partly generated) by software
Monday, December 19th, 2016
13:42:00 GMT

Music

Here's an interesting article I found today:

Deep-Learning Machine Listens to Bach, Then Writes Its Own Music in the Same Style
(Dec. 14, 2016 from TechnologyReview.com)


And here's an impressive example of that music on YouTube:

DeepBach: harmonization in the style of Bach generated using deep learning




I was hoping there was source code available for that software, so, I googled for "bach source code deep learning". Didn't find the above project's source code, but, I found this:

BachBot.com

BachBot is a free (as in freedom), libre, open source project with a code repository on GitHub.

I tried the BachBot Challenge and got only 40% correct the first time, but 100% the second time, when I started listening more carefully for anything particularly un-Bach-like, such as off-key-sounding notes.




Another interesting page:

Analyzing Six Deep Learning Tools for Music Generation
(Oct. 5, 2016 from AsimovInstitute.org)




I especially enjoyed the examples from Flow-Machines.com.

Two of those tracks are also on SoundCloud, which I'm assuming might have better audio quality than YouTube.

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
The renovated Puppy Linux Setup Kit will probably require PHP and PHP-GTK
Saturday, November 26th, 2016
05:59:24 GMT

Programming

While trying to figure out the best way to do some new things with my Puppy Linux Setup Kit, I finally found out that various Unix-related systems (including GNU/Linux) are excessively flexible about what characters are allowed in file names.

Here's a detailed essay I found on that topic, from dwheeler.com:

Fixing Unix/Linux/POSIX Filenames:
Control Characters (such as Newline), Leading Dashes, and Other Problems


So, that means using shell commands like "find", "xargs", etc. is much trickier and more inconvenient than I thought.

Quite annoyingly, newline characters can be in file names. So, there's no guarantee that each line of output from "find" will contain a complete file path. I also had trouble with trying to make "xargs" deal with paths containing single quotes. And the above essay describes numerous even worse problems.

These problems make me less reluctant to make the Puppy Linux Setup Kit require PHP and PHP-GTK, partly just so I can hopefully avoid a lot of the quirks of Bash programming.


I still like Bash programming much more than I used to, and I like being able to make some simple GUIs (graphical user interfaces) using only stuff that's already included by default with Puppy Linux, such as GtkDialog, which can be used to make a nice variety of GUI elements.

And I still think it was worthwhile to spend a few months struggling with Bash programming, since I learned a lot from that.

But I still have such a tremendously easier time with PHP than Bash scripts that I doubt I'll ever be fully comfortable with the latter, at this rate.

I'll probably still use Bash for simple things, but will probably use PHP for more complicated things.

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
Always check ingredients lists, since you never know when a food company might add sucralose, or who knows what else
Thursday, November 17th, 2016
08:26:39 GMT

Food

I'm so tired of suddenly finding that things like sucralose have been added to food products I used to like.

It happened to me before, and it just happened to me again several hours ago.


As part of my effort to reduce my sugar consumption, I tried what I mistakenly thought was the totally unsweetened version of one of my favorite cereals, a healthy-sounding high-fiber cereal which I guess I won't name.

To my surprise, it tasted sweet. So, I checked the ingredients, and to my horror, I saw that it contained sucralose.


That gave me quite a fright, since I had already eaten a spoonful or two. I tried (but failed) to make myself throw up.

Then I checked the ingredients of the version of that cereal I usually ate (which I already was aware was slightly sweetened), and was horrified to find that contained sucralose too!

I don't know if it always had sucralose or if that's a recent addition, but, I'm really upset about that and will never eat that cereal again unless the sucralose is removed, and maybe not even then.

I'll always be wary of all that company's products from now on. And other companies too. Going to check the ingredient lists of everything far more carefully in the future, even things I regularly eat, since too often, the ingredients get changed for the worse for no good reason.


Anyway, I already ate many boxfuls of that cereal (including at least 1 boxful which definitely had sucralose), and don't know for sure whether or not that had any bad effects on me, so that made me less panicked about eating just a spoonful or two of the less sweetened version of that cereal.

At least I didn't eat that cereal every day - maybe a box every few weeks - and only started eating it several months ago, in summer 2016. I have had a variety of health issues (or nuisances) lately, but I'm not sure any are related to sucralose, since they all have other possible causes, and I haven't had most of the symptoms listed on this page or this page. And overall I think I've been improving and will probably be OK.

But I still don't ever want to risk eating sucralose, and I'm so upset that food companies unnecessarily put things like that into their products.

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
My nice, now "organized" room :-)
Saturday, October 8th, 2016
12:06:06 GMT

Journal

I've been doing much better since quitting caffeine and my electric blanket, which I believe was interfering with my sleep quality even more than caffeine alone was.

So, I was finally able to make my very cluttered room a lot nicer to live in.


My phone's camera takes unrealistically dark, dull-looking pictures, so I edited these pictures' brightness, contrast, saturation and gamma (whatever that is) in mtPaint to make these pictures look closer to (or better than) how my room really looks.

Look how clean and organized it is!!!!! ;-D


Larger Size

Original Picture without brightness, contrast, saturation, and gamma adjusted with mtPaint

This is the best it has ever been.

That's the especially cluttery corner, next to my big window, which features my low-cost alternative to curtains - taped together pieces of scrap paper.

Part of my office chair is visible at the lower left, and the red thing next to that is part of my standing desk.


Here's the other side of the room:


Larger Size

Original Picture without brightness, contrast, saturation, and gamma adjusted with mtPaint

My standing desk still needs to be decluttered. But the rest - well, it's hard to see how I could improve on that. ;-D

Quoted from another blog post:

The wide painting isn't by me, and I don't know who painted it. Astonishingly, it was only $2 - two dollars - from a local live auction!

The smaller, more colorful picture is a Thomas Kinkade print called The Garden of Prayer, and if I recall correctly, it also was just $2 - two dollars. Found it at a local thrift store.


Here's the stuff at the top of that shelf:


Larger Size

Original Picture without brightness, contrast, saturation, and gamma adjusted with mtPaint

The shiny silvery blue metallic map of the world was from a local live auction in 2013, and it came with with a second map of the world which is in the second-nicest corner of my room. Both of them together only cost $8 (eight dollars) total, if I recall correctly.

I think the small vase on the right is made of very tarnished copper. It's quite heavy for its size. It might have been from a Goodwill thrift store or some other thrift store, and was probably under $4 (four dollars). I intended to someday clean it and probably sell it, but I still haven't gotten around to that.

The baskety vase was probably from a Goodwill thrift store and probably less than $3 (three dollars).

In the center is a greeting card or postcard.


Here's the second-nicest corner of my room:


Larger Size

Original Picture without brightness, contrast, saturation, and gamma adjusted with mtPaint

Actually, maybe this is the nicest corner of my room, because of those 3 lovely little works of art.

I originally bought those world maps with the intention of selling them, but, I ended up keeping them, since I usually am too busy with other things to try to sell things.

The blue/purple/etc. carnival glass was around $24 (twenty-four dollars) from a local antique store in January 2003, and that's the most I ever paid for something to decorate my room.

The pastel flowery vase was from a Goodwill thrift store, and was maybe something like $2 (two dollars).


Most of the rest of that shelf:



Larger Size

Original Picture without brightness, contrast, saturation, and gamma adjusted with mtPaint


And part of my 3rd and final shelf:


Larger Size

Original Picture without brightness, contrast, saturation, and gamma adjusted with mtPaint

The picture is part of a 1994 or 1993 Dinotopia calendar, and the red thing holding it up there is a screwdriver.


Finally, junk isn't constantly getting in my way anymore. I can easily open my mini-refrigerator, and roll my office chair around part of my room! I can actually walk between my bed and door!

Now I have room to bellydance without having to stand on my bed!

And, I finally know where my towel is.

Now, the world will be my oyster. :-D


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
Link: "It's Impossible to See all the Dots on this Optical Illusion at Once"
Wednesday, September 21st, 2016
06:27:32 GMT

Science

Quite cool:

It's Impossible to See all the Dots on this Optical Illusion at Once
Sept. 12, 2016 from PopularMechanics.com


A more detailed article:

Here's why you can't see all 12 black dots in this crazy optical illusion
Sept. 13, 2016, from ScienceAlert.com


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
How to make Saxon/C into a PHP extension for PHP 5.6.13 in Lucid Puppy Linux 5.2.8
Monday, September 19th, 2016
19:15:31 GMT

Puppy Linux

I wanted to be able to use XSLT 2.0 with PHP (my favorite programming language), so I figured out how to compile Saxon/C into a PHP extension.

According to Saxon/C's official home page, Saxon/C provides "XML document processing for the C/C++/PHP platforms", and "In particular, Saxon/C provides processing in XSLT, XQuery and XPath, and Schema validation".


I ran into a few problems trying to make Saxon/C into a PHP extension on my Lucid Puppy Linux 5.2.8 version 004 system, but, fortunately, I was able to solve them.

I still didn't figure out how to make all of the Saxon/C example PHP scripts work, but, 3 out of 4 work fine for me.




To compile software from scratch in Puppy Linux, it's often necessary (or convenient) to use the DevX file of development tools for your Puppy Linux.

My page of Some Puppy Linux Basics explains more about DevX files, and if you need the DevX for Lucid Puppy 5.2.8, it's available at this link:

http://distro.ibiblio.org/puppylinux/puppy-5.2.8/

If you're using a different version of Puppy than Lucid Puppy 5.2.8, that DevX probably won't work, so you should instead download the DevX released for your Puppy.

Also, if you're not using Lucid Puppy 5.2.8, please bear in mind that the instructions in this blog post might not all apply or work for you, since different Puppy Linux distros, and probably even different versions of the same Puppy distro, can differ quite substantially from each other.

And here's how to load SFS files.




Here's a list of required other software. Perhaps slightly different versions would also work, but these are exactly what I used.




The below instructions assume you already have PHP 5.6.13 and Java 1.8.0_51 installed.

Here's how I made Saxon/C into a PHP extension.


  1. Unzip the file "libsaxon-HEC-setup-v1.0.2.zip" to whatever folder you want.

  2. Open a terminal window in that folder, and type this command:

    ./libsaxon-HEC-setup-v1.0.2


    That program will then give you a prompt that looks something like this:

    Enter destination path[/root/00-ApWorkspace/Saxonica/Saxon-HEC1.0.2]:

    You can press Enter on your keyboard to accept the default path, or type in a different path. If all goes well, a list of files that are being installed will be printed, and in the end, it will say:

    Saxon-HEC 1.0.2 has been successfully installed on your computer.


  3. Next, open the Saxonica folder, then the Saxon-HEC1.0.2 folder.

    There's a "readme.md" file you can read if you want.

    There's also a "php-library-module" folder, containing "saxon.so", an already-built PHP extension. It might work if you happen to be using the version of PHP the Saxon/C home page says that extension was built for - PHP 5.5.9. But, I tried it with PHP 5.6.13, and it didn't work for me.


  4. Open the Saxon.C.API folder, then open a terminal window in that folder, and type these commands. (The "phpize" command will only work if you have PHP installed):

    phpize

    ./configure --enable-saxon


  5. Here's where I had to diverge from the instructions in the "readme.md" file.

    Originally, running "make" didn't succeed for me because I had Java installed in an unconventional place, and "make" needed two Java-related files which "make" couldn't find: "jni.h" and "jni_md.h" (and probably others as well).

    "make" also needed a file from somewhere in the Saxon-HEC1.0.2 folder.


    So, to let "make" know where to find those files, I had to edit the "Makefile" in a text editor.

    In "Makefile", find line 31, which looks like this:

    CPPFLAGS = -DHAVE_CONFIG_H

    Change that to something like this (but customize it with the paths where you have Java, and where you put the Saxon-HEC1.0.2 folder):

    CPPFLAGS = -DHAVE_CONFIG_H -I/root/apbin/Java/v8u51/include/ -I/root/apbin/Java/v8u51/include/linux/ -I/root/00-ApWorkspace/Saxonica/Saxon-HEC1.0.2/


  6. Added Dec. 20, 2016, 12:50 AM EST. (Sorry, I forgot to mention this step before!) Next, to make it so the "make" command will succeed, you must put a symlink inside the /usr/lib/ folder, pointing to the "libsaxonhec.so" file in the "Saxonica/Saxon-HEC1.0.2/" folder.

    Otherwise, without that symlink, "make" will eventually fail with this error:


  7. Next, in a terminal window opened at the Saxon.C.API folder, type this command:

    make

    After "make" succeeds, the compiled "saxon.so" PHP extension will be in the "modules" folder.


  8. Open the "modules" folder. Then, go to wherever your folder of PHP extensions is, and copy "saxon.so" into that folder.

    For me, that folder was:

    /usr/local/lib/php/extensions


  9. Then, to enable the saxon.so extension in PHP, edit your "php.ini" file. You might have multiple php.ini files - I have one at /etc/php.ini and one at /usr/local/lib/php.ini.

    In the extensions section of your "php.ini" file, put a line like this:

    extension=saxon.so


  10. I also had to create a symlink at /usr/lib/rt/ pointing to the "rt" folder in the "Saxon-HEC1.0.2" folder, since otherwise, errors happened, sometimes with PHP, and sometimes with the Hiawatha web server (which sometimes gave me an Internal Server Error).

    In my system, the "rt" folder was in this folder, but it will probably be elsewhere on your system:

    /root/00-ApWorkspace/Saxonica/Saxon-HEC1.0.2


  11. To make sure the extension was installed successfully, you can have PHP run the phpinfo(); command to print a list of installed PHP extensions and other info.

    You can even run the phpinfo(); command from a terminal window with this command line:

    php -r "phpinfo();"


There are example PHP scripts in the folder Saxon-HEC1.0.2/samples/php. "xpathExamples.php", "xqueryExamples.php", and "xsltExamples.php" worked fine for me, but "validatorExamples.php" had an error which I don't yet know how to fix.

Also, I think I ran into Bug #2677 - Saxon/C PHP API getErrorMessage does not report useful error.

However, more detailed error messages are readable in my Hiawatha web server logs, which, on my system, are located at:

/usr/local/var/log/hiawatha/error.log


I made this little PHP script called display_last_5_lines_of_hiawatha_error_log.php to make that log easier to read in my web browser:


Additions, March 12, 2017, 5:36 PM/6:14 PM EDT. While trying to use the Saxon/C PHP extension in Lighthouse 64 Puppy Linux 6.02 Beta 2, I had trouble making it work in the Hiawatha web server, even after doing all of the above.

Even with /usr/lib64/libsaxonhec.so (another other paths) symlinked to my system's location for libsaxonhec.so (/root/apbin/Saxon-HEC/Saxonica/Saxon-HEC1.0.2/libsaxonhec.so), I kept getting Internal Server Errors, and Hiawatha's log said, "Unable to load /usr/lib64/libsaxonhec." and "Error: : No such file or directory".

I think this might be related to Bug #2907 - php saxon.so is looking for libsaxonhec.so without so extension in both /usr/lib64 and /usr/lib and failing.


Fortunately, that bug page helped me figure out a workaround. In every PHP script which needs to run Saxon/C, I can put this line (which you'll probably need to customize with the path to where libsaxonhec.so is on your system):

Then, Saxon/C works fine for me.


Another workaround is to add this to Hiawatha's config file (which, on my system, is at /usr/local/etc/hiawatha/hiawatha.conf):

Then, I don't even need to add anything to my PHP scripts for them to just work.


Yet another workaround is to not even use a web server (which I usually prefer anyway, at least on any of my internet-connected computers). Then, you can either set the SAXONC_HOME environment variable before you run PHP, or, you can set it from inside your PHP script using the PHP line above.

I made a couple scripts to make it easier to view PHP script output in your web browser without having to use a web server:

https://github.com/Apollia/Without-web-server-run-PHP-script-and-view-output-in-web-browser

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
The death of Star Trek actor Anton Yelchin was possibly a result of software-controlled car parts
Thursday, September 1st, 2016
12:14:21 GMT

Software

I was very saddened to find out today that the actor Anton Yelchin, who played Chekov in the recent Star Trek movies, died possibly because of the software-controlled "e-shift transmission" in his Jeep Grand Cherokee, which was involved in a recall. He was only 27.

So, I updated this blog post again:

The "Internet of Things" and "Pervasive Computing": Some of the Worst Ideas Ever


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
Link: Free eBook Giveaway from Hay House Publishing
Friday, August 26th, 2016
22:51:48 GMT

Books

I heard about this free (as in price) eBook giveaway from an e-newsletter from Hay House Publishing:

Free eBook Giveaway - Hay House

I particularly like the fact that the books are provided in a variety of formats. My favorite of the formats provided is EPUB format, which I can read in my web browser with the EPUBReader add-on for the Firefox web browser. (That add-on also works in the Pale Moon web browser, which I prefer over Firefox.)

Then, using the Stylish add-on for Firefox (or Pale Moon), I can easily change the text's color to anything I want, and give the text a dark background, which makes it far more pleasant for me to read.

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
Zippable pillow protectors: better than plastic bags for organizing things
Thursday, August 25th, 2016
11:54:46 GMT

Self-Help

For most of my life, I used plastic bags and cardboard boxes of various sizes (usually overly large, heavy, and difficult to move when full of junk) to "organize" things in a mostly inadequate, chaotic way.

But, recently, I finally thought of a great new innovation - putting things inside zippable pillow protectors. I prefer pillow protectors because ordinary pillowcases often don't have zippers. And sometimes ordinary pillowcases are so nice and soft you might be reluctant to use them for storage.

Compared to noisy, unsightly plastic shopping bags or garbage bags which easily get torn and often have no built-in way to completely close them - zippable pillow protectors are quieter, nicer to look at, easily closeable, and tend not to rip.


I don't have a closet, and I don't have space in my room for a clothes rack, so, now I keep different categories of clothes in different zippable pillow protectors, which makes them much easier to find than having them in numerous cardboard boxes or a giant mixed up pile.

I haven't yet thought of or found a good way to label them, but will update this post if I do.

(Addition, Sept. 22, 2016, 10:00 PM EDT. Using safety pins, I attach small rectangular papers labeled with the bag's contents. Each bag gets two labels - both near the middle of the zippered edge, on both the front and back of the bag. I should maybe use something a bit sturdier than plain paper, since plain paper might rip easily.)


It turns out both plastic bags and pillow protectors are bad for any non-rugged dressy types of shoes, since those can easily get crushed and creased. (I was always so oblivious to fashion that I didn't realize that until this year!) And I guess any clothes you don't want getting rumpled might be better off hanging somewhere instead of crammed into a bag.

But, for most of my clothes and my more rugged shoes, pillow protectors are perfectly fine. As for my more fragile shoes, I'll just stick those in small cardboard boxes.

I want to get a lot more zippable pillow protectors to hold many other categories of stuff, like plastic bags, boring junk mail I don't feel like going through yet, old receipts, other old papers I don't really care about but don't want to just throw away, and whatever else.

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
Oxalates and their interference with the absorption of nutrients
Sunday, August 14th, 2016
01:39:27 GMT

Health

(Here's my site's disclaimer again, since this blog post is about health-related topics, and I'm not a health care professional, just a layperson who sometimes takes an interest in health and nutrition.)


Since earlier this year or late last year, and also on occasion even as far back as 2006, I've sometimes had jaw aches, mostly on the right side. Fortunately, that has been scarcely bothersome at all compared to my headaches.

However, earlier this year, sometimes I mistook that jaw pain for possible toothaches in my top and bottom backmost right teeth - except usually the ache felt more spread out rather than localized to my teeth. (I was similarly confused by some sore spots on my gums which were quite probably from gum disease - but I think that's probably a problem separate from my jaw pain, since my gum issues mostly went away months ago thanks to Vitamin C.)

When I saw the dentist in February, I found out the only cavities I had were on the opposite side of my mouth, and they were all so small I didn't even need to be numbed to get them filled.

I almost couldn't believe there was nothing wrong with my right backmost top and bottom teeth. But, the pain wasn't consistent, and it seemed like drinking enough liquids and taking magnesium helped. (Taking magnesium, Vitamin C, and drinking more liquids were all ideas I found and tried on my own - none of those were suggested to me by the dentist.)


However, my jaw aches have been more of a problem lately, especially the past few weeks. Usually the effects of magnesium on me had been far more noticeable - in addition to seeming to probably reduce my jaw pain and rid me of some annoying twitches near my right eye, it made me feel calmer and better able to sleep, and it sometimes made me feel very tired if I took it anytime I wasn't well-rested.

But lately, I've been feeling like magnesium hasn't been working as well for me.

So, that made me wonder if somehow some new factor in my nutrition (or life) was making me extra deficient in magnesium.


A while back, when reading about chicory (one of the main ingredients in Teeccino, an excellent "herbal coffee"), I ran across this page which said chicory is high in oxalates and not recommended for people with arthritis or who are prone to kidney stones.

So, I started reading about oxalates, and found this page which quoted some unknown other source which said:

“oxalates strongly bind to minerals and vice versa (e.g., calcium, magnesium, zinc and potassium), and reduces the absorption of your minerals as they both come out via your urine.”

And the Antinutrient page on Wikipedia also mentions oxalates.


I also somehow ran across stuff related to Vitamin C and oxalates, such as this page, which says "vitamin C can be metabolized to oxalate".

That interested me because I had started taking two 500 mg Vitamin C's per day back in April, since it seems to tremendously help with my possible gum disease.

But, I think it wasn't until the past few weeks that magnesium started to seem significantly less effective for me.

Maybe some of my ailments are side effects of quitting caffeine. It's hard to judge since I didn't carefully log exactly what things happened when.


But, my current top theory is that maybe all the extra oxalates I've likely been getting lately from Teeccino and (to a lesser extent) from Vitamin C have maybe been interfering with my magnesium absorption.

Though I've also read that even just being extra stressed out can contribute to magnesium deficiency, and that could definitely also be a factor for me.

(Addition, Aug. 15, 2016, 5:08 AM EDT. This blog post I found describes a slow recovery from caffeine withdrawal which took up to 5 months! So, I now think it's very possible that caffeine withdrawal is a bigger factor in my ailments than I realized before.

Here's a blog post by me where I've been adding updates on my efforts to quit caffeine, or at least reduce how much I consume.)


Anyway, since Teeccino lacks caffeine and thus isn't addictive, it will be easy for me to experiment at some point with temporarily abstaining from Teeccino.

And also, now that I've sampled the majority of Teeccino flavors, I'll be less likely to drink more than one mugful per day. A lot of why I drank so much was simply to try all the new (to me) flavors as soon as possible.

But, I quite like Teeccino, so for now, I'd like to keep drinking it daily, and find a good way to adjust my diet to compensate for the possibly higher amounts of oxalates I've been consuming.


This aforementioned page says near the top that "High doses of vitamin B6 may decrease oxalate production".

So, perhaps having more Vitamin B6 might help me. For years, off and on, I have been taking Nature Made Stress B (which also contains Vitamin C and zinc). But I often have neglected to take it, since it tends to upset my stomach unless I eat something soon before (or soon after) taking it. I usually don't eat a large breakfast, so I can't just take Stress B first thing in my "morning" (or whatever equates to morning for me, due to my severe sleep issues).

I'll just have to do a better job of remembering to take Stress B after I eat enough food.


I already tried taking extra magnesium. A few weeks ago I started taking Nature Made magnesium citrate (except, unlike that page, my bottle just says "Softgels" instead of "Liquid Softgels").

I got magnesium citrate because I read in various places that some forms of magnesium are better-absorbed than others.

But I was surprised at how little effect magnesium citrate seemed to have on me compared to magnesium oxide. It's reputed to be better-absorbed than magnesium oxide, and (until lately), even just 1 Nature Made magnesium oxide seemed to have very noticeable effects on me, sometimes making me feel very tired about 2 hours after taking it (unless I'm well-rested enough that it just makes me feel more relaxed and calm).

However, I started taking magnesium citrate around the same time I started drinking Teeccino, so, maybe that's why the magnesium citrate seemingly doesn't have very noticeable effects on me.


I also tried extra Nature Made magnesium oxide. At times, it seemed to do surprisingly little for me - at one point, I tried taking 3 at once, and didn't feel much difference. Though at another point, I tried taking 2 at once, and a few hours later, it seemed to make me feel crappy (literally).

So, I think maybe I'd rather get extra magnesium from my diet instead of supplements, or at least just avoid taking more than 1 magnesium oxide at a time.

I've continued to take 1 serving of Nature Made magnesium citrate daily (in my "morning", usually). But, judging by my jaw aches, I suspect I need even more magnesium than that.


Perhaps another good approach might be to consume additional amounts of other nutrients that oxalates are reputed to interfere with the absorption of.

This page suggests consuming more calcium.


And this page says:

"When you're taking magnesium, you need to consider calcium, vitamin D3 and vitamin K2 as well, since these all work synergistically with one another. "

Unfortunately, judging by this other page, Vitamin K2 sounds like it might be a nutrient which might be hard to get directly in a purely vegetarian diet. (Reminds me of the difficulties with getting some forms of Omega 3 in purely vegetarian ways.)

However, this page points out various things suggesting that it might be possible for the body to convert Vitamin K1 into Vitamin K2.

I hope that's possible, since I'm pretty fond of kale (which has a lot of Vitamin K), and I could (and probably should) eat kale more frequently.

(Additions, Aug. 14/15, 9:41 PM/12:46 AM EDT. There seems to be conflicting info on the web about whether kale is high in oxalates or not. Here's a page that says it's low in oxalates. I tried to find the Harvard data that page referred to, and found something, though I don't know whether or not that's what that page was talking about. But the file "Oxalate Content of Foods.xls" says kale is low oxalate, with 2 mg of oxalates.)

I also am fond of gouda cheese, but it's kind of expensive, and I still feel guilty about not being 100% vegetarian.


I wish I could have figured out the perfect cure(s) for my various ailments before posting this. But, oh, well.

Magnesium not having such a strong effect on me as it used to was just such an unusual difference for me that it seemed worth investigating and writing about, even though I'm not a health care professional nor anyone else who is officially licensed to come up with theories about any of these topics.

As more details come to light, I might update this post in the future.

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑


   ▲ Top  ▼ Bottom  △ TOC   Up ↑
Link: "A Palace Was Unearthed Where Legend Places King Arthur's Birthplace"
Wednesday, August 10th, 2016
17:32:57 GMT

History

Found via the Smithsonian Magazine email newsletter:

A Palace Was Unearthed Where Legend Places King Arthur's Birthplace
(Aug. 5, 2016)

I always liked King Arthur stories, so, I thought this was cool.

   ▲ Top  ▼ Bottom  △ TOC   Up ↑


    Hide/Show: