June 2016 Camping

June 4, 2016 3:33 pm

Heather and I were supposed to go camping a couple of weeks ago.  I had made a campsite reservation back in May.  The weekend of our trip had cool and comfortable weather–and we were all sick with hand-foot-and-mouth disease.  So we had to reschedule.

I booked the same site for this weekend (June 3-4) and we had roasting 99F weather all week leading in to our trip.  We camped at Joseph Grant County Park in Santa Clara County at the base of Mount Hamilton.  Luckily, after we climbed up into the hills where the campground is, the temperature was at least 10 degrees cooler and there was good shade (I scouted out likely shady sites using Google Maps beforehand, shade is key).

IMG_20160603_185536as

We got to the site around 6:30 and got the tent all set up.  Not wanting to need to get a fire going to cook or eat something hot, I opted for Subway sandwiches for dinner.  We ate those and took a little walk up to an observation hill as the sun set.

After the sun set and things cooled down a bit we got the fire going to prepare for s’mores.  Heather was pretty fascinated by the concept of arranging the wood to allow oxygen flow to help the fire.  After a few false starts she was able to muster up the courage to add a couple of sticks after the fire was going.  She also tried roasting her own marshmallow; it caught on fire in about 5 seconds.

Heather particularly liked the way the fire made everything “look all glowy.”  Like this:

IMG_20160603_204514as IMG_20160603_205754as

Heather fell asleep around 10:15 (usual bedtime ~7:30) and I stayed up a bit longer to enjoy the quiet and let the fire die out.  Then she was up with the sun around 5:45am, declaring it “not night time anymore.”  So….we’re both a bit sleep-deprived today.

Breakfast was Fruity Dyno Bites (Heather requested a cereal breakfast and it’s hard to argue with simplicity).  This brought us to about 6:30am so I figured I would break camp while it was still cool and overcast as the forecast was for another hot day.

IMG_20160604_063934as

Due to really annoying flies, Heather asked if she could just sit in the car, so she did (somewhat surprisingly, I guess she was kind of tired).  I was taking the tent down and noticed a oddly worn-out spot on the floor underneath one of our sleeping pads (this tent floor is the same nylon material as the sides, not a tarp bottom).  I figured there must have been a pointy rock under the spot, but it actually felt like a little hollow space.  I thought it odd that a hollow spot would cause that much wear on the material.  Then I folded up the tent and saw the tent footprint underneath.  It had a hole clean through it (picture taken after getting home).

IMG_20160604_143954as

When I folded back the footprint there was a nasty looking creature lurking in a thumb-size hole under the spot!  A creature that apparently ate or tore a hole through the footprint and tried to get in the tent!  I didn’t get a good look at it though and, after moving the tent and footprint elsewhere, it was gone when I got back.  I think it may have been a wolf spider though:

DSC_0017bbGah!  I have no idea what we would have done if that thing had cut into our tent floor and started climbing around inside.  Might have had to just burn it all down and go home.

So, now I have to repair the tent and footprint.

Anyway, we got packed up and home around 9:00am.  Which was fine with me since it was only going to get hot and unpleasant out.  Our next camping adventure is scheduled in July.  We’re going to try Heather’s first multi-night camping trip.

Heather’s Dance Costume

May 25, 2016 2:54 pm

Heather missed picture day for her dance class due to our family’s bout with hand-foot-and-mouth disease.

Today was a dress rehearsal, so she got all dolled up again.  So I set up my equipment to try and get at least one or two decent pictures of her in her costume.  Our kitchen, unfortunately, is just not quite large enough for me to use my 50mm lens effectively, but I got some okay pictures:

IMGP5041bas IMGP5046as IMGP5052bas

Corinne wanted to be part of the excitement as well.  She looks like an anime character.

IMGP5059as

Improving E-books

April 20, 2016 9:23 am

One of the things I really like about eReaders is the built in dictionary.  Unfortunately, they aren’t always comprehensive and, of course, fail when an author is making up new words.

So I came up with an improvement: eBooks should bundle a book-specific dictionary that can be merged with the standard dictionary while reading that book.  This allows books to provide specific definitions of uncommon words and new words.

I’m re-reading The Lord of the Rings right now and Tolkien uses a lot of obscure and archaic words that are real (but which my eReader’s dictionary doesn’t know) and he also has a million made up words in Elvish, Dwarvish, Entish, “common tongue,” etc.  It would be helpful to be able to look those up as well.

