A different set of eyes

TL;DR – this post ends up going almost nowhere.  Lots of politics-related things. If nothing else,  read the last 2 paragraphs.

This morning I was listening to Grey and Haran chat about Brexit.  The point Grey brought up was that while the politicians may not be enthusiastic about the decision of the people, the people definitely voted for exit.  And Brady brought up that it seemed like the stayers had a low opinion of the exiter’s apparent intelligence, and that may not be .. respectful.

Then, I listen to the RNC convention.  And.. channeling Brady’s accent – “I must say, I do not think I am the target audience for that convention”.  But, the point remains.  All these people who do resonate with that message – how can I love on them? how can I respect them?

So, let me word a picture.   Its a very hazy picture, mind you.  I’m trying to lob idea-smoke-bombs over a large distance, not use a sniper-rifle here.   I’m trying to work my way to a place where I can love everybody and respect everybody.

Frogs, pools.  That didn’t work, I couldn’t capture resource acquisition well.

Setup 1.

  • I think the world has grown closer together via technology and travel.
  • I think the many interactions this has brought, has made life much more complex.
  • I think that due to {reason A to be discussed later}, life has become hard.
  • I think that there are some people of a bent of:  “excitement”, faith in humanity, “yes I want to let it all in and find a way to make it work”.
  • I think there are other people who this scares the tim-tams out of them.

Question Stop 1.

  • Is it right that we INSIST on integrating everything, finding a way through this mess, and NOT address the fear of the folks who are scared tim-tam-less?
  • Is it even possible to go back to the previous world, with less interactions?
  • Is it possible to at least not welcome the interactions?

Setup 2.

  • Conjecture, {Reason A} is, in all the new opportunity that the more integrated world has presented, or perhaps by some other mechanism, wealth has polarized (the 99% thing).
  • Conjecture, that there are people/entities whose desire/goal is continued acquisition of power, wealth, ownership, control (? this is shaken up below)
  • Conjecture, it is very useful for said people/entities to have a scared population, one that is not seeking smooth integration of the world.  Thus, they focus on a set of fears of that population, as well as reinforce “and here’s how you can live your life in safety”.

Question Stop 2.

  • Is it possible that the conjectured entities/people mentioned in Setup 2, might be altruistic?  They truly believe that a less-integrated world is possible and desirable, where strong borders are the way to go, and that truly is better?

This is where my bias definitely comes in.  My bias says no.  They can’t be that naïve.    I have not found one of these people to talk to directly, honestly, and so I have no way of working my way out of that bias.

Level Set What I think is happening.

Camp 1:

  • The world is a dynamic crazy place
  • We are but one entity in a sea of other entities, but we have lots of leverage
  • Do our part in the world, as part of the world.
  • our system:
    • Try to get faulty parts of our system up to snuff to match the existing working systems in the world.
    • our system mostly works, just need to leverage/use it more
  • Make room for all at the table.
  • Our culture is in need of updating to handle the new world.
  • No God statements are necessary.

Camp 2:

  • The world is a really crazy unsafe place
  • We are a strong entity and can withstand the world, but stop making it easy for them to attack us.
  • We need to protect our stance, remove our direct enemies and obstacles, and thrive.
  • Make sure we have enough to eat.
  • Our culture is proven, strong, and works.
  • Don’t change shit that ain’t broke.
  • Trust that God will take care of us against them.

Where the Heck am I going with this

Every time I try to approach Camp 2, to really feel it, to be a part of it, I get stalled.  I can’t do it.   I’ve been exposed to too many people, my world is too big, my world is too complicated, to fit back into Camp 2.

If I try to totally be in Camp 1, I get to a place where its hopeful- and sounds good, but ends up impractical and hopelessly complicated and lots of compromises and.. basically what happens when a person tries to do stuff without spirit involved.   And then shit goes bad, and when shit goes bad, Camp 2 really sounds better.

As best as I can, maybe I can marry them, but adding my own opinions to the mix:

  • The world is a crazy dynamic place, full of clashing cultures, opinions, and also dangers.
    • Staying better half of average of the world does not have to involve pushing somebody else down.
    • But we do need boundaries on what we’re willing to give and what we’re not, and what we’re willing to accept.
    • If we have it and can give it safely, then give it.
    • But don’t ignore self, expense self, in favor of others.
  • There are many entities in the world
    • Some of them don’t like this new world at all, and would rather we didn’t exist because it makes their lives better.
    • Some are just trying to make themselves better.  If we can, we can help them.

Then, I start to run into opposites that don’t seem to be marry-able.

Take for example:

  • Is the old way of doing things (“Safe Again”, “Great Again”) even feasible?
  • I am reminded of a pack of dogs, and the biggest, meanest dog, is the leader.
    • Is that who we want to be?
    • Is it genetics, biology, the way it is, that there has to be a few big mean dogs, and if we’re not one of them, we’re bantha-fuddu?
    • Is it a myth that we can all get along peacefully without warring?
    • What is human- or animal- nature?
    • What is Spirit-nature?

So it seems the practical human- or animal- nature thing would be, to be the biggest dog and be secure.  Yet it seems the spirit-nature thing would be to transcend that, and love thy neighbor, love thy enemy, etc.

