How to view crash logs MacOS

Leave a comment

If you build a build error in Xcode

Screen Shot 2016-02-01 at 8.47.58 AM

You can view these logs via a tool built into Apple OS.
Cd to the above directories and open the log files
> cd ~/Library/Logs/DiagnosticReports
> open ruby_xxx.crash

Screen Shot 2016-02-01 at 8.48.18 AM

You can then see from above code that you fail in ruby string.c land. Ruby version error.

This program is called the Console application and you can find it in your applications folder.

Screen Shot 2016-02-01 at 8.49.45 AM

Digital Revolution – Stockholm Tekniskamuseet

Leave a comment

Just had an awesome tour today of a killer retro computer display at the technology museum today.

That had Mac, Next machines, Mac with the lid off where you can see the signatures of the designers, Altairs, Commodore PET, it was all so cool. They even had my old Garfield phone.

Anyway, checkout the picts and display text if you are intro retro gaming. And if this display comes to your city be sure to check it out. It’s very cool.


Screen Shot 2015-07-26 at 4.44.35 PM

Screen Shot 2015-07-26 at 4.44.28 PM

Screen Shot 2015-07-26 at 4.44.22 PM

Screen Shot 2015-07-26 at 4.44.14 PM

Screen Shot 2015-07-26 at 4.44.08 PM

Screen Shot 2015-07-26 at 4.43.56 PM

Screen Shot 2015-07-26 at 4.43.51 PM

Screen Shot 2015-07-26 at 4.43.43 PM

Screen Shot 2015-07-26 at 4.43.38 PM

Screen Shot 2015-07-26 at 4.43.31 PM

Screen Shot 2015-07-26 at 4.43.26 PM

Screen Shot 2015-07-26 at 4.43.21 PM

Screen Shot 2015-07-26 at 4.43.17 PM

Screen Shot 2015-07-26 at 4.43.11 PM

Screen Shot 2015-07-26 at 4.42.59 PM

Screen Shot 2015-07-26 at 4.42.52 PM

Screen Shot 2015-07-26 at 4.42.48 PM

Screen Shot 2015-07-26 at 4.42.33 PM

Screen Shot 2015-07-26 at 4.42.27 PM

Screen Shot 2015-07-26 at 4.42.22 PM

Screen Shot 2015-07-26 at 4.42.16 PM

Screen Shot 2015-07-26 at 4.42.08 PM

Screen Shot 2015-07-26 at 4.48.44 PM

Screen Shot 2015-07-26 at 4.48.32 PM

Screen Shot 2015-07-26 at 4.48.26 PM

Screen Shot 2015-07-26 at 4.48.20 PM

Screen Shot 2015-07-26 at 4.48.15 PM

Screen Shot 2015-07-26 at 4.48.02 PM

Screen Shot 2015-07-26 at 4.47.56 PM

Screen Shot 2015-07-26 at 4.47.42 PM

Screen Shot 2015-07-26 at 4.47.35 PM

Screen Shot 2015-07-26 at 4.47.27 PM

Screen Shot 2015-07-26 at 4.47.18 PM

Screen Shot 2015-07-26 at 4.47.12 PM

Screen Shot 2015-07-26 at 4.47.07 PM

Screen Shot 2015-07-26 at 4.46.33 PM

Screen Shot 2015-07-26 at 4.46.27 PM

Screen Shot 2015-07-26 at 4.46.20 PM

Screen Shot 2015-07-26 at 4.46.14 PM

Screen Shot 2015-07-26 at 4.46.09 PM

Screen Shot 2015-07-26 at 4.46.04 PM

Screen Shot 2015-07-26 at 4.45.57 PM

Screen Shot 2015-07-26 at 4.45.49 PM

Screen Shot 2015-07-26 at 4.45.44 PM

Screen Shot 2015-07-26 at 4.45.33 PM

Screen Shot 2015-07-26 at 4.45.27 PM

Screen Shot 2015-07-26 at 4.45.20 PM

Screen Shot 2015-07-26 at 4.45.13 PM

Screen Shot 2015-07-26 at 4.45.06 PM

Screen Shot 2015-07-26 at 4.45.00 PM

Screen Shot 2015-07-26 at 4.44.54 PM

Screen Shot 2015-07-26 at 4.44.44 PM

XP is the Mac of Agile


When Apple released the Macintosh it changed the face of computing. Graphical user interfaces, drag and drop icons, clickable menus. Since its release, the personal computer has never been the same.

