Basic Boot Camp Setup
Friday October 18th 2019, 4:41 am
Filed under: Windows

Step 1. Back up your Mac hard drive before proceeding! Boot Camp usually does a good job of not disturbing your existing Mac files, but altering hard disk partitions always carries some risk of erasing all your data.

Step 2. Get a USB stick with nothing important on it. As part of the installation process, the Boot Camp Assistant will find Windows drivers for your hardware and copy them there.

Step 3. Download the Windows 10 install media as an ISO file. (It’s free to download; you can activate it later.)

Step 4. Insert your USB stick and run the Boot Camp Assistant.

Step 5. Select the ISO file and choose your partition size. (I recommend no less than 80GB, and ideally 120GB or more.) Click Install to begin the process.

Step 6. Reformat your USB stick if the Boot Camp Assistant asks you to.

Step 7. Reboot the Mac holding down the option key to boot to Windows.

Step 8. Install the Windows hardware drivers that the Boot Camp Assistant copied to the USB stick.

Comments Off on Basic Boot Camp Setup

Repair Windows Boot Drive
Wednesday November 01st 2017, 7:59 am
Filed under: Windows

Mess around with Windows partitions enough and you’ll get in a situation where Windows is otherwise undamaged but refuses to boot. Here’s a common fix. (As always, back up your data before touching drive partitions–a single mistake can easily erase everything.)

Step 1. Create a recovery USB drive if you haven’t already.

Step 2. Boot off the recovery drive and go to Advanced Startup Options > Command Prompt.

Step 3. Type:

bootrec /FixMbr
bootrec /FixBoot
bootrec /RebuildBcd

Step 4. Restart and attempt to boot again. If this didn’t work, see here for more helpful terminal repair commands you can try with the recovery drive.

Comments Off on Repair Windows Boot Drive

Resize Boot Camp Partition
Monday October 30th 2017, 10:47 am
Filed under: Windows

After creating a Windows Boot Camp partition on a Mac, you might eventually run out of space and want to make it larger. Here’s how to do it without reinstalling Windows. ***Remember to back up first, because a mistake here could erase all data on your machine!***

Step 1. By default, newer versions of OS X have System Integrity Protection, an anti-malware feature that doesn’t let you perform certain modifications to your partitions. Reboot to your Recovery Partition, start the Terminal, and type:

csrutil disable

Step 2. In OS X, shrink the size of your Mac boot partition using the Disk Utility GUI, and reboot.

Step 3. OS X will automatically format the new unused space as HFS+, and we want this space available for Windows, so go to the Terminal and type:

diskutil list

Find the partition you want to erase—probably disk0s4, but double-check that the size is correct—and then type:

sudo diskutil eraseVolume Free\ Space null disk0s4

Step 4. Right now your Windows partition will be temporarily rendered unbootable. To fix it, while still in OS X, download and install the gdisk utility.

Step 5. Type:

sudo gdisk /dev/disk0

Step 6. ***If you get any error messages at this point, stop!*** Otherwise, carefully enter the following (adapted from this forum thread):