So…Amazon, go make it happen.

Improving OwnCloud Throughput

April 1, 2016 10:22 pm

I have an instance of OwnCloud running from a machine at home that provides file-syncing services for family members.  The OwnCloud data is then encrypted and sent on to CrashPlan for backups.

I recently pointed 1.3 TB of data to sync into OwnCloud.  These are old home videos in raw format with files sized up to 25 GB.  The upload speed was atrocious.  The server is connected to my desktop on a gigabit switch and transfer speeds were topping out at 2.0 MB/s.

Most of the issues people have with poor OwnCloud performance are when uploading many small files which is not my scenario.  But I followed whatever advice I could find.  I modified MariaDB settings and used MySqlTuner to find potential performance gains, which helped a little.  I finally found the backported php-apc package I needed for Ubuntu 14.04 to provide php caching, which helped a little.  But I was still only up to ~4.5 MB/s.

Then I considered my larger system.  The server is on my local gigabit switch, but my desktop is configured using its public domain name, which resolves to my public IP address.  This mean every request from my desktop wasn’t just going through the gigabit switch and in to the server.  Instead every request was going through the switch to the router, being NAT-translated, back to the switch, and then to the server.  Due to an issue with my high-performance EdgeRouter Lite, I’ve been using my old WRT54GL as my router.  And that old thing simply can’t handle the load.  It’s CPU was maxed out and network throughput was abysmal.

Since I wanted to bypass the router and go directly from desktop, to switch, to server I made an entry in my /etc/hosts file to tell my machine to use the server’s internal IP address instead of the public IP address associated with the domain name.  The CPU load on the router is now gone and the OwnCloud throughput increased to ~11 MB/s.  Still pretty awful compared to the ~60 MB/s I get using scp, but substantially better than 2 MB/s.

That speed increase was going strong for a while, but after about 20 minutes it slowed back down to ~4.5 MB/s again.  The router, however, is no longer in the loop, so at least I’ve removed one potential bottleneck.

I have no idea what the bottleneck is now except for OwnCloud just being abysmally slow.  The server is using a fair bit of CPU, but it’s not quite maxed out (usually showing 20% idle overall on a 4-core machine).  IO doesn’t seem to be the bottleneck, iotop doesn’t show anything being held up.  There’s 2 GB of free RAM available, so that doesn’t seem to be the issue.

I’m running OwnCloud using Apache with mod-php; but I didn’t see anything suggesting that running PHP using fcgi or fastcgi would be better.  Using nginx instead of Apache might be better, but I have no experience configuring nginx so it wouldn’t be a short little project to try it.

If anyone has any suggestions on how to get OwnCloud to perform better (particularly when syncing very large files) when connecting over a gigabit local network I’d love to hear them.

Update 4/17/2016

The slowdown from 10MB/s seems to have been the accumulation process running over large files.  Files are transferred in small chunks.  Once all the chunks have been uploaded, the chunks are accumulated and the original file is reconstituted.  During this time the upload speed drops dramatically.

I had a terminal case where a known memory leak in the accumulation process kept causing the reconstitution to fail.  Since the chunks are deleted as they’re used during accumulation, the client would then re-upload all the deleted chunks, then the accumulation process would run, fail, and we’d go round and round.  This made it look like performance was worse than it truly was (though not uploading files is sort of a bad thing for a file sync tool to do).

In and attempt to get my files finished without waiting until the memory leak fix is released I split some files to be smaller so the accumulation process doesn’t leak as much memory.  I also set a rather absurd 4GB memory limit on the PHP process hoping that will be enough to get it through the large files without failing.

Setting aside the accumulation/reconstitution process, I’m getting a consistent 10MB/s transfer on a 100Mbit switch.  I had to RMA the gigabit switch because it began misbehaving.  I’m hopeful that when the replacement arrives my throughput will increase beyond 10MB/s since that’s about the limit of the 100Mbit switch and the gigabit switch wasn’t working properly.

Update 4/19/2016

My replacement gigabit switch is in and the transfer rate has gone up to ~19MB/s at times (when no accumulation/reconstitution work is occurring).  There is still plenty of room for improvement, but at least I’m not stuck at 2MB/s anymore.