Thursday, May 26, 2016

Ibagbar Small Messenger Bag - Review and Dump

I'm always on the look-out for the perfect murse man-bag, so when one of the bags I'd been using started to rip, I had the perfect excused to try a new model. I give you the verbosely named: Ibagbar - Small Vintage Cotton Canvas Messenger Bag Ipad Bag Shoulder Satchel Crossbody Bag Hiking Traveling Bag for Men and Women. Got that?

It's basically a small, black, canvas messenger bag. Let's see...

What I Like About The Bag

  • I think the size is about right. It's big enough to hold plenty of stuff (see below), but small enough to be out of the way.
  • The styling is about as neutral as can be. It's a black canvas bag with a small brown patch on it. It's not some neon green sporty thing that's fine in the outdoors, but looks out of place in an office (not that I spend much time in an office). It's also not some formal leather thing that's overkill for carrying my crap around town.
  • The simple fold-over-flap configuration is working well. It has a zipper on the main compartment, but I don't bother with it. I love that the bag has no Velcro and is silent to get into and has no zipper that can break. The magnetic closure on the flap works well, too.
  • The build quality of the bag, especially considering it was $22, seems solid.
  • The shoulder bag approach wears well in the heat. We took a hike yesterday and I carried the bag: whatever discomfort I had with a single shoulder bearing the weight was more than made up for with a cool back. Carrying a backpack during a DC summer is a guaranteed way to end up a hot sweaty mess of a back.
  • Using two carabiners I'm able to attach the bag to my bike rack, turning it into a rudimentary pannier.

What I Don't Like About The Bag

  • I'm not blown away by the pockets in the bag. The one pocket on the outside is the biggest offender: it's just too small to hold my Galaxy 5 Note. The internal pockets aren't anything special either, and I'm not really sure what the designers had in mind for them. With that said, as you can see below, my stuff tends to be in their own little packages. So having one large, functional pocket in the bag, works well for me.
  • One disadvantage of having a canvas bag that's relatively well made is that it's heavy, at least when compared to other lighter-weight options. The part of me that is always thinking of ways to trim ounces just can't get behind canvas. That part of me is rooting my next buy to be the Z-Packs Multi-Pack. But canvas is durable and looks appropriate under a wide set of circumstances, so it's hard to argue with.
  • At times I think the bag is too small. The problem: it's a bit too perfect a fit for my essentials. For example, I can't easily fit my DSLR into it or cram a large hard cover book that I've picked up at the library in it. This isn't the fault of the bag. The very thing that makes it work (it's relatively small size) is also what makes it questionable. I've had the bag for about 2 months now, and more often than not, the smaller size of the bag works. But still, perhaps my next bag needs an expand-o feature of some sort. When I travel, I won't be surprised if I turn to a larger bag, one ready to hold camera gear, guidebook, windbreaker, etc.
  • The bag isn't invisible. This is another fact of life. Even with neutral styling, there's no doubt I stand out when other guys aren't carrying bags. But who wants to cram a Galaxy Note 5 into their front pocket of their jeans? And who wants to arrive somewhere and realize their phone is down to 15% battery and have no way to recharge it? And who wants to be stuck in traffic and be hungry enough to eat their own arm off, only to not have snacks on hand? Every time I leave the bag at home I get reminded that there's something in there that's handy. Oh yeah, that's why I carry the stinking bag in the first place. Still, black canvas or not, it stands out.

Bottom line: the bag itself, especially accounting for the low price tag, really does deliver on what it promised. It's a small bag that looks about as plain vanilla as possible, and the simple large-flap design Just Works. As a general purpose EDC bag, it's a winner.

What fits inside? Here's a quick, top level dump:

  • Yellow Sack: odds & ends. Including: hand sanitizer, a tube of Aquaphor, Altoids Utility Tin and SDR radio antenna base
  • Red Zippered Bag: more odds & ends. Contains snacks, various over the counter medications, various types of tape, a bic lighter, some TP, a heatsheet emergency blanket and a USB cable and wall plug.
  • Red Flask: an 8oz soft flask holding, alas, water. I had pretty much dodged the trend of carrying a water bottle everywhere, and then I started getting in to the habit. Then I switched to a smaller bag and my usual 18oz bottle wouldn't fit in the bag any longer. I compromised with the 8oz flask. It fits perfectly and 8oz is surprisingly refreshing when you're thirsty. If nothing else, it's handy for taking pills or other times when you just need a quick nip of a drink.
  • Black Rectangle: that's a Perixx full sized keyboard
  • Metal Tin: filled with a Buff and Flip & Tumble shopping bag. The canister itself can be used for anything from a drinking cup to a protective hard shelled container.
  • Black Sack: Electronics: Anker battery, USB and SD card related adapters and Software Defined Radio adapter.
  • Orange Fabric: that's approximately 1x1 yard of bright orange parachute material. It's something I'm experimenting with carrying. Possible uses: signal panel?, Furoshiki? A mini picnic blanket? A seat cover after an especially muddy run ? We'll see. It folds up and sits along the bottom of the bag taking up little space.

And here's another view with items unpacked one level or so:

Whoa, that's a lot of stuff. I guess that's what you get when you tune your gear for 30 years or so. Check out my bag dump from two years ago, to see what has, and hasn't changed.

Finally, here's the bag in bike mode:

Wednesday, May 25, 2016

Exploring the Chopawamsic Backcountry Area

With summer fast approaching, Shira and I have started thinking about where we want to take our Nieces and Nephew camping. One of the closest primitive camping options is the Chopawamsic Backcountry Area in Prince William Forest. The campsites are accessible via a 2.2 mile loop. We wondered: would the relatively short hike make for an accessible backpacking trip that would be fun for the kids?

A week or so ago it hit me: uh, why don't we just go and check the area out? Today good weather and our schedules conspired to give us an opportunity to do just this.

Here's a bit of useful intel: even if you're planning to just day-hike in Chopawamsic, your first stop needs to be at the visitor center. Along with paying your park entry fee, you'll go through the usual permiting process and the park ranger will give you a key to the gate. From there, you can head to the turn off at Breckenridge Road, and start down a spooky looking 1 lane road.

Useful bit of intel #2: when you see this sign, you're going the right direction

Once we got these logistics sorted out, finding the parking lot and trail was a breeze.

We did the 2.2 mile loop with ease. It has a few hills in a couple of places, but it's not especially challenging. Much of it is under forest canopy, so there's no summit or breathtaking view that's your destination. Of course, little wonders abound, but that's true of any outdoor space you truly take the time to explore.

Throughout the loop there are turn offs to each of the 8 campsites. We were especially impressed with #3, though, we didn't explore them all in detail. All the campsites looked clean and well maintained.

There's a trail down to the Breckinridge Reservoir which we didn't take. That would have probably exposed us to completely different terrain.

After mulling it over, I doubt we'll plan to do our next kids camp-out there. I'm sure it would work well enough, but the benefits of a state campground are just too numerous to pass up: cooking over a real fire, hitting the beach for swimming, no-stress campsite selection and not to mention, clean restrooms. I'm excited to take the kids backpacking, but I think we'll hold off another year or two.

We certainly had a great time exploring this new section of park and I'm psyched to add it the my list of next-door-nature options.

Tuesday, May 24, 2016

The Improvised Sit Room

From a discussion over at edcforums comes this tip from a Police negotiator:

[I carry] 3 pages of easel pad sized paper - Several years ago I stumbled across a pad of large easel sized paper that had the sticky adhesive on the back making them like GIGANTIC sized sticky notes. After some contemplation, I used waxed paper to create a backing for the sticky adhesive strip. Once the adhesive was covered I folded the sheets down to a size suitable to fit in my ziplock bag "first responder" kit. Now, when I'm in my patrol car and am on scene of a situation I can pull out these large sheets of paper, pull the wax paper backing off and stick them to the side of my patrol car (Tahoe) to start some very rudimentary situation boards. This has saved my rear end a couple of times and most of my team has adopted the idea and carry them also.

To be able to turn any space, even a collection of parked cars, into an information and strategy center is incredibly powerful. I could easily see how this setup, plus anti-Blah Blah Blah skills, could go a long way towards organizing a response to a high pressure and fluid situation.

The super sized Post It notes this officer is referring to can be found here, and while they're probably a great value, they aren't cheap enough for me to consider them an impulse buy. Still, I'll keep an eye out for them, perhaps I can catch a deal? You just never know when you'll need to improvise a coding design session or work out a Lego army attack strategy.

Related to this is the old whiteboard marker on a car-window hack. Though a few poster size sheets of paper are far easier to read than scribbles on a window. And the paper serves as a permanent record, too.

See what else this particular negotiator carries here.

Monday, May 23, 2016

Problem Solving at 13,500 Feet Per Second

You surely know about the harrowing Apollo 13 Moon Mission (if not, have I got a movie for you!). But do you know of the launch drama associated with Apollo 12? Neither had I. Watch this YouTube clip and be amazed:

You can read the original launch transcript here. And at 30 seconds or so, you can see they've clearly got a significant problem:

000:00:30 Bean (onboard): Thirty seconds.

000:00:31 Conrad (onboard): Looks good.

000:00:33 Conrad: Roll's complete.

000:00:33 Bean (onboard): This thing moves, doesn't it?

000:00:34 Carr: Roger, Pete. [Pause.]

000:00:37 Gordon (onboard): What the hell was that?

000:00:38 Conrad (onboard): Huh?

000:00:39 Gordon (onboard): I lost a whole bunch of stuff; I don't know ...

000:00:40 Conrad (onboard): Turn off the buses.

However, if you listen to the audio itself, it would be easy to miss the urgency of all of this. In classic pilot / NASA style, everyone remains incredibly calm and emotion free.

At a 1 minute, 52 seconds you can hear the request to flip SEC to AUX, which corrects the instruments.

Only at 4 minutes and 10 seconds does a hint of emotion leak into the conversation:

000:04:07 Conrad: Hey, that's one of the better SIM's, believe me.

000:04:XX Conrad (onboard): Phew! Man alive! I'll tell you what happened...

000:04:13 Carr: We've had a couple of cardiac arrests down here, too, Pete.

000:04:16 Conrad: There wasn't any time for that up here. We've got a good clock running here, and correct me, I'm going to give you a mark at 4 plus 30. I've lost my event timer. And...

All I can say is that I'd lose far more than my event timer if I were in these guys shoes. Amazing.

Friday, May 20, 2016

Oozing Nature's Duct Tape

Yesterday we walked next to some pine trees which had some limbs lopped off. The result, the trees were oozing pine resin:

While I've yet to experiment with pine pitch, it apparently makes a durable, permanent, waterproof glue. It's sort of nature's duct tape, limiting you only by your imagination (OK, technically it's more like nature's sugur, but everyone knows what duct tape is).

To use pine resin you need to process it. Here's a video that explains how to prepare the stuff and another video that explains how to use it:

In this same stand of trees, there were these itty bitty pine cones:

If my research is correct, they're a edible. As a Scout, a learned early that pine trees are a natural source of turpentine, which is terrifically flammable. To this day, I know if I can find a heap of dry pine needles, a fire will be easy to start. But that's just the beginning of the pine tree's value, there's lots more it offers.

Thursday, May 19, 2016

Piet Hein - Poet, Freedom Fighter, Smart Watch Content Provider

I first learned of Piet Hein when a friend from shul introduced me to his pithy poems, known as Grooks. Here's a sample:

THE ROAD TO WISDOM

The road to wisdom?—Well, it’s
plain and simple to express:
Err
and err
and err again,
but less
and less
and less.

And here, click refresh a few times to see a number of his poems:

Hein's poems go beyond simply being clever. They often seem to make a point that you're familiar, but they do so in a cryptic way. This obfuscation is actually a good thing, as it requires you to think through the text rather than accepting it the way we would a well worn cliche. Using complexity to find simplicity, now that's impressive.

But Hein is more than just a poet with a knack for creating pithy packets of wisdom. For one thing, he was a poet with a purpose.

The first set of published Grooks were actually a form of resistance to the Nazi invasion of Denmark:

Piet Hein, who, in his own words, “played mental ping-pong” with Niels Bohr in the inter-War period, found himself confronted with a dilemma when the Germans occupied Denmark. He felt that he had three choices: Do nothing, flee to “neutral” Sweden or join the Danish resistance movement. As he explained in 1968, “Sweden was out because I am not Swedish, but Danish. I could not remain at home because, if I had, every knock at the door would have sent shivers up my spine. So, I joined the Resistance.”

Taking as his first weapon the instrument with which he was most familiar, the pen, he wrote and had published his first “grook”. It passed the censors who did not grasp its real meaning.

CONSOLATION GROOK

Losing one glove
is certainly painful,
but nothing
compared to the pain,
of losing one,
throwing away the other,
and finding
the first one again.

The Danes, however, understood its importance and soon it was found as graffiti all around the country. The deeper meaning of the grook was that even if you lose your freedom (“losing one glove”), do not lose your patriotism and self-respect by collaborating with the Nazis (“throwing away the other”), because that sense of having betrayed your country will be more painful when freedom has been found again someday.

Apparently, the poems would make their way from the newspaper to the street by being featured in graffiti.

Hein's messaging brings to mind the Hashtag Activism of today. While it absolutely has its limits, it also has great power. Well crafted messages matter. Hein took this a step further, of course, hiding his messages in plain sight.

Hein, for his part, invented the idea of a Grook. It was similar to other forms of poetry, yet he made it his own. When Arik Fraimovich developed a way to tint Twitter avatars green with one click, he too, found an innovative way to spread a message. Yes, the effect got tiresome, but it still raised awareness to levels one might never have thought possible. Hein knew that there's more than one way to offer resistance, and we should learn from his example.

Finally, it's worth noting that Hein wasn't a poet. He was a scientist. He was a mathematician. He was a designer. He was an inventor. We're so used to categorizing people as either artists or scientist; author or mathematician; it's a pleasure to be reminded that we need not make this distinction.

Take some time to get lost in his poems, they are both delightful and profound.

As for me, I couldn't help but embed a number of his Grooks into a randomized web page, and then wire that web page into my Pebble Smart Watch. Brilliant words are now just a few watch button presses away.

Ants

Yes ants. From yesterday's run.

Wednesday, May 18, 2016

The KenKen Solutiont that Can't

Mark over at brainwagon recounted his frustration with an especially tricky KenKen puzzle and like any good programmer turned to a software solution:

Lately, my lunch hours have been spent working on the NYT Crossword with my lunch companion Tom. While I find that the Thursday crosswords are often beyond my ability to do in the allotted time, between the two of us, more often than not we manage to plow through them. Slowly over time, we’ve begun to solve them slightly quicker, so I’ve branched out to doing the KenKen puzzles.
...
By the end up twenty minutes I was annoyed, knew I had made a mistake, but decided to give into the urge to write a program to solve it. How long could it take?

Well, the answer was about 27 minutes.

Well Mark, Challenge Accepted.

After reading his post (and without looking at his solution) I decided I needed to create my own KenKen solver. I busted out my Samsung Galaxy Note 5, Perixx keyboard and a new app configuration: Termux + emacs + TinyScheme and went to work.

After a weekend of thinking through a solution, I had my solver written up fairly quickly:

;; http://brainwagon.org/2016/05/12/kenken-puzzle-solver/

(define (show . words)
  (for-each (lambda (w)
       (display w)
       (display " "))
     words)
  (newline))

(define (unique? items)
  (if (null? items)
      #t
      (and (not (member (car items) (cdr items)))
    (unique? (cdr items)))))

(define (solved? puzzle)
  (not (member '? puzzle)))

(define (blank-puzzle n)
  (if (= 0 n)
      '()
      (cons '? (blank-puzzle (- n 1)))))

(define (try sym puzzle)
  (if (null? puzzle)
      (error (format "Whoa, can't try ~a in a blank puzzle" sym))
      (if (eq? (car puzzle) '?)
   (cons sym (cdr puzzle))
   (cons (car puzzle)
  (try sym (cdr puzzle))))))

(define (ok? puzzle constraints)
  (if (null? constraints)
      #t
      (let* ((params (map (lambda (i) (list-ref puzzle i))
     (car (car constraints))))
      (valid? (if (solved? params)
    (apply (cdr (car constraints)) params)
    #t)))
 (and valid? (ok? puzzle (cdr constraints))))))


(define (solve puzzle dictionary constraints)
  (define (go puzzle pool)
    (cond ((solved? puzzle)
    puzzle)
   ((null? pool) #f)
   (else
    (let* ((next-attempt (try (car pool) puzzle))
    (valid (and (ok? next-attempt constraints)
         (go next-attempt dictionary))))
      (if valid
   valid
   (begin
     ;; (show "Rejecting:" next-attempt)
     (go puzzle (cdr pool))))))))
  (go puzzle dictionary))

(define (uni . args)
  (unique? args))

(define (is op val)
  (lambda args
    (or (= val (apply op args))
 (= val (apply op (reverse args))))))

The program works by taking in a blank puzzle, a dictionary of values to solve with (in a 4x4 puzzle, that would be (1 2 3 4)) and a set of constraints and does a brute force attack to find a combination of symbols that satisfy all the constraints. KenKen puzzles assume that all rows and columns are unique and that clusters of cells either add, subtract, multiply or divide to form a particular value; these form my constraints.

Here's the code to solve a 3x3 puzzle:

(define kk-3x3-cons
  `(((0 1 2) . ,uni)
    ((3 4 5) . ,uni)
    ((6 7 8) . ,uni)
    ((0 3 6) . ,uni)
    ((1 4 7) . ,uni)
    ((2 5 8) . ,uni)))

(define kk-p1-cons
  `(((0 3) . ,(is + 3))
    ((2 5 4) . ,(is + 8))
    ((7 8) . ,(is + 3))
    ((6) . ,(is + 3))
    ((1) . ,(is + 1))))

(define kk-3x3-dict '(1 2 3))


(solve (blank-puzzle 9) kk-3x3-dict (append kk-3x3-cons kk-p1-cons))

For clarity, the first set of constraints ensure that every row and column is unique, whereas the second set of constraints describe this particular puzzle. For example, grid entries 2, 5 and 4 must add up to 8.

One compromise I made was to have the solver work in terms of a list rather than a grid. The result was that I had to create little paper maps to help me translate from grid to list coordinates:

For 3x3 and 4x4 puzzles my little solution worked. In fact, I spent more time debugging typos in my transcription of constraints than I did in writing the actual core solution. Here's some proof that this actually runs on my cell phone:

Unfortunately, my brute-force solution just doesn't cut it for the 6x6 puzzle Mark was working on. I setup the constraints and kicked the program off:


(define kk-6x6-cons
  `(((00 01 02 03 04 05) . ,uni)
    ((06 07 08 09 10 11) . ,uni)
    ((12 13 14 15 16 17) . ,uni)
    ((18 19 20 21 22 23) . ,uni)
    ((24 25 26 27 28 29) . ,uni)
    ((30 31 32 33 34 35) . ,uni)
    ((00 06 12 18 24 30) . ,uni)
    ((01 07 13 19 25 31) . ,uni)
    ((02 08 14 20 26 32) . ,uni)
    ((03 09 15 21 27 33) . ,uni)
    ((04 10 16 22 28 34) . ,uni)
    ((05 11 17 23 29 35) . ,uni)))

(define kk-6x6-dict '(1 2 3 4 5 6))

(define kk-p4-cons
  `(((0 1 6) . ,(is * 12))
    ((2 3 4) . ,(is + 11))
    ((5 11)    . ,(is + 7))
    ((17 23 29) . ,(is + 8))
    ((28 34 35) . ,(is * 72))
    ((27 33) . ,(is + 5))
    ((32) . ,(is + 3))
    ((30 31) . ,(is - 1))
    ((12 18 24 25) . ,(is + 12))
    ((13 19) . ,(is / 2))
    ((20 26) . ,(is / 2))
    ((14 15 16 10) . ,(is + 19))
    ((9) . ,(is + 3))
    ((7 8) . ,(is - 5))
    ((21 22) . ,(is - 5))))

(solve (blank-puzzle 36) kk-6x6-dict (append kk-p4-cons kk-6x6-cons))

I enabled some debugging and got a whole lot of this:

After hours of waiting for a solution to be spit out, I finally killed the process. Would it eventually complete and give me the answer? Did I have a bug in my constraints or program that insures it won't even give me an answer? I don't know. But for now, I need to put this problem down and return to it when I'm ready to try a new approach.

Mark, my hat is off to you for your 27 minute solution that completes in 1 millisecond! You da man!

While I don't have my solution yet, this was hardly a bust. A few positive notes:

  • A brute force recursive solution was surprisingly easy to write for this sort of problem, and for small enough problem sets, works well. You essentially leverage the interpreter to gain access to backtracking, rather than needing to build it out explicitly.
  • Scheme sexpr's make an ideal 'UI' to this sort of problem, with the constraints being comparably easy to read and write without any additional coding effort.
  • Termux is sweet. I'm not sure it's going to replace GNURoot, but it's certainly a top notch option. The API opens up some impressive scripting options I'm going to have to explore in another post.
  • TinyScheme is a beast. I threw this massive recursive problem at it and it just chugged away. I let the program spin for hours, and it didn't bat an eye. I suppose that's what Tail Call Optimization is all about, but still, it's remarkable to see it in action.
  • The solution I came up with is nice and flexible and should work for related puzzles, such as Sudoku. I hope I can keep this general constraint solving nature while also gaining some critical speed.

So yeah, KenKen 1, Ben 0. But this isn't over. I'll be back.

Tuesday, May 17, 2016

Name those Plants: Pretty Flowers and Gigantic Leaves Edition

Yesterday's walk brought me passed a couple of plants crying out for identification:

These beauties seem to be Aster, but I didn't get enough variety of photos to narrow it down to the exact type Fleabane.

And these positively massive leaves are most likely Burdock.

I wouldn't consider these anywhere near positive ID's yet. I really need to grab more photos of these guys and just as importantly, I need to give them more time to develop.

The Burdock, for example, will become obvious as it develops it's notoriously 'sticky' burrs. They're so effective at attaching to clothing and fur that they were the inspiration for Velcro. Definitely one to watch. The Aster's too should yield more information with time. The more I try to identify plants the more I appreciate that just one snapshot in time isn't anywhere as valuable as catching multiple stages in the life-cycle.

Update: Looks like what I thought were Asters are actually Fleabane. More proof here.

Monday, May 16, 2016

The Eagle Has Landed

What a weekend it has been! Yesterday we attended Spencer's Eagle Court of Honor and the day before, we watched Caleb Graduate from college.

Somehow, they've gone from this:

To this:

Amazing. Proud doesn't even begin to capture it.

LinkWithin

Related Posts with Thumbnails