r <enter>    go to the recovery & transformation menu
h <enter>    create a new hybrid MBR
5 <enter>    add partion 5 to the MBR
y <enter>    set up EFI boot
<enter>      accept the default MBR hex code of 07
y <enter>    set the bootable flag
n <enter>    do not protects more partitions
o <enter>    review (but don't apply) the changes

Step 7. If this went according to plan, you should see two partitions: one type EE and one 07, with the 07 entry marked with * under Boot. If this is what you see, apply the changes by typing:

w <enter>    write partition table to disk

Step 8. Now reboot into Windows and install the free version of Partition Wizard.

Step 9. Click on your Windows partition, click Expand Partition, and choose the unallocated space you erased in Step 3.

Step 10. Click apply and then restart Windows to complete the changes. You should now see the new space added to your Windows partition.

Step 11. Optional final step, reenable OS X SIP. Boot to your Recovery Partition, start the Terminal, and type:

csrutil enable

Step 12. Troubleshooting: If something has gone wrong and Windows is no longer bootable, try these repair steps to recover.

Comments Off on Resize Boot Camp Partition

Making Sense of Unity Timeline
Friday September 15th 2017, 6:46 am
Filed under: Unity

1. Create a new Timeline file in your Project pane.
2. Create an empty GameObject (named, for example, TIMELINE) and select it in the Hierarchy pane.
3. Add a Playable Director component to the TIMELINE object.
4. Drag the Timeline file from your Project pane to the Inspector field of the TIMELINE object.

5. Add an Animator component to each GameObject in your scene you want to control with the Timeline. (You don’t want to add a Playable Director to each GameObject.)
6. In the Timeline pane, add tracks to your Timeline file and give them helpful names. (Don’t try to drag/drop in the Timeline pane, even though that seems intuitive.)
7. Select the TIMELINE object in the Hierarchy and drag each GameObject you want to control to the track in the Inspector, not the Timeline pane.

9. Finally, you’re ready to hit the record button on a track and animate some properties.
10. Save the Timeline file and press Play to see your changes.
11. You can’t edit Timeline track keyframes in the Timeline pane’s keyframe view. Edit them individually in the Animation pane, or select and reposition multiple clips with the Timeline pane’s clip view.

Comments Off on Making Sense of Unity Timeline

Creative Coding Map 2017
Wednesday August 30th 2017, 12:18 pm
Filed under: Concepts

Comments Off on Creative Coding Map 2017

JavaScript in Max/MSP/Jitter
Saturday April 22nd 2017, 7:56 pm
Filed under: Realtime
"use strict";

// ~ ~ ~ these variables are built-in ~ ~ ~
inlets = 3;
outlets = 3;
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

var nowTime = 0;
var lastTime = 0;
var deltaTime = 0;
var timeCounter = 0;
var timeMax = 10;
var firstRun = true;

// ~ ~ ~ these functions are built-in ~ ~ ~

// this runs when the object is first loaded
function loadbang() {

// this runs each time the object receives a bang
function bang() {
    if (inlet === 0) {
    } else if (inlet === 2) {

// this runs when the object receives a float message
function msg_float(data) {
    if (inlet === 1) {
        timeMax = data;
        outlet(1, timeMax);
        post("new max: " + timeMax.toFixed(2));

// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

function init() {
    if (firstRun && typeof jsarguments[1] === "number") {
        timeMax = jsarguments[1];
        firstRun = false;
    nowTime = new Date().getTime();
    timeCounter = 0;
    outlet(0, timeCounter);
    outlet(1, timeMax);
    outlet(2, bang);

function update() {
    lastTime = nowTime;
    nowTime = new Date().getTime();
    deltaTime = (nowTime - lastTime) / 1000.0;
    timeCounter += deltaTime;
    if (timeCounter < timeMax) {
        outlet(0, timeCounter);
    } else {
Comments Off on JavaScript in Max/MSP/Jitter

Blender Keyboard Shortcuts
Sunday November 06th 2016, 10:13 am
Filed under: Blender

I find the default keyboard shortcuts in Blender very frustrating. Here are a list of changes that I prefer, adapted from Nimble Collective’s excellent video tutorial.

Step 1.
File > User Preferences > Input > …

Step 2.
Select With: Left

Step 3.
3D View:

  • Rotate View: Alt-Left Mouse
  • Move View: Alt-Middle Mouse / Alt-Cmd-Left Mouse
  • Zoom View: Alt-Right Mouse

Step 4.

  • Pan View: Alt-Middle Mouse / Alt-Cmd-Left Mouse
  • Zoom 2D View: Alt-Right Mouse

Step 5.
Image > Image (Global):

  • View Pan: Alt-Middle Mouse / Alt-Cmd-Left Mouse
  • View Zoom: Alt-Right Mouse

Step 6.
Search Box: [loop select] > Mesh > Loop Select:

  • Select: Double Click

Step 7.
File > Save Startup File

Comments Off on Blender Keyboard Shortcuts

MIDI Over a Network (Win)
Friday November 04th 2016, 7:01 am
Filed under: Midi

Windows doesn’t come out of the box with support for MIDI over a network, but you can add it with Tobias Erichsen’s rtpMIDI driver.

Comments Off on MIDI Over a Network (Win)

Inter-Application Midi (Win)
Friday November 04th 2016, 6:35 am
Filed under: Midi

Windows doesn’t come set up out of the box for inter-application MIDI, but the capability can be added with free software. The process has gotten more complicated, however, on recent versions of Windows.

Step 1. Download the MIDI-Yoke driver.

Step 2. Right-click on the installer and choose Troubleshoot compatibility.

Step 3. Click Test the program. Unintuitively, this will actually perform the installation.

Step 4. Reboot.

Step 5. Download and install the MidiMapper utility.

Step 6. Choose a MIDI-Yoke port using the MidiMapper to enable inter-application MIDI.

Comments Off on Inter-Application Midi (Win)

Raspberry Pi Setup
Friday October 14th 2016, 6:13 am
Filed under: Raspberry Pi

1. Current lineup is:
* $20 for RPi A+ (1 x 700MHz, 256MB RAM)
* $40 for RPi 2B (4 x 900MHz, 1GB RAM).
They both have the same GPU, but the 2B is by far the best value because you can assign the GPU much more RAM. This guide is for a 2B with at least 8GB storage.

2. Basic RPi 2B kit with power supply, case, SD card, wifi dongle, and some cables can be had for $60-70. I used a Canakit. Generally cheaper than acquiring each accessory separately. Good for a fast first-time setup; if you need to, you can invest in better components later.

3. Some useful hardware accessories; a compatility list is maintained at …
* faster SD cards can greatly improve system performance.
* The image quality of the in-house PiCam camera accessory isn’t exceptional, but with a direct bus connection it’ll run faster than third-party USB cameras. It also comes in an infrared version.
* An HDMI dummy dongle fools the OS into thinking a monitor is connected, which can speed things up when running headless and sharing the main display.

4. NOOBS is the boot utility, Raspian is the OS. If your RPi didn’t ship with a preformatted SD card, you’ll need to install it yourself from … Default install settings are fine.

5. The first time you set up, you’ll need a keyboard, mouse, and monitor. (Well, strictly speaking the mouse is optional.)

6. First thing, run sudo rpi-update (firmware) and then sudo apt-get update/upgrade.

7. Then run raspi-config:
* Change the default password
* Enable ssh
* increase GPU memory to 1/4 of total (if working with graphics). You can go higher by editing the config file …
* Change hostname (don’t use an underscore, or you’ll have to fix the hostname by editing the config files … and … )
* Enable camera, if you have one.

8. Wifi will not autostart the first time. Add auto wlan0 to config … now it will try wifi at boot.

9. If you’d like to preload ssids to connect to, enter them into the config file …

10. Reboot and test your network connection and ssh.

11. Install vnc server. Most guides use tightvncserver, which lets multiple users connect to their own desktops but can’t share the main screen. For most cases x11vnc, which shares only the main screen and runs much faster, is a better choice;

12. Add lines … to config … so vnc will run on boot.

13. Reboot and test vnc.

14. To connect headless more easily, you can set a static IP. Or if you have access to your router, you can reserve one for the Pi’s ethernet or wifi MAC address.

15. Right now, no popular RPi VNC viewer will let you view OpenGL graphics–apps will run, but the window will be invisible to you. To work with OpenGL you’ll need a monitor connected.

16. Vnc without a firewall is extremely insecure; even if you keep nothing of value on the RPi, it could still be used to attack your network. So install ufw.

17. Before starting ufw, tell it to allow the ports you’ll be using–for example, 22 and 80. (But don’t allow the unencrypted VNC port, usually 5900 or 5901–we want to block that!) You can also tell uwf to allow all ports on a trusted local network.

18. Start ufw. If you get something wrong and lock yourself out, connect a keyboard, mouse, and monitor and check ufw status. If you get stuck you can always disable ufw; it’ll stay off until you enable it again.

19. Reboot and confirm that you’re asked for your user and pass when you start a VNC session over SSH.

20. Reboot once more and confirm that everything’s working. Now you can disconnect your keyboard, mouse, and monitor and run your RPi headless.

21. Hard part’s over. Next, add some software tools, for example:
* Btsync
* Gphoto
* ffmpeg
* imagemagick
* PureData

22. Finally, set up dev environments for your favorite programming languages. The RPi comes with Python, but here are some more options:

* JavaScript:
Sublime Text

* Ruby

* C++:

* Java:

Comments Off on Raspberry Pi Setup