Another example.

  • Do we have enough to eat?
  • Not the best question.  we do have enough food, but maybe more like, do we earn livable wages?
    • I earn a livable wage, I think, but I’m lucky.
    • I’m watching my kid try to earn a livable wage, and its very hard.  If he didn’t have previous-generation-assistance, he could not make ends meet, not without extreme cost-sharing (lots of roommates), two jobs, etc.
    • What the heck is going on here?
    • I suspect there’s a zone of wealth-distribution that works well for most.  If you go too polarized, it doesn’t work so well. Ref: The Spirit Level
      • However, historically, much-more-polarized wealth distribution was norm. Think Downton Abbey.   And how did that de-polarize?
      • “Modern Society” is a very young experiment, relatively speaking.  Middle-Class, etc.
      • It might be that as modern society fails, several folks are basically saying “f-ck it, i’m going to win, I don’t care who it hurts”.
      • Or it might be a correcting pendulum.  From polarized- to distributed, and then the human urge/need to polarize comes back, and it swings back to polarized, and eventually it will swing back again.  maybe.
  • Which camp?
    • I think I’m in the “things are broke inside and they need intervention to fix” camp.
    • Not the “trust the system, its fine” camp.  Its clearly not fine.

The “God” one.

  • This one irks me. For “Our God” to protect us against “Them”, that means that “Our God” is against “Them”?
  • I can NOT draw a circle to exclude them.   They are Spirit’s children too.
  • It really PISSES me off, to see {politicians/marketeers/people-programmers} manipulate people by manipulating concepts related to God/Spirit.

I don’t know where I’m going with this.

  • I’m sad in that I perceive people being taken advantage of, programmed.
  • I’m sad in that the human condition seems to lend itself to a focus on scarcity and survival-of-the-fittest.  (I’m not that fit)
  • I’m glad that there are others who seem to see the same issues as I do.  Sadly, I don’t think any are left represented in this current race.

Yeah, I don’t know diddly.

Good luck, world, I’m going to go nap now.  I hope we survive.

 

PS: If T does win, I think it’ll be okay.  I think he’s very good at understanding people and manipulating things for a particular benefit.  And I think that if he can make himself look good on the world stage, that will actually be just fine for the United States.   And, it will give those folks in the states who are scared, a sense of relief.  Perhaps the relief will be real, and us high-browed intellectuals will get to learn something, or the relief will be quickly broken, and the folks who thought that was a way to get relief will learn something.  Either way, somebody learns something.   And all the stuff that he’s said he’ll do .. build a wall, lock her down, etc – I suspect a lot of that will be just like UKIP when they won the vote — Oh, no, I didn’t say that, that’s not what I meant, it was misrepresented, etc.  Won’t be that radical.  Don’t buy the marketing message folks, its not reality.

PS: If C does win, I have no clue. I don’t have a feel for her.  Whatever marketing campaign it is she’s running, it falls flat on me.  No spirit involved.  I trust that she’s relatively effective at the jobs given to her, she has no fear of taking on a job to big (and doing the best possible at it)

PS: I miss B.   And I will miss O.  I’ve watched the heck out of him, and he’s been very consistent.  And all the hatred that’s levelled at him – I can see the marketing roots of messages planted.   I hope O sticks around on the world stage, the world needs him. However, he’s definitely a Camp-1 person, with little regard for those who need Camp-2.

Idea! Camp 3.

  • The world is a crazy, dynamic place, as Spirit intended.
  • We have grown into the world faster than we were ready to, and we’re lost and hurting and grabbing for whatever we can and consuming whatever we can in a daze.
  • Universe/Spirit has a plan, and that plan does not end in hatred and death, but rather in love and creativity and productivity.
    • Spirit, please guide us in stepping back our outward concerns, to take care of inner ones.
    • Spirit, please guide us in loving one another.
    • Spirit, please guide us in calming those who are hysterically afraid.
    • Spirit, please guide us in tough love – letting those who are not walking in spirit, have the consequences of their actions, not enabling them.
    • Spirit, please guide us in letting go our consumption-at-the-expense-of-all.

Good enough, that’s positive in my book.  I’ll wrap it up now.

PPS: 12 Traditions as applied to countries?  just sayin’.

 

 

 

 

 

 

 

 

Balance, Money, Nutrition, Time

Level setting self.

Nutrition

I got tired of looking at the top half of my stomach.     So, for this week at least:

  • I had my wife change my Facebook password.  BOOM instant 2.5-5 hours of life available.
    • Although, perhaps not.  Might be substituting it with reading twitter and http://Louisville.io slack.
  • I’m trying to stay away from Youtube, with the self-promise of “I’ll look at it on Friday”.   Probably another 4 hours a week.
  • Trying to get a walk in with the dog whenever possible.   2 so far, about 2.2 miles each.   Maybe a little jogging.
    • I was able to jog 1 mile at 145HR, about 13mins/mile, slightly downhill, yesterday.
  • Changing nutrition routines (one day so far, going on day two):
    • Day-start = water + bulletproof coffee, to avoid insulin spike, stay in (overnight) fat-burning longer.
    • When hunger re-hits, then a semi-healthy protein shake (made with some milk, so the carbs start to come in at this point).   This seems to be about 11am.
    • “Normal” food after that, when the hunger hits, seems to be about 2pm.
    • Any time I order something, try to split it in two / make two meals of it.    Eat the other one later.   Even if its 2-3 hours later.
  • I am not capturing nutrition info (yet).    Too much time load.
  • I have a standing swim-time with my father-in-law on Wednesdays.
    • I’m hoping to double that up with some Gym time on Wednesday mornings.
    • Ie, light-work-day, more self-care-day, in the middle of the week.

