Objectivist-C

Are you a Mac or iOS programmer? Do you write code in Objective-C?

Do you know who Ayn Rand is?

If you like both, there’s now the perfect programming language for you: Objectivist-C!

Objectivist-C was invented by Russian-American programmer Ope Rand. Based on the principle of rational self-interest, Objectivist-C was influenced by Aristotle’s laws of logic and Smalltalk. In an unorthodox move, Rand first wrote about the principles of Objectivist-C in bestselling novels, and only later set them down in non-fiction.

You can read all about it here. 🙂  (h/t Ed)

I think my favorite is:

In Objectivist-C, software engineers have eliminated the need for object-oriented principles like Dependency Inversion, Acyclic Dependencies, and Stable Dependencies. Instead, they strictly adhere to one simple principle: No Dependencies.

Heh. 🙂

LEGO Heavy Weapons

This is so cool.

Fully functioning models of various firearms, built in LEGO. The engineering that went into this is fascinating.

What’s cooler is the plans for building these is soon to be released in a book called LEGO Heavy Weapons.

What’s coolest? The creator of these designs, Jack Streat, is 17 years old. This kid has a bright future in engineering. What were you doing when you were 17?

I was able to see an advance copy of the book. If you’re familiar with LEGO sets, you know they come with instruction manuals. The manuals are step-by-step pictures on how to build. At its heart, the LEGO Heavy Weapons book is no different; that sort of familiarity is good. But what the book adds to the mix is explanation and history. Up front there’s discussion about how he goes about design and creating models, which I thought was some pretty cool insight. Then each design has some discussion about what it took for him to build it. There’s also some breakdown on how the model actually works. It’s really quite cool to see all of this in-depth detail.

The designs are complex, and they’re going to require a lot of parts that are unlikely to be in your bins. Thankfully he provides a complete parts list complete with quantity and exact LEGO part number for ease of ordering.

Really, this is pretty slick.

It’s not going to be for everyone… serious LEGO and gun nerds need apply. But even if these aren’t your direct things, you just have to appreciate what Jack did. The desire to build, the patience to build, the further patience to document the design, the ambition to publish a book. Like I said… what were YOU doing at age 17?

(Disclosure: I was contacted by No Starch Press about this book, they gave me the promotional copy, and so on. While I normally don’t accept and do outside promotion because this blog is my personal blog, I opted to do this because I like guns and I like LEGO and chances are  once I learned about this I would have posted it here anyways because I think it’s way cool. Besides, No Starch publishes a lot of awesome title… check ’em out.)

More M&P Shield impressions

I took the M&P Shield out to KR Training last Saturday for Basic Pistol 1 and Defensive Pistol Skills 1. My original intention was to take it just for the BP1 class to have all the students try shooting it, given the “buffet” nature of the class. However a few days before class, Karl told me of a returning student that wanted to try shooting the Shield during DPS1. I remember the student, she had small hands, and so it made good sense to have her try it because that’s the main thing we’re thinking the Shield would be good for: folks with small hands. Plus I figured it’d be good to have the gun run for a little while in some different classes and environments, get more rounds through it and so on.

So how did it go?

I think alright.

I read somewhere someone’s description of the Shield as “too big to be a small gun, and too small to be a big gun”. I think that’s a reasonable description. It’s not really a pocket gun, tho I guess if you had big cargo pants pockets it could work; it certainly fits into the pocket of some of my larger cargo pants/shorts. But it’s not big enough to do things like allow me a really good grip on it, or have a nice long sight radius. But wearing it in a holster on my belt? That’s fine, and frankly I think a bit more appropriate than in a pocket.

There’s no question that it fits well for folks with small hands. Numerous sets of small hands went onto the gun and they worked out quite well. The recoil spring is strong so it takes a bit of work for people to rack the slide (many times small hands also means less strength), but with good technique it can be done. So this bodes well.