The same thing happened with the release of XP. Like an earthquake, it shook just about everything we traditionally believed and practiced in software delivery down to its core.

And then both failed.


The Mac got displaced by the cheaper IBM PC Junior.
And XP was pushed to the side by the less threatening Scrum.

In this article I would like to explore why Scrum has become so popular, the challenges this popularity brings to Agile, and why, like the Mac, I don’t think we’ve heard the last of XP.

Maintaining the Status Quo

One reasons I believe Scrum has grown so popular, is because unlike XP, it struck the right balance between maintaining the status quo and change.

The first version of XP was threatening. If you weren’t a developer or a customer, it wasn’t really clear what your role on an XP project was. With developers and customers joined at the hip, XP teams delivered at a speed and level or quality, seldom seen outside of startups.

(Note: In reality we did many XP projects with analysts and testers but I want to make a point, so bear with me).


But this speed and efficiency came at a price. It radically changed the status quo.

  • Testers felt threatened because developers were writing tests.
  • Analysts questioned their role if developers were speaking directly with customers.
  • And Project Managers were perhaps the most disrupted. XP trivialized their best laid plans, and had them embrace the one thing they had been trained to eliminate on all software projects – uncertainty and change.

Scrum on the other hand was different. Instead of insisting developers and customers sit together and build software, Scrum said: “Why don’t you guys form a team, and ship something of value every 30 days.” It didn’t say how to do that. Only that working software every 30 days was the goal.

This was music to the established players ears.

  • Analysts could analyze.
  • Testers could test.
  • Project Managers could PM.


I call this Corporate Scrum. Everyone could pretty much do exactly what they did before, but now in shorter 30 day cycles. Much less radical. Way more status quo.

Where XP alienated. Scrum embraced.

The challenge with Scrum

This of course lead to some challenges. Scrum is all about planning. It doesn’t talk engineering. This lead to a lot of Scrum teams doing the easy stuff (daily standups and Sprint planning), while failing on the hard (consistently delivering high quality working software).


Planning is easy. Delivery is hard.

And I think the Scrum community itself could do more here. Not highlighting, or actively promoting the XP practices around unit testing, refactoring, TDD, and continuous integration runs the risk of seeing the term Flaccid Scrum grow in popularity.

The Tribal knowledge of XP

And I think us XP’ers can do our part by sharing our stories and wisdom around practices like:

These euphemisms are too important to forget. And the spirit and technical excellence that contributed to XP’s early success will be necessary for Scrum too.

This is the beginning. Not the end

So while XP feels like the Apple Macintosh of the 90s, it would be premature to write XP off. Many of its ideas are only now becoming widely accepted. And many more are only just beginning to re-emerge.

It may never reach the heights today’s Mac, or displace the IBM PC Junior that is Scrum, but its influence and spirit are still being felt, and will be, for years to come.

How to install minecraft forge for mac


This was a frustrating process for me, but I finally got it.

Watch this video. It’s good and may give you everything you need.

If not (there were a few extra things I needed to do) read on.

1. Download minecraft forge.

Goto and download the ‘Installer’ for the most recent recommended version (1.6.4 at this time of writing).

To skip the adds, click the ‘*’ beside the word ‘Installer’ on the ‘1.6.4-Recommended’ and download the jar file (it will save to your downloads directory).



2. Save old profile.

The next thing we are going to do is save your current minecraft configuration, before blowing it all away with the new minecraft forge client.

Open up your ‘finder’ and click ‘Go to Folder…’


Then type in exactly exactly what you see below into the textfield and hit the ‘Go’ button.


This will take your to your minecraft application directory where your profile is stored (sorry, I forget to mention you will need to install minecraft on your Mac first before installing forge).

Once there drag and drop these files and folders to your desktop.



Then blow everything else away in the directory.

3. Create forge profile.

Now start your minecraft application. This is going to download the latest minecraft version.

Now here is where things differ from the video. If your minecraft client version (1.7.3), is different from the latest forge version (1.6.4), it’s not going to work (at least not yet).

We need to create a 1.6.4 profile (the same version as forge) and then things will work.

So if your latest client version differs from the forge version, create a new profile matching them up.

For example to to create a 1.6.4 profile, click ‘Profile Editor’ at the top of your login screen.
Then click ‘New Profile’.


Then file in the profile name (pick whatever you want, maybe put 1.6.4 in there so you know the version), and then select ‘release 1.6.4’ for the Use Version, and then ‘Save Profile’.


Now you have a compatible client that is going to work with your forge!