Money

I just went from trial- to paid- on http://YouNeedABudget.com.   It took some getting used to, but.. it works well (for me).  And, it has spouse-approval (to a certain extent), and spouse-involvement (the best part).    There are some things I wish:

  • I wish it could do budgets over 2 week periods.
  • I wish i could select a proposed transaction, a imported bank transaction, and say: “Hey you these were the same thing”.  It doesn’t match them unless they’re exact.
  • I wish i could trigger the bank import from the mobile app.

That’s it.  Otherwise, its a nice, FAST, friction-free environment to get .. not a handle.. but a balloon, on spending.  Its like Dave Ramsey’s cash envelopes, except digital.

Thanks to @waywardmage for the infectious enthusiasm.

Client Distribution

I once again find myself in the position where I have two clients for whom to do work.  In order to keep focus-ability, I’m forcing myself to reserve time for them ahead of time – like, “next week Tuesday i’ll devote to Client 1”.  This removes the anxiety of “am I doing the right thing” (as I do not have somebody above me, i have to be self-sufficient in context switching and priority setting).    Today is a beautiful day of coding for Client 1 (for the morning, with a clear priority list of tasks), and then some meetings, and then some Client 2 in the afternoon (new project, discovery / design phase, exciting stuff).

Of course if things are on fire, then things are on fire and that’s different.

House Things

  • We just got our garage cleaned out and organized!    YES!
  • Next up is a bathroom upstairs that needs re-done.  Or, there’s several rooms that need painting.
  • There’s a video security system that I need to take down, to give to my son, who would want it more than me.
  • I’m planning on devoting 3 evenings a week to house stuff for the month of August.

 Pet Projects / Folders

Derek Sivers (good egg) has a post that makes sense to me:  Possible Futures.

So, i have folders for the following projects, in terms of approximate sparkly- order:

  • A series of blog entries on testing.  I know a lot about testing, seems like more than most developers, and perhaps I should share it, and maybe cross-ref it against current testing literature out there, and maybe learn something.
  • Some day.. some day.. i’ll convert my car tracks into a nice 3-D sculpture.   I think about this when I commute.  I have a choice of about 4 routes, all of which seem about even.
  • I need to get rid of my 3D printer and supplies.   Psychic weight.  Anybody want them?  Needs a bit of work, i have all the replacement parts.
  • I want to get more Phillips Hue lights and set them up, however, not-wife-approved at the moment.
  • Get my twit-sort.com back online.   I miss it.
  • Tweak my space-game code.  I would love to get it to navigate from one space port to another, with gravity enabled, and possibly a little autopilot.

These projects have fallen off the shelf, and probably won’t get put back on.

  • Front camera for my prius.
  • Will I ever play more Elite Dangerous?
  • Will I ever play more American Truck Simulator?

So, if you don’t hear much from me on this blog, well, that’s what I’m up to.    I tend to write blog articles when a) my life slows down, or b) my life is so fast that I need to level-set myself by writing about it.   This one is part of the latter.

 

 

 

 

Latest Round of Harvesting Car-Tracks

image

In the past, I used Android – Torque, and an upload to Dropbox, to gather car-tracks.

I’ve started up that project again – this post focuses on my solution for gathering car-tracks for later processing.

 

imageAndroid-Tablet-Always-On

I got a Samsung Galaxy Note Tablet used, and I’ve stuck it in the glove compartment of my car.  Its plugged in to power, but power only runs when the car is turned on.  Click on image to zoom.

I use automate-it to run a few rules:

  • When power goes off, go into airplane mode.
  • When power comes on, turn off airplane mode, and start MyCarTracks

This seems to work as long as I drive a good amount each day. Then again, when I went to write this blog post, I found the tablet powered completely off – not enough charging?  temperamental battery?   Looks like not enough charging is the culprit.

It would be awesome to completely shut down the tablet when power is lost, and then power on when power is applied; however, I’d have to jailbreak to get that, and my 15 minutes at attempting to jailbreak, didn’t work, so, meh. 

MyCarTracks

imageI could totally get by with the free version of MyCarTracks.  Its an excellent product!  It has these features which I use:

  • Auto-record car tracks – after you reach 6 miles per hour
  • Auto-stop recording car tracks – when still for 5 minutes.

I can then get access to my tracks via an “Export All” feature, which will let me export to CSV, GPX, or KML.  GPX is the winner for me:

<?xml version=”1.0″ encoding=”ISO-8859-1″
standalone=”yes”?>
<?xml-stylesheet type=”text/xsl” href=”details.xsl”?>
<gpx
version=”1.0″
creator=”MyCarTracks”
xmlns:xsi=”
http://www.w3.org/2001/XMLSchema-instance”
xmlns=”http://www.topografix.com/GPX/1/0″
xmlns:topografix=”http://www.topografix.com/GPX/Private/TopoGrafix/0/1″ xsi:schemaLocation=”http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.topografix.com/GPX/Private/TopoGrafix/0/1 http://www.topografix.com/GPX/Private/TopoGrafix/0/1/topografix.xsd”>
<trk>
<name><![CDATA[2015-04-15 19:52]]></name>
<desc><![CDATA[]]></desc>
<number>29</number>
<topografix:color>c0c0c0</topografix:color>
<trkseg>
<trkpt lat=”38.242019″ lon=”-85.72378″>
<ele>132.89999389648438</ele>
<time>2015-04-15T23:52:25Z</time>
</trkpt>
<trkpt lat=”38.241821″ lon=”-85.723613″>
<ele>131.89999389648438</ele>
<time>2015-04-15T23:52:29Z</time>
</trkpt>
<trkpt lat=”38.241649″ lon=”-85.723491″>
<ele>129.1999969482422</ele>
<time>2015-04-15T23:52:32Z</time>
</trkpt>

MyCarTracks.Com

But Wait There’s More!

imageI went ahead and paid them $16 for a 1-year service for a small fleet, which gives me access to my tracks online (up to 2 years old) for quick viewing.   In order to make this happen, I sometimes hook up the tablet to my WIFI and say “synchronize all”.  There’s also an option where I can say “sync between 2 and 3 in the morning”, and I configure automate-it to take airplane mode off from 2-3, however, that’s hit or miss.

Once the tracks are loaded up to MyCarTracks.Com, I can browse them on a pretty nice map.  (picture at the top of the post).

What’s Next

My intention is to load these GPX’s into a small sql-server database, using Spatial (Points), and then come up with little data sets of “here’s all the tracks that passed through these two points”, etc.

I then want to take those tracks and convert them to a 3-D rendering with Z-axis = time, to compare various paths with each other.   

And I want to convert that into a 3-D sculpture.   Because, art.   My art.   Representation, archival – these I love.

But, one thing at a time.  I’m always welcome to shelf my projects; I only work on them when they are attracting my soul.  Might be a bit before I get there.  I do have a start on the gpx-parsing code, though: https://github.com/sunnywiz/cartracks2016

SqlServer on a Ram Drive: Fast or Not?

TL;DR:  Don’t bother, its not.

I’m at it again .. writing what I call integration tests, which are effectively database-friendly-data-setup-and-teardown tests.  As can be imagined, its definitely much slower than unit testing; however, I love doing it, and there’s a lot of sprocs and other stuff that its really nice to get some tests around. (most of the bugs that led to this investment in time, were in the sprocs).

Since I had the RAM available.. decided to try to have SQLSERVER (Developer Edition) run against databases that were stored in RAM.  How does that compare?

The database is about 4G in size.

SqlServer Developer, 10G RAM Drive, In a VM , Tests run by R#

image

SqlServer Developer, using MDF files against C: in a VM; VM is on SSD; R#

image

SqlServer Enterprise on VM in Azure (network lag); R#

image

One test failure was because this server’s copy of the invoice database was not complete; and the test was set to be readonly against this server (local sqlexpress = much happier about dropping and re-inserting records).

I could not ping all the way to the database server, but Client Statistics would indicate a ping of probably 150ms?

image

SqlServer Enterprise at client location via VPN; R#

image

This is definitely faster than our azure-hosted SQL – Looking at ping, says it’s a 50ms round trip.

Pinging taacasql01.triaa.local [10.120.0.10] with 32 bytes of data:
Reply from 10.120.0.10: bytes=32 time=50ms TTL=127
Reply from 10.120.0.10: bytes=32 time=44ms TTL=127
Reply from 10.120.0.10: bytes=32 time=45ms TTL=127
Reply from 10.120.0.10: bytes=32 time=45ms TTL=127

SqlServer Enterprise local network (client site); Teamcity

image

This is almost on-par with local SqlServer.  However, I don’t know if the machines are faster.

Summary

Ram-Disk Sql-Server didn’t help.  Or maybe its that, even on a regular hard drive, it was able to load everything into RAM, and got quite fast.

Local Sqlserver vs LAN SqlServer were close enough; I’d use one as a substitute for “how would it perform” on the other.   Helps that the customer is (probably) running both VM’s on a Hypervisor, and network communication between the two machines is … superfast.

WAN SqlServer was definitely the dumps; however, that’s good for posing artificial limits on ourselves, to make sure we’re not doing too many round trips, etc.   Nevertheless, our main cloud sql server is slower than a VPN into our client; that doesn’t seem right. Or, our client is that awesome.  It could be the latter. 

Not shown above, but if you drill in to some of the tests, you can see the cost of setting up an Entity Framework context the first time.  It seemed to take about 8 seconds against my local server.  Once set up, subsequent tests were less than a second each.   However, the set-up would happen again for every other test fixture – apparently whatever its doing to cache things, got dropped between fixtures.  Possible optimization, hang onto it in a static?  *food for thought*

Methodology Notes:

I ran each full suite twice.  Sometimes three times, till I got what seemed to be a stable number.

I used SoftPerfect for the RAM disk.  Its set to sync ramdisk to disk every hour or so.  After seeing that it didn’t really improve things, I deleted it.

image

I drank 3 glasses of Tea, 1 Spicy Hot V8, and ate 3 pieces of chocolate, and 1 cream cheese snack, while running all these tests. 