Given the “small/weak hands” situation tho… the trigger. Well, it can be worked, but it’s got such a heavy break on it that it can make it harder for these very people to shoot it. It’s not impossible at all, but they’ll probably shoot it better if they got some trigger work done. I’d be curious to see how the forthcoming Apex Tactical SCK trigger kit could help things out here for folks.

The gun ran well during the day. Probably had 300 rounds put through it over the course of the day (so now about 500 total). I only saw a couple problems. First, the slide often didn’t go into battery. My suspicion here isn’t the gun but the operator, but it does harken back to issues of strength and technique. Second, the lack of magazines was a bit hampering for a class. Whenever Smith & Wesson finally starts selling magazines, you’ll want to get a bunch. Having just the 2 magazines made it difficult to manage class. Plus, while the magazines claim 7 and 8 round capacity, you really only want to use 6 and 7, else it can become difficult to seat the magazines. Again, this harkens back to a strength issue.

I’m happy that the gun continues to run and seems to be getting better with break-in.

It’s a little hard to shoot because it’s a bit muzzle-flippy and a bit hard to get a grip on. It’s also a bit hard to manipulate. While it’s certainly proving to be a good fit for smaller hands, if those smaller hands are also weaker hands well… the gun isn’t unmanageable, but it can be tough. Technique can help overcome this tho, but that’s going to require some training and practice.

I’m not down on the gun at all…. just trying to be realistic about it. It’s quite appealing given the name, the engineering behind it, the features, the pricepoint. But is it just going to be sexy, or actually useful? I’d like to be useful in general and to specifically solve problems for people.

2012-05-09 workout – Wendler 5/3/1 program, cycle 9, deadlift 1

Ooof.

“Week 1”

  • WORK – Deadlift (working max: 335#)
    • 1x5x135 (warmup)
    • 1x5x175 (supposed to be 170)
    • 1x3x205
    • 1x5x225 (supposed to be 220) (work)
    • 1x5x255
    • 1x8x290
  • Asst. #1 – Deadlift
    • 5 x 10/10/8/8/6 x 205
  • Foam Rolling

Frak. That’s hard. 🙂

Some weights I rounded up because my brain just didn’t want to fiddle with the plates. I am quite happy with the 8 reps at 290. This is not likely a movement I’ll need to reset.

But on the assistance. Woof. That took a LOT out of me. 2 minute rest breaks? towards the end I certainly wasn’t feeling fully recovered before I started my next set. We’ll see how pushing this (and similarly on squat days) helps my conditioning… which I know I need more direct work on.

Explaining “going faster” without necessarily “going faster”

Speed is important.

And once you can go at one speed, you want to or may need to go faster.

In working with a student the other day, I realized a need to change my phrasing. And roll with me on this because it’s still a fresh idea in my head that I’m working on.

The scenario was Defensive Pistol Skills 1. In that class, we start to impress upon students the realities of gunfighting and self-defense with firearms. One of those realities is there there isn’t much time. The saying that the typical gunfight is “3 shots at 3 yards in 3 seconds”? That’s why Karl developed the “3 Seconds or Less Drill” as a test and measure of your ability to perform in that realm. DPS1 puts students under pressure, and then ratchets up the pressure by doing drills against a timer.

Most students end up discovering they’re too slow. Buzzer sounds, and they might get 1 shot off before the stop buzzer sounds 3 seconds later. They get better by the end of class because they start to understand a need to go faster, but I started to see how “going faster” isn’t always the right way to direct the students. It’s about the use of the phrase “go faster”, and what impression that leaves, what seed that sows, in the mind of the  student.

Here’s what seems to happen.

Start buzzer sounds. Student moseys their gun out of the holster and gets it up on target, but then realizes OH SHIT! I NEED TO SHOOT AND THERE’S NOT MUCH TIME LEFT! and then doesn’t get a good sight picture, slaps and yanks the trigger hard, and they have a gloriously unacceptable hit. And while they got their unacceptable hit the stop buzzer sounded.

What I believe is happening in the student’s mind is they think that they need to “go faster”. But this seems to be some sort of acceleration curve where they start at zero and just accelerate what they’re doing until the exercise is over. This is not what we want to do, at least, not always and not so simply.

There are all sorts of things that happen between the start and stop buzzer. You hear the buzzer, you recognize it’s time to start and make the decision to start, you start moving, you clear your cover garment, you get a grip on the gun, you draw the gun, you present the gun, you acquire the sights, you press the trigger, the gun goes bang. There’s lots of things that happen here, but often what the student is thinking about is “shooting the gun”, which many times just boils down to pointing at the target and pressing the trigger. But as you can see, there’s a lot more that goes on. They know they have to get the gun out of the holster, they know they have to do all these other things, but they don’t necessarily factor in that it consumes time to do those things.

Consequently, the effort to “make time” doesn’t necessarily mean we have to accelerate in a single linear manner from start buzzer to stop buzzer. What it may mean is that we use the alloted time in the most efficient manner possible.

As an example, in this particular DPS1 class, there was a student that I knew had the marksmanship fundamentals, but when all the time pressures were put on her she was having a hard time hitting much of anything. I took her aside to the small range to work on things. I broke it down. I had her take all the time in the world. Point the gun at a target, get a good sight picture, slow smooth trigger press, and see what happened. She rang the steel every time. When there were no time pressures she could do it all. So once that was established, I stepped it up just a little bit. Now I had her start in a low ready position, move the gun up, then sights, trigger, press off the shot, etc., but again, no time pressure. And she was fine. Next I told her to move the gun up but take a little less time between getting the gun up and getting the shot off. Not to rush anything, just to not waste as much time. To still move at her slow pace, just eliminate time where nothing useful was going on. And she did fine. And this is how we worked for a while, taking “half a second” off here and there, but never moving faster, just eliminating wasted time.

The upshot? The total time it took her to go from start to finish was reduced, but she never “went faster”.

The next step was trying to do some things simultaneously. Before I had her do everything in series: present the gun, acquire the sights, press the trigger. Now, I wanted her to do things in parallel: press the trigger while presenting the gun and pick up the sights as the gun is presented. Multitasking. 🙂  We did have to slow down, but it was about getting her to process the notion and actions. But even tho she moved slower, her total time from start to finish was again reduced because actions were happening in parallel, not serially.

We didn’t get beyond that, but I can talk about another aspect that might actually involve going faster, and that is in fact going faster. But realize that going faster doesn’t mean some constant linear acceleration across the entire task. What might happen is you divide up the greater task into subtasks, and accept those subtasks might move at different speeds. For example, when the buzzer sounds and it’s time to draw, that draw should be as wicked fast as you can draw it. And no matter when nor the circumstance, always draw fast… I can’t think of a time when you want to draw slowly. After you draw, you present the gun. But in this presentation, you may need to move at a different speed. If you’re shooting at less than 5 yards, you probably can get the gun out there as fast as you can and be just fine. But if your first shot is at a target 25 yards away, you cannot blaze away; you must slow down that presentation so you can make the precision shot. Again, it’s quite common to see in DPS1 class that as students are learning to draw from the holster there’s this linear acceleration from start to finish of the whole task, going slow to get the gun out, but once the hand is on the gun they smear the draw from position 1 to position 4, struggle to find their sights, waste time, and end up yanking the trigger all in an effort to “go faster”. In the end, they weren’t fast, nor accurate.

Which brings to another point about how to “go faster”, using proper and efficient technique. While it’s true that the shortest distance between two points is a straight line and thus likely it’s also the fastest way to get from A to B, the handgun draw does not abide by that rule. The right way to “go faster” is to make an “L” shape, drawing the gun straight out of the holster to the armpit, then straight out from the armpit/face/upper-chest area pressed out to the target. While technically it’s a slower path of travel, getting the gun from A to B isn’t the only factor involved — your eyes need to pick up that front sight. When you do this “press out”, it gives your eyes more time and ability to find and fix on the front sight and get the sight picture you need. When you start to couple that with simultaneous actions like pressing the trigger as you press out, all of these things come together to help you “go faster” without going faster.

Watch Mike Brook as he shoots the F.A.S.T. drill in 4.92 seconds

Buzzer sounds and he’s quick to react to it. His draw is wicked fast (and appendix carry doesn’t hurt either). But then his press out goes slowly — a must since the first (two) shot(s) of the drill is into a 3″x5″ box at 7 yards. Once second shot is over he’s right onto the reload, no dawdle there, and then completes the drill. If you watch, it doesn’t necessarily look fast in the sense of rapid acceleration and “pedal to the metal” shooting. There’s no blazing away. He’s not shooting faster than he can see and get acceptable hits, and at some points it looks like he’s going slow. But he’s doing all of the above in terms of not wasting time, changing speeds, performing simultaneous action, using good technique, and it all comes together for a fast time.

So… for me the thing I’m trying to figure out is a good and efficient way to express this to students. You can see in my above elaboration that well.. it’s laborious to explain. But it’s about how to “go faster, without going faster”. To find the right terms to help the students overcome the notions and help them really get it. Because when we say “go faster”, they’re not necessarily going to think about all the ways they can actually go faster without going faster. It’s not really the right term.

Hrm. Something to continue thinking about.

Too hot?

James Rummel has a cool (ha!) post about temperatures and ammunition.

What with summer pretty much here in Texas and the car interior getting mighty hot, this information could be relevant to some.

In short, it seems like dangers of “cooking off” are unfounded, but it will degrade the ammunition and could actually risk problems if fired when too hot because of pressure increases.

It doesn’t need your help

There are numerous ways you can rack the slide on a semi-automatic handgun.

While most of those ways work, there’s a particular way we teach it at KR Training that we prefer because it’s a single technique that can work across a multitude of situations and contexts. This technique is used by other  top”combative pistol” instructors like Tom Givens, Paul Gomez, etc. because of the superior nature of the technique for this context.

If you watch this Paul Gomez video, from about 1:27 to 1:29 into the video he demonstrates the technique:

The video is good for other things, but just focus on those 2  seconds for now. I don’t want to get too much into the specifics of this “over the top” technique, it’s strengths and such, because it’s not germane to the goal of this article.

The key I want to stress tho is to LET GO of the slide. In fact, it doesn’t really matter what technique you use to rack the slide. Pull the slide back, and then LET IT GO.

This was so common during this past weekend’s BP1/DPS1 classes that I wanted to elaborate on the topic.

People want to help the gun.

The gun doesn’t need your help. It’s designed to work in a certain way, so you need to let it work in that way.

Or perhaps they think it might damage the gun to let the slide slam home. Folks, when the gun shoots it’s subject to far more mechanical and physical stress than you could ever inflict upon it. But again, it’s designed to work that way and manage such things.

In the end, a gun is merely a hunk of steel with springs and levers and inclined planes and other simple machines cobbled together in a very ingenious way. These springs and levers are put together in a very precise way and need to work in their finely tuned orchestration in order to run right. One of those is the amount of tension and force required to strip a new round off the top of the magazine and load it into the chamber. Try this. Take a full magazine and hold it vertically in your hands. Now use the tip of your index finger, apply it to the back of the top round, and push it forward out of the magazine simulating how the round is stripped from the magazine and fed into the chamber. It’s kinda tough to do, isn’t it? Requires some strength, some force. Now, take your empty/unloaded gun and pull the slide back. If you hold on to the slide and ease it back down, there’s not much force generated; you could stick your finger into the ejection port, ease the slide down onto it, and it wouldn’t hurt much. But if you hold the slide back and then let it go, a lot of force will be generated; I’m sure you wouldn’t stick your finger in the way of that! It’s a simple equation: force = mass x acceleration. The mass of the slide is constant, but the acceleration changes. As you saw when you tried to push the top round out of the magazine, a high level of force is required to strip that round out of the magazine. So if you need a lot of force to strip the round, the only way you’re going to get that high level of force is to have a high level of acceleration. How are you going to get the slide to move its quickest? By using the maximum range of motion (pulling the slide ALL the way to the rear of it’s range of motion — something releasing with the slide lock lever won’t let you do), and allowing for maximum force… which means

DON’T HELP THE SLIDE FOWARD. LET IT GO.

When you pull the slide back, just open your fingers. Let the slide go and let it slam forward. It’s designed to work that way. Do NOT move your hand at all. Or if you are moving your hand, let your hand continue to move in the direction of the rearward slide (e.g. up towards your shoulder). Your hand should NOT change direction and start to move forward with the slide. If you do this, if you do not let go of the slide, you will slow the slide down, it will not generate enough force, and the gun will malfunction.

And I saw lots of malfunctions all DPS1 class long because people kept riding their slides (yes, we constantly remind them, but old habits die hard). The slide would not fully close thus the gun would not fire. Or the top round wouldn’t chamber thus the chamber was empty and nothing would fire (tho some of that was also caused by magazine problems such as old/weak springs and/or sand blocking the follower from moving). Or they’d cause the top round to only partially feed and seat, causing a larger malfunction. And this is why you need to run the gun like the machine was designed to run.

Let the slide go. It doesn’t need your help.

They obviously missed the memo

A student on the campus of Rice University was robbed a gunpoint.

I guess the robbers didn’t get the memo that schools and universities are gun free zones. Criminals don’t obey the law… imagine that!

2012-05-07 workout – Wendler 5/3/1, cycle 9, Press 1

Why dawdle? Let’s get to business!

“Week 1”

  • 5 Reps – Press (working max: 160#)
    • 2×10/5×45 (warmup)
    • 1x5x65
    • 1x5x80
    • 1x3x95
    • 1x5x105 (work)
    • 1x5x120
    • 1x6x140
  • Work Asst. – Chin-ups (supersetted with work Press)
    • 6 x 1 x BW
  • Asst. #1A – Press
    • 5 x 10/10/10/8/8 x 95
  • Asst. #1B – Wide, pronated grip lat pulldowns (supersetted with Asst #1A)
    • 5 x 10 x 100/110/120/130/130
  • Asst. #2 – Triceps pressdowns (EZ-Bar)
    • 3 x 12 x 50

I know. This is supposed to be cycle 8’s deload week, but I opted to just forge ahead with my new plan. On the one hand, I’m excited and curious to see how it will work out, on another I do need to see how it’s going to work out. With my need to figure out a schedule that works for the new job and my life, I really need to figure it sooner rather than later and a week of time “lost” in this figuring doesn’t really help me. We’ll see if I live to regret this. 😉

Now on that front, this worked out alright. I did spend less time in the gym, about 10 minutes less. So it’s not a huge gain. But every minute counts and 10 minutes saved is 10 minutes earned, to borrow a phrase. Plus I think there may be some ways I could tighten things up further.

For example, note that I only got 6 reps on my last work set, and I had to work to get it. Granted I wasn’t taking HUGE rest periods — up to 5 minutes — and that certainly impacted my ability to hoist more weight for more reps. I of course have been wondering about a reset, and this makes me think yes that’s going to need to happen. But one workout and one datapoint is hardly enough. Wait until the cycle is done before I make that call.

But then on the assistance work, the pressing worked out about the same, which I was happy with. A little harder because again I’m being tighter on the rest breaks, but I am happy to see that 60% is still workable. In fact, if I do reset, I might consequently jack my assistance weights up to 70% to compensate! We’ll see.

Now on chins. I can do more than 1, but I opted to only do 1 because the moment my arms touched the bar I remembered why I didn’t do this in the past — my shoulders didn’t like it. Going from the pressing up to then the pull of gravity down, my shoulder did not like that. So I figured to ease into this. Try one each set and see how it goes. It wasn’t ideal, but I can remember how to take it a little easy, ease into it. It’s all coming back to me now. So when I do Press again, I’ll try 2 and see how it goes. Just work into it all.

Pulldowns… I think 130 is going to be reasonable weight… it’ll be tough and require me to work at it, if I do 130 across.

And the pressdowns felt so different. I’ve been doing with the rope for so long, switching to the bar felt weird, especially since it added in a balance factor. 🙂

Anyways, I did like it. I do have to remember when I walk to make sure my walk is brisk. That will help both on the time factor, and the warmup/cooldown front. Brisk, John, brisk!

I’ll say this tho. If this does not work out sufficiently for me, I wonder if I might try switching to Wendler’s 2x/week template. Of course the gains will be slower, but if it works out, it works out. It’s on my mind to think about, but I need to see my present course through.

Onwards.

Fun with SleepWatcher

I do the majority of my computing work on a MacBook Pro — a laptop computer. The primary reason for a laptop is portability. Sure most of my work gets done at my desk, but sometimes I have to move or want to move. But moving isn’t always so quick and easy because I have lots of things hooked up to the MacBook Pro, like an external FireWire hard drive so I can run Time Machine backups. Trouble is, you can’t just yank out the cable for the disk, you must eject it, then you can remove the cable, else you could risk corruption of the data on the drive. Of course when you’re in a hurry to get out, or just consider we all get absent-minded from time to time gee… this is a pain in the neck and wouldn’t it be nice if we could automate it so we didn’t have to worry about it! Isn’t that what computers are useful for?

As I searched about for a solution, I found a little app called autoEJECT. It’s not bad, but after using it for a few days it just didn’t work like I needed it to. It did unmount things fine, but it failed to mount my FireWire drive. It has an option to “Force Mount”, which I then enabled but when I did so it mounted everything including the secret hidden partitions Apple has for recovery and booting. This is not desired as that 1. clutters things up, 2. exposes volumes that you do NOT want to risk to change. Even then it was a little quirky in how it would remember volumes to mount and unmount and just got in the way more than it was being useful. I figured there had to be a better way.

I found something called SleepWatcher.

SleepWatcher is a system daemon that watches for various events on the system, like sleep and wake, and allows you to execute scripts in response to those events. The app isn’t for novices, and the author actually goes out of his way to make it a bit complicated to use because it’s not a tool for the masses to use. But if you know what you’re doing, it can be useful. So I figured to give it a shot.

Of course, SleepWatcher itself isn’t what does the voodoo. You need scripts.

This website listed a couple scripts.

His sleep script was:

#!/bin/sh
osascript -e 'tell application "Finder" to eject disks'

and his wake script was:

#!/bin/sh
/usr/sbin/diskutil list | \
 awk '/Apple_HFS/ {print $NF}' | \
 xargs -I{} /usr/sbin/diskutil mount {}

Those are reasonable starting scripts. I thought about changing the wake script to just look for my one volume, because as it is now is ends up mounting all my partitions. Since they’re already mounted it really makes no difference, but it’d just be more efficient to scan for my lone volume. Still tho, this is useful for being complete.

The sleep script I modified slightly based upon what I found here. The change I made was simple:

#!/bin/sh
osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'

which works a bit better in my situation. Granted, this will kick out optical discs, but as I rarely use them it’s not a big deal to me. The author also notes how this will not work if the Finder isn’t running, but I use the Finder and it should always be running (else there’s a problem).

Along the same lines as these is this hint from Mac OS X Hints, but he takes some vastly different approaches in what is selected for unmounting and what is selected for mounting. Not exactly what I want, but it shows what else you can do.

Anyways, SleepWatcher is pretty nifty and reading the code seems to be pretty well written too. Cheers, Bernhard Baeher!