No you can go back to your login screen, select your new 1.6.4 profile, and login.


Click ‘Quit Game’ and shut down your minecraft launcher (Command-Q) or right click quit in your application toolbar.


4. Install forge client

Drop the files we dragged to the desktop earlier, back into the minecraft application folder we deleted everything from earlier.


Select ‘Apply to All’ and then ‘Replace’


Then double click your minecraft forge jar file that we downloaded at the start (downloads directory).


If you get this warning message


Open your ‘Finder’ and go to your ‘Downloads’ directory manually and ‘right-click’ on the jar file and select open


The click ‘Open’ to run the installer


Click install client, and make sure that the path in the install directory points to the directory where we stored all your profile stuff. It should look something like this:


We are almost there! Click ‘OK’.

You should then see a completion window that says ‘Successfully installed client profile …’

5. Create client forge profile.

Open up minecraft. In the profile areas, a profile option should now appear!


Select that. Click the ‘Play’ button. And congrats! You should be in.


You can tell your are running forge by the data in the bottom left hand corner.

6. Installing mods.

Forge mods go in the ‘mods’ folder in that directory we where looking at earlier where we did all our profile stuff.



This is where you put your forge mods.

That’s it for now! Happy forging!

How to setup minecraft server on a mac – Part 1: Setup Server


These instructions are based on the official mac instructions at minecraft site.

If you don’t need much help, go there. But if you like pictures, start here.

This is the first part of a three part tutorial:

  • Part 1: Setup Server
  • Part 2: Setup Local Client
  • Part 3: Setup Internet Client

Part 1: Setup Server

Download the minecraft server jar file.

Create a directory called ‘server’ and drag the jar file in there.


Make a command file

To make it easy to start your server, we are going to create a ‘start.command’ file. Double clicking this file will launch your server.

Open TextEdit (/Applications/TextEdit).

Set the format to plain text.


Copy in the following text.

cd "$(dirname "$0")"
exec java -Xmx1G -Xms1G -jar minecraft_server.jar

Be sure to change the minecraft_server.jar to match the name of the jar in the directory (in my case minecraft_server.1.7.4.jar).

Save it in the same directory as your jar file.


Make this command executable by opening a terminal (/Applications/Terminal) and typing

chmod a+x

with a space after it. Drag and drop the start.command file into the terminal window and then press enter.


Double click the start server to start the server.

If all works a new server window will open and you will see several errors about missing files and directories – don’t worry this is fine.


Congrats! You’ve setup the server. Next we are going to configure Time Capsule so your server runs for everyone on your network.

If you ran into problems, check this troubleshooting section for fixes.

Troubleshooting server setup

Unable to access jarfile error

If you got ‘Unable to access jarfile’ when double clicking the start.command file,


the filename in your start.command file doesn’t match the jar file name on disk.

Fix this by opening the start.command file


and changing the filename to be correct (make sure you get the numbers, in my case, 1.7.4 included in the file name).


Rich-text-format error

If your text file keeps wanting to rename itself start.rtf, it’s because you haven’t made the text file ‘plain text format’. Go over the instructions again above, and make this file plain text format.

Configure Time Capsule

Before any clients can connect to our server, we need to configure Time Capsule to keep a static local IP address, and tell it what port number our server is going to be running on.

You may need your mom or dad for this step (because it will require Time Capsule password).

Open System Preferences > Network


Click the advanced button in the lower right hand corner. And then the ‘TCP/IP’ tab.


Where it says Configure IPv4, change that option to ‘Using DHCP with manual address’.

Change the IP address to 10.0.1.x, where x can be any number from 1 to 100.

Note the address you type here: 10.0.1.x. You are going to need it later when we setup the Airport Utility

Hit OK and go back to ‘System Preferences.

You may need to save your changes before leaving the ‘Network’ preferences first. That’s OK.


Now go to the ‘Sharing’ section of System Preferences and make sure that Internet Sharing is on.


Do this by first clicking on ‘USB Ethernet’


And then double clicking ‘Internet Sharing’ on the left hand side. When it asks you if you really want to enable Internet Sharing say ‘OK’.


Now, open up AirPort Utility and edit your Time Capsule settings.



Click the Time Capsule image and then the ‘Edit’ button in the lower right.

Go under Network and make sure the option Router Mode is set to DHCP and NAT. Now, click the + button under the Port Settings.

Type in the following:

  • Description: Minecraft Server (or whatever you want to call it)
  • Private IP Address: The address you chose for the 4th step.

Change everything with the word port in it to 25565.


