It’s been quite awhile since the last post, with lots of changes. I’ve:

  • Converted to MacOS
  • Changed my research codebase to C++
  • Migrated this blog from Blogger to Octopress
  • Started on the path towards #prismbreak
  • Gotten my blue belt in BJJ

I’ll say a little about each of these in turn.

MacOS++

First, for scientific research MacOS < (Windows)++.

I’ve tried both, I simply get more done in MacOS. Mainly, it’s because there’s generations of Unix tools I can still use in an honest bash shell. Homesick is simply lovely for managing your dotfiles, and bash-it is another awesome shell configuration management tool. I pretty much live in GitHub for anything public (research papers and code, presentations, work projects, and this blog) and with tools like Homebrew I can restore my development environment and files on any Mac I care to just by running a shell script.

Second, any large complex pieces of software that I find worth purchasing such as Mathematica, Maple, Office, MindNode Pro, Parallels, SublimeText, or 1Password already runs fine on MacOS. As do myriads of other useful free or open source tools such as (let me look at my Dock) Chrome, Tor, DashDoc, GitHub, LightTable, EverNote, Zotero, Anki, and TrueCrypt. And then there’s the software Apple bundles such as XCode, iTunes, iMessage, iWork, iMovie, and Garage band. Let’s not forget that any non-console games I care about work great on Battle.Net or Steam. Or that the AppStore keeps paid apps in the cloud, and Homebrew/Homesick keeps the rest. Finally, if there are any Windows tools I absolutely have to have such as Visual Studio or modern versions of Outlook, Parallels works dandy.

Now, putting on my IT hat for a moment, if you are in a corporate environment and don’t care one whit about the command line, then Windows is the best for you. Or rather, you’re probably indifferent (although you may want teh shiny), but for your tech staff, Windows machines can be managed by the thousands with relative ease. Microsoft actually supports doing so in an efficient business fashion. Apple simply doesn’t care about the enterprise space, and Google’s toolkit doesn’t quite fill in the gaps (although I am sure that Puppet masters will disagree with me).

Also, if you live in Azure or Visual Studio or like the Surface hardware (and they are interesting) Windows has got it going (although some of us just buy Macs and load Windows, because the hardware is still shiny).

It goes without saying that if you’re one of those folks that love rolling your own OS and hardware, Linux is for you. Most of us, I suspect, simply need to get things done. Hence the resurgence in MacOS share.

C++

Some of you may remember that I’m working on quantum gravity. Now it turns out that for the kinds of things I want to do — construct simplicial manifolds by the thousands and manipulate their geometry to insert masses and other objects; then read off the various attributes of these spacetimes and the objects therein — I am going very far down a very deep rabbit hole named computational geometry.

But lo, there was light and illumination in the dark tunnels of my madness, and its name is CGAL.

And CGAL is written in C++.

(Oh, sure, there are Python bindings too. But they don’t cover everything, and I haven’t tested all of their functions.)

But now that I’m down one rabbit hole, I may as well continue, and I’ve found much to my surprise I am enjoying re-learning and using C++. Luckily for me, the C++11 standard is here, and C++ really does feel like another language. CGAL makes fundamental use of generic programming, and the toolchain has gotten better too. With CGAL, C++, CMake, Doxygen and friends I am literate-ly test-kinda-driven developing my way for great good.

Clojure and Lisp are still lovely. But I can generate 5 million simplex complexes in 10-50 seconds on just my laptop, and if there ever was a need for speed and parallelization I have it. (Ah, julia, you are a lovely language, Y U No compile on MacOS?) And maybe someday we’ll have Quantum Gravity on your Desktop courtesy of BOINC.

Octopress++

I moved from Blogger to Octopress for a number of reasons.

  • Octopress is open source, works using git, and works well on GitHub. There are a ton of plug-ins and it’s easy to write your own.
  • I want to reclaim my network identity, and a platform that I can regenerate anyplace with just a git pull
  • Mirroring the move to C++, this blog is written very infrequently but read, well more often than it is written. So the overhead of a database and a dynamic site is not worth it.
  • Did I mention it works in git and GitHub? I live there these days. And the bash-it git aliases rock!
  • rake preview rake generate rake deploy then gall gca gpo source is a lovely workflow.
  • Lot’s of resources to get going.

Prismbreak++

We all kinda knew it. The internet is a vast info-trawl for almost anything, but especially all the private info people are trading away for services. Getting your own independent network identity is just the first step, but there are many, many others (such as using TrueCrypt for any cloud file storage on any files you care to keep private). There are also quite a few inconviences; after all there’s a reason folks use the privacy-invading “free” services, and no I don’t want Linux for my primary laptop. I’ll (possibly) have more to say on this later.

(If you are going to pick an operating system for privacy, the best choice is OpenBSD.)

Martial Arts++

I’ve been practicing martial arts of various types for quite awhile now. I’m fairly highly ranked in a few.

But the empirical evidence is in, and it is this:

To fight effectively, you need awareness, strength, quickness, toughness, calmness, cardio, and a whole host of attributes often listed on RPG sheets. To which skill in striking, grappling, and on the ground are musts.

I love Taekwondo and it’s spin kicks, but I am not deluding myself. You simply don’t learn to deal with most other forms of striking. You will have beautiful kicks, but someone with a few months of boxing will punch you in the face quite easily. And of course, any type of grappler that closes the distance (or, anytime you miss) will grab hold of you to your detriment.

I learned Judo and love the throws, but I’d rate it below Wrestling and Sambo in effectiveness. Primarily due to the new rules changes which forbid wrestling-style double and single leg takedowns.

And on the ground, of course, Brazilian Jiu-Jitsu is king.

All of these statements are pretty easily tested. You can personally test it by going to boxing clubs, wrestling workouts, and BJJ gyms and see how you fare in these areas. Or you can just watch UFC and see professionals do the same.

And if you object that all of these places have rules, and aren’t a real fight: please tell me why you think various dirty tricks will win the day for you, especially when you’re in an inferior position where your opponent can do the same back to you (but 10x worse).

I teach Hapkido at the university, and I’ve always enjoyed that Hapkidoja did learn techniques in all of these areas. I competed in Taekwondo and Judo, and Hapkido synthesized them all together. It was good for practical self-defense. I try to teach it as such.

(Yes, martial arts with sporting equivalents are superior. Nothing beats realistic practice.)

But times change and things develop, and it’s time to adapt and learn what works. And my BJJ academy, professor, and jiu-jitsu family rock!

Also, competing in BJJ is scary fun!