Amazing DIY Backup Camera Lines with Turn-Indicators v2.0

16aarnI’ve had two coworkers exclaim that this was an awesome idea, so I figure that makes it blog-worthy..   See if I can get an animated gif of this going ..  eh, not that good, but I’ll leave it.

 

How did I do it?

Step 0.1.  Acquire tablet screen protectors.  Beautiful Wifeling, who loves hunting for stuff, found them at a dollar store.

Step 0.7. Apply tablet screen protector to backup camera screen. This involved some scissor work.    Be amazed at how the polarization is just a little different, when seen through polarized glasses.

image

Step 1.   Find empty abandoned parking lot.  Where the parking lines all line up.  In my case, its at my work-building.

Step 1.1  Acquire dry erase markers and sharpie. 

Step 2.  Get the Backup Lines figured out. Line up the car with the wheels touching one line evenly, and then trace onto the screen protector with the dry erase marker.  Note that due to lens configuration its not a straight line, its slightly curved.  If you’re really good, you could probably lift a fingerprint from this image.

imageimage 

Step 3.  Get the hard turn lines figured out

image

  • Start out parked in a parking spot. 
  • Pull out, avoiding hitting the imaginary parked cars next to you, and turning the wheel as far as possible when possible, till you’re in the street and lined up.
  • Trace the outline of the parking spot with dry erase marker.
  • Test it out by trying to back into the spot.  You may have to adjust.
  • Once you’re sure, then go over it with a sharpie.

Step 4.  Profit

I have earned at least 27 self-credits at the good reverse parking jobs I’ve done.  Go me.  I’ll spend them on some ice cream.

Strength Progress

Very quickly –  don’t have time to make this too pretty..

image

This is an overlay of two charts.  

The blue dots comes from a mousotron log.

image

image

Import to excel, Fixed width

image

Formulas (click to zoom) – Hint: Don’t reset the counter, its easier if you don’t.  

image

The lines come from measuring my strength using two household items.

image

I do a full-hand test, I do a per-finger test averaged; and I do that for both left and right hands. 

The set of lines along the top = Left hand, my good hand.

The set of lines along the bottom = Right hand, my recovering hand.

Summary

I think what I’m seeing is, I had a nice bit of recovery, and then I started using my hand more, and so my recovery has slowed down, but its still recovering.

Backup Strategy Revisited: v2016.05

A while ago I wrote about using crashplan as my backup strategy.  That didn’t last long.  Crashplan (free) eventually stopped syncing.  I did not have time to look into it.

Then I listened to Mac Power Users Episode MPU318: Backing Up and I got re-inspired to pick up the gauntlet again.

I recently re-acquired my desktop machine at home (it had become my wife’s in an emergency move when her machine started BSOD’ing), and I decided to try Yet.Another.Backup.Solution; this time going back to what some readers had suggested (see comment section here), using BitTorrent Sync.

So far so good

image

(click image for larger view)

  • I keep all active (personal) code bases in their own folder, c:\code,which rely on github, visual studio code, beanstalk, etc – various source code repositories – for their backups.
  • I keep a Dropbox folder somewhere on all my machines.  Dropbox is my main “My Documents” folder, for ad hoc type stuff.   But, it does not get stuff related to a project involving media – for example, a video edit from my GoPro.   That’s too large for it.
    • I chose dropbox because I used them first, and I’ve stuck with them so far.  I believe I’m at 7.5G, free.  There are other services that provide similar…
    • I do an occasional 1-way copy from dropbox to a spot in my big share.  Just in case.
  • I set up a Windows Storage Space on my big home machine, across the top three drives from my former home server – 2TB, 1.5TB, and 1TB … which combined give me a 2TB 2-way-mirrored array.  Any one drive dies, no problem. 
  • I set up BitTorrrentSync Pro (paid) ($40 personal one time) to set up a personal cloud:
    • 1.2TB of data between my home storage space and an external hard drive hooked up to my work computer, over the internet.
    • Several per-year folders (2016, 2015, 2014, etc) that are much smaller that live on every machine I am productive with.  (my convention is /yyyy/projectName for any given project, copy-forward if it goes between years).  
      • I’m doing a lot less video work now, so the sizes are quite manageable.  2014 was the peak, that was 283G.  That’s been pruned down and put in the big sync now.   Most I’m doing for a year now is 15G, because of a GoPro video.
    • If I have a project that exceeds the size of one of the laptop drives, I’ll probably break it down into its own little BTSYNC cloud (“2016ProjectName”) and share that amongst the machines that care.
  • I’m still relying on Dropbox for my phone photo backup, although I am doing a iCloud backup as well.

I am currently not backing up my mom’s computers, because she has 4(!) of her own, with Dropbox set up to keep track of important stuff.    Go mom!  (I need to check on that soon, verify health).

On Seeding Large BtSync Share

  • I started out with a single copy of my files.   USBHD1:\SHARE
  • Copied them all onto USBHD2:\SHARE
  • Walked USBHD2 to the office, bypassing the internet.
  • Set up a BitTorrentSync folder on USBHD1:\BTSYNC1 (initially empty)
  • Sync that to USBHD2:\BTSYNC1 (initially empty)
  • At home, copy USBHD1:\SHARE to USBHD1:\BTSYNC1 – 5 years!!!! (usb 2.0 is not great for disk speed)
  • image
  • At work, copy USBHD2:\SHARE to USBHD2:\BTSYNC1
  • Within 24 hours everything was synced.
  • I compared files against the original shares and there were no problems

Now that I’m more familiar with it, I could have just told the work computer, “really, use THIS folder to receive the files, yes, I know it already has stuff in it”, and it would have worked fine. 

Moving the data from the  USBHD to the StorageSpace was easy: 

  1. Copy the data
  2. Stop BtSync
  3. Unplug the Ext Hd
  4. Start BtSync
  5. Tell BtSync where to find the files again.
  6. Profit.

What Did Not Work Well For Me With BtSync

Using my iPhone to browse my big share Nope, it tried to download the big share to my phone (in selective sync mode) (which does one place holder file for every file) (too many files!)

Selective Sync in general – I did not like the idea of placeholder files.   I’d rather have placeholder directories. 

In Conclusion

So.. there you have it.    I have my mirrored local, I have at least 1 offsite backup, several protocols, and an offline backup in case of ransomware.

We’ll see if its still working fine a month or two from now.

Blog Neglected; Adventures

Hey folks;  I’ve had to neglect my blog lately – with my RSI, I’ve been saving keystrokes for work.

image

imageThe above was put together via code2flow.com – source in smaller thumbnail picture (click to zoom in).  I’m really enjoying them for putting together small diagrams.

While I’ve been out, I’ve had some adventures.  A Summary of Adventuring:

Adventure: Macbook

I inherited my wife’s 2008 Macbook; upgraded it to max ram and an SSD, and wow that’s a cool machine.  I would definitely use a Macbook as my main driver in the future.  I even liked the O/S; it made sense once I learned how to think like it.   I did have to install VMware Fusion to do some of my work-necessary stuff though.  (Macbook has been wiped and returned to wife in exchange for desktop computer)

I did get to learn about installing OS/X El Capitan, and rescue boot disks, and Option-R, and several other things that help me be much more comfortable around a Mac.

I’m also glad that the maximize icon on a mac, now actually goes fullscreen in most apps, instead of the full-vertical crippled thing that it used to do.

Adventure: Upgrading the rest of my laptops

Success with the Macbook lead to me looking at all the hardware I have.   Alas – most of it is max spec. 

One machine I could up to a 64GSSD, so I did .. it can go from 4G to 8G ram, but we’re using it as a conference room machine, so no bit deal there.  Most anybody does with it is browse the web and remote to another machine.

Another machine, I just need to pitch.  Something is wrong with it.  BSOD’s and stuff during installs, did not run ubuntu!  Craziness.

My main work laptop, at Windows 10, is unstable; needs to go back to Windows 7.  Samsung Series 7 Chronos.  Takes 3-4 minutes to boot.  I’ve tried the solutions that people mention, but no luck so far.

Adventure: Offsite Backup

With my desktop back, I’m revisiting using bittorrent sync to set up an offsite backup of my terabyte-size store of stuff.   ETA: 13 days to sync at the moment, but I have it throttled; will unthrottle overnight.  

Adventure: Adapting to RSI recovery

This includes Dragon Naturally Speaking, as well as some home-brew methods of strength testing.  I have a chart.  Will post later when chart grows more.

Adventure: Giving a Talk

I gave a 10? 11? minute lightning talk on my RSI discoveries.  Link to event, which has a link to the slideshare –  http://www.meetup.com/Louisville-DotNet/events/228974003/

That’s it for now.   There are so many cool threads going on, but none of them is developed enough to do a good post about it.    More later.

My Right Forearm is Toast

image

I am writing this blog post mostly using a microphone.

I think I’ll try to do this in one shot, clean it up later but keep the original version around, so that the blemishes and problems with voice dictation can be seen.This is not a good sample though, because I am not using a headset: my Turtle Beach microphone has a TRS connector and the Samsung Surface doesn’t have that input.

I am having difficulty using my right hand (lateral epicondylitis) and in an effort to heal I am choosing not to use it for at least 3 weeks. This has led to several discoveries:

Taking things for granted Discoveries:

There are several things built into the muscle memory of my right hand.  For example in Visual Studio, Intellisense.  When a suggestion shows, to choose it is apparently down arrow enter, but when my left hand tried, it tried pressing enter and did not know about the down arrow involved.

I discovered that my brain would output code at the same speed that my hands could put it in. (Perhaps my brain puts it out faster than my hands can put it in and that is why I am having a problem). Now down to typing with one hand, I simply cannot keep up! I get frustrated, and the thoughts that were in my brain disappear leaving me wondering what I was typing.

I have to reevaluate how I am going to be effective at coding over the next few weeks.

Directions and Challenges

I am going to see a doctor whom I trust and see where she thinks I should go. I am hoping that rest will let my body self heal, but if there are major tears in the tendon etc that might need a different level of attention. I am very reluctant to go there. I have heard that once you invade, complications arise.  Bottom line: I need diagnostic stuff, x-ray or something, to determine what the state of things are under the skin.

I have been trying to find resources online that state exactly what the mechanism is for ice and compression leading to healing. I see a lot of sources that indicate that inflammation in the body’s attempt to recover in which case how can I get more inflammation? 🙂 (A: Graston Method is one.)

I have another problem as well: by using my left hand more now, it too is in danger of burning out.  Friday I think my active left arm hurt more than my slinged right arm.

I have watched videos of people using various speech synthesis program to do programming. my reaction was: OMG that is so slow! I am hoping that if I do something like draw onto paper first and get the code out quickly, then I will be able to take my time typing it into the computer in a relaxed and optimal way. I wonder if I could hook up a midi keyboard to something that types in code for me.  lots and lots of macros.

Something very nice about my current employer colon he has had to go to this kind of pain as well, about two years ago.

Tools:

Here are the various tools and tricks that I have learned:

Typing one handed with a living room style small chicklet keyboard: this minimizes travel distance between keys; however I had a hard time finding a small keyboard which also had function keys. Wife and I found one, will try it on Monday.

I am now much more aware of the muscle tension in my forearm while typing.  Normally I would tense up everything and then out would come a burst of keystrokes.  I am now trying to be aware of keeping everything relaxed and returning to zero after every keystroke. 

Four ways of limiting motion:

1. Tennis elbow brace – bad. cut off a lot of blood circulation and ended up being less than effective, because my problem is along the entire length of the muscle / tendon and not just in the elbow region.

2. Sling: a lot better. the first two days using the sling, my hand definitely went into repair and recovery mode. however, the sling dug into my neck of lot and can be very uncomfortable.

3. Athletic Tape:  bind my right hand fingers together to prevent the temptation to use them.

4. Wear a glove on my right hand: this is very effective in stopping me from using it accidentally. However, it is not as healing for my hand as a sling, but it is better on my neck.

I find it very funny that my attempt to say third came out as a turd

Another thing that deserves a metnion is KT tape.   I used it for a week or so prior to becoming serious and using a sling.  It provides a lot of good support, but at the expense of skin sensitivity, as the support comes from elasticity of the skin.   Eventually the skin rebels.

And now I have a cat who is trying to use the microphone as well

Emotion:

So I have this amazing opportunity color to re-evaluate how I work, as well as something that forces me to choose what I do with my time. I am certainly not going to play much Elite dangerous, nor am I going to work on my side project, until this is better – trying to save my hands for generating income.  I could probably get around playing American Truck Simulator with my steering wheel and using my left hand just like driving my car.  However, there’s only two cities left to visit, I’m probably going to wait for the DLC / Arizona to show up before I play it more.

No, I now have an opportunity to catch up on several books that I have not yet read, and to focus on working out and nutrition and things like that.

However, right now I am sad and just want to say cluck it all and watch TV shows and hide. and that’s okay, it’s just part of Grief. I am not sure I am out of denial yet. Maybe I’m near the pyramids. get it? Denial? the Nile? Ed used to make that joke all the time.

The other disadvantage of a voice dictation is that this laptop keeps thinking I am not doing anything, and shutting off in the middle of a sentence

Wish me well! I am now going to go back through this post and use my left hand to edit it so it is readable.  I also had a cat volunteer to sit on my right hand helping me not use it.

Original Text – before lots of editing.

I am writing this blog post mostly using a microphone.

I think I’ll try to do this in one shot and then clean it up later but keep the original version around so that it’s blemishes can be seen. space this is not a good sample though, because I am not using a headset comma because my Turtle Beach microphone has a TRS connector which My Little surface Samsung sing sing thing doesn’t have an input for

I am having difficulty using my right hand insert black muscle Palma and in an effort to heal this hand I am choosing not to use it for at least 3 weeks. this has led to several discoveries hole in the line

There are several things that I take for granted that are built into the muscle memory of my right hand for example in Visual Studio Computing intelligence is apparently down arrow enter, but I didn’t. Know that my right hand you that when my left hand try to do the same thing it tried just pressing enter and did not know about the down arrow involved

Other thing I discovered is that for many years, my brain would output code at the same speed that my hands could put it in. perhaps my brain puts it out faster than my hands and put it in and that is why I am having a problem. Now down to typing with one hand, I simply cannot keep up the mycohl I get frustrated, and the thoughts that were in my brain disappear leaving me wondering what I was typing. I have to reevaluate how I am going to be effective at coding over the next few weeks.

My solution plan is currently very simple: I am going to see a doctor whom I trust and see where she thinks I should go. I am hoping that rest will let my body curious, but if there are major tears in the tendon or something like that color that might need a different level of attention. I am very reluctant to go there. Center Center

I have another problem as well: by using my left hand more now, it too is in danger of burning out.

I have watched videos of people using various speech synthesis program to do programming. my reaction was color oh my God that is so slow exclamation I am hoping that if I do something like hold onto paper first and get the pot out quickly, then I will be able to take my time putting the code in to the computer in a relaxed and optimal way.

Something very nice about my current employer colon he has had to go to this kind of pain as well, about two years ago

Here are the various tools and tricks that I have learned colon um

Typing one handed with a living room style small chiclet keyboard color this minimizes travel distance between keys semicolon however I had a hard time finding a small keyboard which also had function keys

At first using a tennis elbow brace, however. Cut off a lot of blood circulation and ended up being less than effective, because my problem is along the entire length of the muscle / tendon and not just in the elbow region

Second attempt is using a sling, and that has worked a lot better. the first two days using the sling Kama my hand definitely went into repair and recovery mode. however, the slang dig into my neck of lot and can be very uncomfortable align

Turd was to use either some athletic To find my right hand fingers together to prevent the temptation to use them, or to wear a large fingerless mittens on my right hand colon this is very effective in stopping me from using it accidentally. However, it is not as healing for my hand as a link, but it is better on my neck

I find it very funny that my attempt to say third came out as a turd

I have been trying to find resources online that state exactly what the mechanism is for ice and swelling leading to Healing. I see a lot of sources that indicate that inflammation in the body’s attempt to recover in which case how can I get more information? 🙂 New York

And now I have a cat who is trying to use the microphone as well

So I have this amazing opportunity color to re-evaluate how I work, as well as something that forces me to choose what I do with my time. I am certainly not going to play much Elite dangerous, nor am I going to work on my side project until this is better Kama trying to save my hands for generating income. I could probably get around playing American Truck Simulator with my steering wheel and using my left hand just like driving my car. Uline no, I now have an opportunity to catch up on several books that I have not yet read, and to focus on working out and nutrition and things like that.

However, right now I I am sad and Hi just want to say cluck it all and watch TV shows and hide. and that’s okay, it’s just part of Greece. I am not sure I am out of denial yet. Maybe I’m near the pyramids. get it? Denial? the space and I on? The Nile River? Ed used to make that joke all the time.

The other disadvantage of a voice dictation is that this laptop keeps thinking I am not doing anything, and shutting off in the middle of a sentence

Wish me well! I am now going to go back through this post and use my left hand to edit it so it is readable.

dotnetmud: spacemud: optimizing network traffic

I spent some time getting the network load produced by the game down.     The rest of this post, I test out the changes to see how much better everything became.  

Methodology

Two ships connected; I’m going to leave their starting locations as random.  I’m going to have them turn in circles and constantly fire.  This will yield some explosions against the planet, and others against each other, but most of the missiles will be flying out into space.

Running against a deployed web server in the cloud

Using WIFI and my home internet connection.

Collecting data via portal.azure.com’s App Service Monitoring graph set to minutes.  (This didn’t work, I had to go with my local wifi connection)

image

https://github.com/sunnywiz/dotnetmud2015/tree/chatty1

This is where we started at.    Sample packet and network load:

imageimage

 

https://github.com/sunnywiz/dotnetmud2015/tree/chatty2

The main change was to give custom JsonProperty names, as well as to reduce the number of decimal places being transmitted.

imageimage

I use Decimal  instead of Double because in double’s, there’s a chance that the underlying representation isn’t quite so digit friendly; decimals are exact for every digit.  However, decimals are harder on the processor for doing math – supposedly.   I haven’t tested that.

The result:  Not too much better.   5.5 MB came down to 3.1MB on the receive side.

 

imageimage  

https://github.com/sunnywiz/dotnetmud2015/tree/chatty4

chatty3, which I’m skipping, changed the method signatures to two-character method names.  Not too much saved there.

chatty4 added “blanking out” data that doesn’t change much.  It does this by keeping track of what it believes the client thinks the state is, and doing a diff:

image image

imageimage

In order to pull this off, I had to go to a dictionary of objects to render, rather than an array.   I also kept a “full” frame every 10 frames, similar to MPEG encoding G vs I frames.

I thought I’d get fancy and send nulls if various values (DX, DY) had not changed (for example, they do not change for bullets) – however, JSON sends a “:null” which can be longer than just sending the value.  The more advanced version of “don’t include the property if it hasn’t changed” is possible, but it got too complicated, so I ignored that for now.   So this version only does the image and name attributes, but that’s enough to get a nice reduction in size:

 

imageimage

The savings:  another 30%.  Its still a lot of data.  Not quite the gains I was hoping for.

At this point, an average entity on the screen is taking 100 bytes or so, instead of the 500 they were before. 

Network Optimization: Where to go from here?

I’m going to call this good enough for now.  The directions to go from here for network optimization:

  • Instead of using the system JSON serialization, write my own serializer.   This could do things like “If It hasn’t changed, don’t send it”.
    • so instead of: {“DR”:0.0,”DX”:17.109,”DY”:299.512,”ID”:0,”IM”:null,”N”:null,”R”:446.7,”RA”:3.0,”X”:37.0,”Y”:1474.8}
    • “dx17.109dy299.512id341r446.7x37y1474.8”   that’s about half the size.   But needs a lot more code to massage it.
    • Could use a binary packing method as well.   Quick search doesn’t find anything that is happy in both C# and Javascript.
  • Put some logic in as to whether something needs to be sent every time or not.  For example,
    • bullets pretty much go in a straight line once fired.  They don’t need to be sent every time.   In fact, if the current X,Y is approximately where the previous update X,Y + DX,DY would put it, then there’s no need to send those values.
    • Planets currently don’t move. (That will change).      This is a broader case of “nothing has changed in this object from what the client expects, so just acknowledge the object still exists, nothing more”.

What’s next?

I think that authorization / identity of clients (and dealing with disconnection better) is in order.  

Then I can do the “single person logged in, multiple clients” code

And then we can launch a spaceship from the text game.

And then we can design an actual playable game.   (oooo!)