It should look something like this now.


Now hit ‘Update’ and update the Time Capsule.

OK. At this point you should be good.
You have a server.
You have a router that knows about your server and won’t try to change your IP address.
Next we are going to setup the local client.
And then after that the internet client.

Coming soon.

Part 2: Setup Local Client
Part 3: Setup Internal Client

How to setup, install, and connect to a minecraft server on a Mac


My sons really like minecraft. So this weekend (with the hopes that they will learn something about the internet) I figured out how and host your own minecraft servers on the Mac.

This article is for moms and dads who are looking for instructions on how to setup and host minecraft servers for their kids. It will help if you know a little bit about programming and the internet. Of course eventually the hope here by having mom and dad setup a server, the kids will learn about programming and the internet, and will be able to get jobs and no longer rely on mom and dad (hurray!).

Anyways, here are some bare bones instructions on how to get this going on a Mac.

Step 1: Download minecraft server

Download the jar file version near the bottom. Once downloaded, unzip, open a ‘terminal’ and type:

> java -Xmx1024M -Xms1024M -jar minecraft_server.jar

Replacing minecraft_server.jar with whatever version of minecraft your downloaded.

This command starts the server. Once running your are in effect hosting a minecraft server on your machine.


It will create a whole bunch of files and directories. To stop it type:

> stop

Step x: Create a server


Step 2: Setup port forwarding

If others are going to connect to your server, they are going to need an address on where to connect to. Port forwarding enables your kids friends to directly connect to your computer by forwarding the data on through your wifi router (which masks it) to your computer.

Download Port Map.


Unzip it, install it, run it, and configure it as follows:


Step 3: Turn off your firewall

Open preferences -> Security

Screen Shot 2013-09-08 at 8.06.41 AM

You may need to click the lock at the bottom, enter you account password, turn off, and then save changes.


Step 4: Connect

Go back to Port Map and write down these numbers depending on whether you are connecting via local wifi or internet:



Then have your friends fireup the minecraft clients and ‘Directly Connect’ replacing the numbers below with your own as follows:





Note: Public port number may be different than local.


Wifi means you are all on the same local Wifi network.
Internet means your friends are at home across the city.

Voila! If all goes well you should see a screen that looks like this:


Trouble Shooting

If you fail to connect – don’t despair. There are lots of other videos and how-tos out there. I created this one specifically for the Mac because no one told me about the firewall step.

Keep googling, keep trying stuff, and have fun!

How to resize a mac window to exact dimensions

1 Comment

Here are two tricks to resizing a window to exact dimensions.

1. Safari

Open up a safari window and drop this in the URL field:


2. Applescript

Open up your Applescript editor and run this command:

tell application "Xcode"
set the bounds of the first window to {140, 0, 1160, 775}
end tell

You need the application you want to resize open. I found this useful for setting screen sizes for video capture.


How to create a UNIX bash script on a mac


The ability to create and make your own custom bash scripts is on of the biggest advantages to working off a unix based operating system (like the mac).

You can take just about any mundane, or complicated task, and easily automated it by learning how to create your own bash scripts.

In this post I am going to show you how to create a bash script called:

(which recursively search all files for text containing xxx (very handy)) and call it from anywhere on your computer.

Setup your environment

Go to your home directory:

$ cd ~

and make a directory called scripts (this is where you will store your scripts):

$ mkdir scripts

Then if you don’t have one already, create a .bash_profile file (in your root directory) and add the following line:

export PATH=$PATH:~/scripts

This puts the directory you just created into the unix $PATH variable which lets you call your scripts from anywhere on your machine.

To register this new path you may need to go:

$ source .bash_profile

You can then check your new path by typing:

$ echo $PATH

If all is well you should see your new directory in the output.

OK. We are now ready to create your script.

Create your script

To create your script go back to that scripts directory your just created and using your favorite text editor create a file called ‘’

echo "Searching for text:" $1
find . -type f -exec grep -il $1 {} \;

And give yourself permission to execute it using the following command:

$ chmod 711

That’s it! At this point you are basically done.

You should now be able to run this script from anywhere on your box.

To test it out, navigate to some directory containing a lot of files and text and search for something.

Here is the output I get when I search my rails app for ‘README’

Searching for text: README

Add your aliases

You can also add aliases to your .bash_profile to help make your life easier.

alias dev='cd /Users/jr/Documents/dev/rails'

Now I can type ‘dev’ and instant be taken to my development directory.

For more information on bash and scripting click here.

%d bloggers like this: