How to make parallettes

This is another one of those items which should be really simple to make. There are many ways one can make parallettes – a popular way being using PVC piping. I prefer wood for a variety of reasons, so that was what I used.

Ingredients and tools:

  • Chipboard (particle board), 16 pieces of approx. 10 x 20cm 18mm thickness
  • A broomstick or a wooden stick approx. 30mm in diameter
  • Some glue for wood and some clamps
  • A saw and a sanding device of your choice
  • 8 screws for wood, at least 50mm long
  • some glue and some sandpaper or rubber flooring

Time and cost:

wood – a few pounds, screws and glue – 2 pounds. Time: half an hour without glueing.


  1. This, again,  has to be one of the simplest pieces of equipment you can build yourself. All you need to make is a base on which you will attach a piece of a broomstick and make it stable. I started with 16 pieces of 18mm particle board, cut into approx. 10 x 20 cm pieces. The sizes don’t have to match perfectly at this point since you’ll do some sanding later. Make 4 sets of 4 pieces and glue each set together, one on top of the other. This way you will get your 4 bases. If you want your bases taller than this, scale the whole system up (twice the height = twice the size of each dimension of the pieces – so double the height = 4 times the base area!)
  2. When the glue has dried, sand the sides of your bases to make them smooth. I also sanded down the corners so I wouldn’t have any “sharp” accidents. Now, take your broomstick and cut two pieces of equal length. The stick doesn’t have to be too long (in fact, it shouldn’t be) – 50cm is plenty. Attach the ends of the stick to the bases. You want this connection to be strong, so don’t use glue – it is better to use nails, or, even better, strong screws. You can use a drill and a small wood bit to make holes which will help put the screws in more easily.
  3. To make the parallettes stable, you should put two screws on each end. Finally, if you intend to work with parallettes on a slippery floor, you can glue some sandpaper or some rubber below the base.

You can get a PDF of this manual here:How to make parallettes

Posted in Crossfit, Do It Yourself | Tagged , , , , , , , , , , | Leave a comment

How to make wooden olympic rings

Ingredients and tools:

  • 4 25 x 25cm 18mm thick plywood or very strong chipboard
  • Wood glue, a compass, a saw and a drill with a wide wood bit (16mm or more)
  • Sanding devices of choice, some paint (optional)

Time and cost:

wood – 3 pounds, glue and paint – 2 pounds. Time used (in my case) was a couple of hours.


  1. Get some wood as described above and glue two and two pieces together. The Olympic rings should be 28mm thick (toroid inner radius), so you can work from 36mm wood and sand it down to a nice shape. You want the wood to be quite strong, so use either plywood or get a strong variety of chipboard. The glue line will come in the center of the finished rings, so it won’t really affect the final strength. If you can get a single piece of wood that is 36mm thick, you can use that instead of gluing the pieces together.
  2. After gluing, draw the profile of the rings on one side of the wood. You can find the center of the square by drawing diagonals. The inner radius of the rings should be 90mm and the rings should be 28mm wide (so an outer radius is 118mm). If you can fit a marker in your compass, do so. If not, just put a line over the compass markings using your hand. Remember: measure thrice, draw once! Even though the circles are now 28mm wide, and the sides are 36mm, you needn’t worry. Sanding it all down will make it right. It can also be useful to make a compass line at 104mm (right between the two marker lines). This line can help when sanding, but is not necessary.
  3. Next step: cutting. This should be pretty straightforward. Use any kind of saw you have, just make sure it is powerful enough, since you are cutting a strong piece of wood. To cut the inner circle, it helps to first drill a hole with a drill and a wood bit inside of the inner circle (see image) and then saw from there. You don’t need to cut perfectly at this moment, just make sure you are outside of the lines.
  4. After you’ve cut both pieces, you can start sanding. This step can be either very easy or very difficult, depending on what kind of tools you have. I used a two-step process for rough and fine sanding. You can use a variety of tools here (belts, papers, hand-held sanders, flex machines, drills with sanding bits etc.). Take your time since this defines your final product. Make sure that you don’t “oversand”! If you do that, there is no turning back. If you want to make sure, take a caliper and check that the width never goes below 28mm (which should be the final width).
  5. Optional step – you can decide to protect and/or personalize your rings with some paint. My wife put a layer of thin protection and then painted the rings red to match the boxing bag. Attach some straps and start exercising!

    You can get a PDF of this manual here: How to make wooden olympic rings

Posted in Crossfit, Do It Yourself | Tagged , , , , , , , , , | Leave a comment

Exercise worksheet

I decided to make an exercise workbook to keep me “honest” with regard to exercising and eating. The workbook is made in Numbers and you are free to use it if you’d like. It is fresh and hasn’t got a database of foods yet. I will post an update after a month or so after the food database has grown considerably. In essence, it is a combination of some Numbers templates, some stuff taken off the web and some made on my own. Unfortunately, it can not be transferred to an Office version, since it doesn’t support plenty of stuff integrated (pop-up cells and similar). Sorry, windows users – I might work something out later, but didn’t do so yet.

You can get the file here: Dropbox

Here is a short explanation of the different sheets:

  1. Workout tracker – Day by day, this tracks the volume of your workouts. It also gives a summary and a chart of what you have done. In the “workouts” chart you can select from Weight training, running, swimming, cycling and biking. You can add your own sports if you know how to. I think of this as of a motivational slide to keep you going.
  2. Weight tracker – this will log your daily weight and body fat percentage. After you enter your personal information, it calculates your basal metabolic rate and your total energy expenditure. The “recommended intake” is for those who want to lose quite some weight. There are two graphs showing your progress and giving trend lines. In the chart where you enter daily stats, you can again chose from the same sports, this time with distance and time spent on them. This is used to calculate the calories you burnt, in case you don’t know already (with the help of a HRM or something else).
  3. Food intake – here, again, you enter your info and get some calculations and estimates. It also calculates how much proteins/carbs/fat you should have on a daily basis (by a 40-40-20 percent formula, you can alter this). In the daily calculation chart, select a food you have eaten (only two foods at this point – add your own or wait for an update with a larger database) and the sheet calculates everything. Finally, at the end of the day, put the sums in the yearly tracker to monitor your intakes.
  4. Running log – I added this one since I plan to start running more. Enter data in the running log and you will see your distance/pace by the day, as well as total distances. At the beginning of a month, you can set distance goals and see how far you are from them as the month progresses.

That explains most of the workbook – I hope it helps somebody! Wait for an update (or send a comment if you desperately need one) with a larger food database. I may also add a few fancy bits here and there just to make it look nicer.


Posted in Crossfit, Cycling, Running | Tagged , , , , , , , , , , , , | Leave a comment

How to make a plyometric box

Ingredients and tools:

  • Chipboard (particle board) or plywood, size depends on what you want
  • Screws and glue for wood
  • A drill with a small wood driver (optional)
  • Electrical tape and some foam in a roll (optional)

Time and cost:

wood – 8 pounds, screws and glue – 2 pounds, tape and foam – 1 pound. This one is a little over 10 pounds in total. Time: an hour.


  1. This has to be one of the simplest pieces of equipment you can build yourself. I didn’t make a “pyramid” box simply because by making it this way you get a 3 in 1 box. Flip it the way you like and there it is. I decided to build a 50-65-75 cm box. To build it, use at least 18mm thick wood (thick chipboard in this case). Let’s say the sizes of your box are A,B,C (A being the largest, C smallest) and the thickness of wood is W. The dimensions of the pieces you should cut are:
    • 2 pieces of A x B – in my case 75 x 65
    • 2 pieces of A x (C-2W) – in my case 75 x 46.4
    • 2 pieces of (B-2W) x (C-2W) – in my case 61.4 x 46.4
  2. When the pieces are cut (or bought in the exact dimensions you need), you can start building from bottom up. Start with the largest piece. This is your base. About a cm away from the edge start putting in screws. Note: the length of the screws you buy should optimally be 3 times the width of the boards – so for an 18mm board, you get 54mm screws. Putting the screws in can be made easier if you make small holes with a wood driver first. Don’t make the holes too large! You can see the image and get a feeling for it. The screws can be some 5-8 cm apart.
  3. Once you have the screws in at least half way, you need someone to assist you (well, you could do it alone, but it would take a lot of time). Place the board in such a way that you can attach the side boards – either sideways or from the top. Start screwing the side walls in. You can add some glue in all the places where the wood connects for a slightly stronger box. Once the side walls are done, you should also connect them (mutually) with some screws. In the end, put the top on and screw it in. Try your box now – it should be very sturdy. If you feel unsafe about it, add more screws in it. The chipboard surely won’t break, the only thing that could are bad connections.
  4. In the end, you will use this box for jumping or similar exercises. As you know, if you hit a sharp wooden edge with your leg, it hurts. A lot. You can get serious injuries from failed attempts at high jumps. Here is an image I ran into on a crossfit forum from a guy who had this mishap (I hope he doesn’t mind I put it here). Secure the edges of your box with something – I suggest some foam in a roll and/or some electrical tape. A little protection is much better than no protection at all. That’s it, jump away!

You can get a PDF of this manual here: How to make a plyometric box

Posted in Crossfit, Do It Yourself | Tagged , , , , , , , | 4 Comments

Biased coins and Monty Hall

Time for a somewhat different post… yesterday I found an interesting interview question while browsing:

“Let’s say you were given a biased coin, but you don’t know how it is biased. How can you make a fair decision using the coin?”

I assume the author meant a 50/50 decision when he/she said fair. After thinking for a few minutes, I realized this could have been meant as an interesting pre/post-probability question. Let me explain. First of all, note that it doesn’t say how much the coin is biased. Therefore, you are allowed to make the assumption that it is completely biased – this always helps in thinking and calculation. Let’s say you ask someone to choose heads or tails before the coin is thrown. These are the possible outcomes:

  1. The person chooses heads, the coin is biased to heads
  2. The person chooses heads, the coin is biased to tails
  3. The person chooses tails, the coin is biased to heads
  4. The person chooses tails, the coin is biased to tails

Obviously, in two of these cases, the person would choose well, in two cases, he/she would lose. So, in fact, it is a 50/50 chance, no matter if the coin is biased, if you consider the person could choose what they wanted! I think, however, that the author meant a different kind of solution – one that makes the coin “fair”. The toss is considered “unfair” if you choose heads, but have no (or small) chance of getting it. This can also be done – flip the coin two times. If it ends up HT or TH, the result is the first one of the sequence. Note that both of these have the same probability. If it ends up HH or TT, continue flipping it again two times until you get HT or TH. This won’t work only in the case the coin is 100% biased.

There is an interesting way to solve this as a post-probability problem – you can first throw the coin and then ask the person – what do you think landed? If the coin is 100% biased, this is the same as asking “which way is the coin biased”. Obviously, you have a 50/50 chance of guessing, since there are only 2 options.

This reminds me of a more famous problem of this kind – the Monty Hall problem. The Monty Hall problem is a probability puzzle loosely based on the American television game show Let’s Make a Deal and named after the show’s original host, Monty Hall.

Suppose you’re on a game show, and you’re given the choice of three doors: Behind one door is a car; behind the others, goats. You pick a door, say No. 1 [but the door is not opened], and the host, who knows what’s behind the doors, opens another door, say No. 3, which has a goat. He then says to you, “Do you want to pick door No. 2?”

Let’s analyze a bit. Obviously, before anything happens, you have 1/3 chance of picking the right door. This is your pre-probability and is something that can not change no matter what happens. Hence, the probability the prize is behind some of the other doors is 2/3 (since probabilities always sum up to 1). This, also, always stays the same. Now, after the host opens one of the other doors, what happens? Let me sum up:

  1. The probability that you picked the right door is 1/3. If you stick to it, you will win this show one in three times.
  2. The probability that the prize is behind some other door is 2/3. After the host does his thing, there is only one other door left (but the probability remains 2/3). If you pick that other door, you will win 2 out of three times.

So, you should pick the other door! People often don’t believe this result. For those who do not, here is a small generalization. Let’s say you have a 100 doors and one holds the prize (the host know where it is). You pick a door (with a chance of 1/100). The chance it is behind some other door is 99/100. The host opens 98 doors which don’t hold a prize. Will you switch? Put this way, everyone would switch – but put with three doors, and it is hard to believe you should…

Posted in Science and Math | Tagged , , , , , , , , | Leave a comment

My new workout schedule

It is the time of the year when the holidays are over and it’s time for a fresh start. To motivate myself to train further, I will set three goals (often in three sports or disciplines). Aside from the usual crossfit routine, this year I will try these:

  1. I like to run and have been to some races (and I believe it keeps one fit), but, I have not been running in a while, so I will start a “couch to race” beginner 5K program. This is not too heavy on the body and comes mostly as a relaxation… there is a number of programmes out there, but what I found best in experience is the running times schedule. It is a 12-week program for people who have done little exercise lately. The first 8 weeks are based on time. The running should be gentle as far as effort goes, meaning it will be fat burning and aerobic conditioning. The idea is to keep the heart rate under 75% of heart rate max. The last 4 weeks are based on distance. At this point, you should be able to run pretty much the entire distance at leisure. If you want to use this schedule, please go ahead! The days of the week listed here are just for guidance – run on the days that best suit your schedule. Goal: a 5K race at the end under 20:00.
    Mon Tues Wed Thurs Fri Sat Sun
    W1 15min off 15min off 15min 20min off
    W2 15min off 15min off 15min 25min off
    W3 20min off 20min off 20min 30min off
    W4 20min off 20min off 20min 30min off
    W5 25min off 20min off 25min 35min off
    W6 25min off 30min off 25min 40min off
    W7 30min off 25min off 30min 45min off
    W8 30min off 30min off 30min 45min off
    W9 3 off 3 off 3 4 off
    W10 3 off 4 off 3 4 off
    W11 4 off 4 off 4 5 off
    W12 4 off 4 off 1 5K
  2. Earlier, I chose some training programs and tried to stick to them. Now, I a retaking a program called the TSC. It is a 90 day schedule which seems pretty well worked out. The diet proposed is basically a paleo diet, which is OK with me. After being in contact with the author, I learned that he doesn’t really want you to stick to the routine letter by letter, just to do the prescribed muscle groups on a prescribed day. I am not allowed to disclose any of the schedule details, but I will review it in full when it is done (in three months time). Goal: finish and review the program.
  3. Captains of crush grippers – I’d like to close #3 in a year. Arm health is a strong indicator of overall health! To read more about COC grippers, click here. Currently, I can comfortably close #2, but there is still a lot of work to do to go further. After researching the web for a while, I found a schedule which seems just right. I don’t have any grip equipment except grippers, so I’ll focus on that right now, but I might build some equipment later. Goal: multiple closes of CoC #3 in a year (long-term). The workout consists of these steps:Warm-up:
    • 6-8 repetitions on a very easy gripper each hand.
    • 6-8 repetitions with a very easy gripper each hand, but this time do it inverted.
    • CoC #1.5 Closes – 3 each hand, and 3 attempts inverted


    • CoC #2.5 (goal gripper) Attempts – 5 each hand, and 5 inverted too
    • Negatives* with CoC #3 – 3 negatives each hand, holding for 3-5 seconds each time
    • Braced or Choked Attempts* on CoC #2.5 – 3-4 each hand

    Routine Notes and Progression

    Keep to this program 3 times a week for 3 weeks, then add in another workout so you are using the grippers 4 times a week.  The next week, add in another day per week.  This should be 5 weeks in total, from where on you can take the advanced training (in a later post, when I get there). When feeling you can close more, try to increase the level (#2 to #2.5 etc.)


    To perform a negative, take a gripper that is one level above the one you haven’t closed yet, and use both hands and/or your legs to get the gripper closed, or as far closed as possible. Then try to keep it shut with just one hand!  The gripper will of course open up on you but try real hard to hold it for 5-7 seconds.

    *Braced close

    Set the gripper in your hand and use your other hand to press the handle into your palm very firmly and squeeze the gripper shut. The reason why ‘bracing’ the gripper makes it easier to close is because as you squeeze the handles together ‘un-braced’, they try to rotate in your hand.  ‘Bracing’ the gripper keeps those handles from rotating in your hand and you can exert more force that way.

There are more goals I’d like to accomplish, but this will come with time. To monitor the progress, I am making a spreadsheet which will note down all of the exercises and food intakes. I am not sure I can post it here (made in Numbers), but I’ll figure something out.

Always remember: do not push your body too hard! You need time to recover… if you do a lot and are then sore for 3-4 days, lower your training volume and/or intensity. Train smart.

Posted in Crossfit, Running | Tagged , , , , , , , , , , , , , , | Leave a comment

Wooden materials and usage

Surfing across the web, I often find tutorials on DIY equipment stating that it is made of plywood. Very often, the images shown on these tutorials clearly demonstrate that the author has actually used chipboard or another kind of material. There are many different types of wood one can get, but, in general, they can be put into 3 categories:

Chipboard (or particle board in the US) is an engineered wood product manufactured from wood chips, sawmill shavings, or even saw dust, and a synthetic resin or other suitable binder, which is pressed and extruded. Particleboard is a composite material (definition from wikipedia). It is usually found in widths of 10, 12, 16, 18, 19, 22, 25, 28, 38 and 58mm. In general, it is not used for furniture, although there are some parts for which it is preferable. The corners of this material are sharp and are mostly covered with a plastic tape.

There are high and low grades of chipboard. You can find different grades under different names, such as flakeboard, waferboard, fiberboard, hardboard, pressed wood etc. The price depends on the density and the quality of the board. If you select a reasonably dense and thick board, it will withstand a lot. I am making my plyometric box out of 18mm thick chipboard (next post).

As an example of a material often separated from particle boards, “Mediapan” is a commercial material made of finer dust and it is compressed more than usual boards. Also, it is produced in smaller widths (starting from 3.2mm). You can use it for more heavy-duty applications – in crossfit DIY you could make, for example, wooden rings. It is quite easy to repair, whereas the usual kinds of chipboard aren’t so.

Plywood is a manufactured wood panel made from thin sheets of wood veneer. It is one of the most widely used wood products. It is flexible, inexpensive, workable, re-usable, and can usually be locally manufactured. Plywood is used instead of plain wood because of its resistance to cracking, shrinkage, splitting, and twisting/warping, and its general high degree of strength (definition from wikipedia). Using thick plywood, you can build any piece of equipment you’d like. However, it is more expensive than particle boards, so use it only if you must (or want to). There are visually very distinct types of plywood, depending on how the layers are stacked and how thick they are. Sometimes the layers are stacked, but the wood is not cut perpendicularly to them or in parallel with them. One then gets the impression that the plywood is in fact hardwood, but this is not the case.

Finally, there is hardwood (and softwood). It is wood from angiosperm trees (It is a word that may also be used for those trees themselves: these are usually broad-leaved; in temperate and boreal latitudes they are mostly deciduous, but in tropics and subtropics mostly evergreen). This is just a piece of wood, not commercially produced or pressed into boards (although often cut into them). You will almost never need hardwood to build your equipment.

I hope this makes some distinction between different types of wood you can get and helps you choose more easily when you need to build something out of wood.

Posted in Crossfit, Do It Yourself | Tagged , , , , , , , , | Leave a comment

Building a composting box

Last year, my wife persuaded me to start composting in the apartment. Composting is very useful and ecological for a variety of reasons. It keeps away your organic trash and puts it to good use, you have no bad scents coming from your trash can and in the end you will obtain good fertilizing liquid for your plants, as well as some extra quality soil. Once you go over the psychological barrier of having live worms in your apartment (don’t worry, they won’t get out of the box unless you make them to), you’re practically done.

Everyone can make their own composting box cheaply with a little effort. Once you decide on the size (depending on how much organic waste you produce – look this up on the Internet if you’re not sure), you can start. A rule of thumb would be about 40 liters for an average household of two persons. This will be enough for your composters (worms) to digest the trash and turn into soil. So, let’s begin:

Ingredients and tools:

  • 1.5cm thick plywood (or chipboard): 43x50cm, 50x23cm, 40x23cm (2 pieces of each)
  • Bolts for wood, I used 4.5cm long + some glue for wood
  • A power drill with a small wood bit (optional) and a 20mm wood driver
  • Some transparent wood primer, some sandpaper and a brush
  • 2 hinges with bolts (should come with them, or get 12mm bolts for wood)
  • Some plastic netting for your openings and a bit of glue
  • Two pieces of wood to serve as legs (optional)

Time and cost:

wood – 4 pounds, hinges and bolts – 2 pounds, wood primer and brush – 4 pounds. Time used (in my case) was an hour to put it together and a few days to finish it up.


  1. After obtaining the wood, you can simply put the pieces together. Start from the base (43x50cm) and work your way up. Leave the top part aside at this point. Attach the sides to the bottom using some glue (to hold it at first and seal it well), and after that, using some bolts. I used a bolt approximately every 10cm apart for a secure connection. When connecting wood, you should use bolts which are 3 times as long as your wood is thick. Hence, for 15mm thick blocks, you should use 45mm bolts. To make threading the bolts in the wood easier, you can make small holes with a power drill and a small wood bit.
  2. Your worms will need good ventilation, so you should make holes in the box. You can provide adequate ventilation by making about 5-8 20mm (diameter) holes. Use a wood driver to make them. You should keep holes on different sides of the box (not all on one side), as well as different heights. I made three holes in the front, near the base, 3 in the back (also near the base) and 2 on one of the sides, near the top. I also constructed the top in such a way to provide some ventilation (later steps).
  3. After making the holes, your box is ready for some fine work. Take some sandpaper and sand it down so it is nice and smooth (if not already). Clean the box from dust and apply some wood primer with a brush. This will protect your wooden surfaces from moisture. Do the same to the top part, which is still not attached. To apply the primer, use a brush and follow the instructions on the can.
  4. When the primer dries, you can put the top on. I used two hinges placed on the inside of the box. This way, when the box closes, some space opens up on the back of the box. This is useful, as it provides more ventilation. Before screwing the hinges in, put some netting under them to cover the space that opens up.
  5. Glue some netting to all of your holes. Use any kind of glue that works for you (i.e. that you have lying around). I recommend using plastic netting to avoid any rust later in case you use metal.
  6. Your box is almost done. As a touch-up (not really required), you can add some small pieces of wood as legs, just so that it is not directly on the floor. Try filling your box with water to see if it is water proof (at least up to the level of your lowest hole). The legs don’t really need any waterproofing, so there is no need to cover them with the primer. I did not bolt the legs in, they were just attached with a bit of wood glue – in case I have to or want to replace them later. Place the box in a dry and dark place. The worms won’t get out – the box is protected and they’re scared of light.  Enjoy your box! You can get a PDF of this manual here: Building a composting boxPS. This tutorial doesn’t cover how to put any bedding, worms or any maintenance yet, but I plan to add that later on, once we get a set of new worms.
Posted in Do It Yourself | Tagged , , , , , | Leave a comment

Building my new lightweight bike

OK, so this post should have been there a year or so ago, but since I just started the blog, I’ll write a bit about my latest project – a bicycle. I have been a big bike fan for years, particularly interested in XC biking. It has been my great wish to build my own bike, so I started collecting parts little by little. The idea was to get the best and lightest part possible, within bounds of reason (you can always get a gram lighter for several hundred dollars more). The parts were collected from different shops, whenever I would find a discount. To keep track of it all, I made a table, an image of which you can see here. As you can see, it has been a year long project, with large financial investments. But, now I have my lightweight monster. The best part was putting it all together 🙂 I will add an image of the completed bike, as well as the total weight in full gear in a few days. As for the cost, you can imagine it is not too cheap. But with all the discounts and patience, not much was spent.
Update: a couple of bike images. The total weight with full gear (pedals, gps etc.) is about 9.2kg. Far away from the extremely low weight hardtails, but not bad… it can even fit in this list: WeightWeenies

Any questions, comments – fire away!

Update: the bike weighs 8.98kg in full gear, without a mounted computer!

Posted in Cycling, Do It Yourself | Tagged , , , , | Leave a comment

Mac OsX for (particle) physicists

Here is a tutorial on how to get everything you need up and running on a Mac if you are a particle physicist. The tutorial presumes you need the standard “tools of the trade” and have a freshly bought Mac. This tutorial was made on OsX 10.7.4. So let’s go:

1. Enable the ROOT user

This is something that always proves necessary in the long run. Root user privileges are useful when there is a need to tamper with system files, install some apps (as you will see later) etc. OsX sometimes has issues with enabling the root user, so it is best to do it in the beginning, to make sure it all works. Here is a short description of how to do it:

  1. From the Apple menu choose System Preferences….
  2. From the View menu choose Users & Groups.
  3. Click the lock and authenticate as an administrator account.
  4. Click Login Options…
  5. Click the “Edit…” or “Join…” button at the bottom right.
  6. Click the “Open Directory Utility…” button.
  7. Click the lock in the Directory Utility window.
  8. Enter an administrator account name and password, then click OK.
  9. Choose Enable Root User from the Edit menu.
  10. Enter the root password you wish to use in both the Password and Verify fields, then click OK.

2. Basic internet and computer protection

For basic internet traffic control, I suggest Little Snitch. It checks every incoming and outcoming connection and asks for permission of operation. Although a single license (lasts forever) costs 29.95 euro, I highly recommend this product. It also has a nice built-in network monitor so you can see everything that is going on on your computer.

For OsX protection, clean-up etc. you can use CleanMyMac. This nice little app includes more than 50 features (cleanup, caches, junk, app removal, login items etc.). It comes at a price of 29.95 euro for a lifetime, just as Little snitch.

3. Uninstall all the unnecessary applications

Personally, I uninstall all the applications from OsX that I find unnecesarry. These are (in my case) chess, DVD player, iChat, Image Capture, Mail, Photo Booth, QuickTime Player and Safari. Since these are system apps, it is not easy to delete them (can’t drag to trash). You can, however, use some apps like applceaner or CleanMyMac. They don’t do a perfect job, though. It is best if you delete it as root from terminal. For example, to remove Safari, you should:

Quit Safari and Restart
Open Terminal
cd /Applications/
sudo rm -R (or enter su account, then do it)
Enter your password
cd /private/var/db/receipts/
ls -al
Make note of the Safari BOM’s
Remove them One by one Typing: sudo pkgutil –forget PkgNameHere (ex: sudo pkgutil –forget

Next:    Launch Finder (see image below) and search your entire hard drive for the app name (hopefully unique, such as Skype)
You can narrow the search to specific folders or search your whole Mac
Searching “File Name” vs “Contents” usually provides better results.
Click the + button below the search term to add criteria
Click the search criteria drop-down and select “Other…”, then “System files”
Click the “aren’t included” and change to “are included”
Sort by name, kind, date, etc. to identify components of the app
Delete all files and folders related to the app.
Don’t empty your Trash until you’ve determined that everything is working OK.
A reboot might be necessary to completely remove some apps.

4. Web browsing, design, SSH/FTP, e-mail

My usual web browser choice is Firefox. You chose what you like… A html editor with a WYSWYG (what you see is what you get) interface I use is Kompozer. This page was made in it as well. For an FTP/SSH client, I use cyberduck (small and free). Finally, the e-mail client which is absoultely best is Thunderbird.

A few words on updates, add-ons etc.: I use the theme called Silvermel (for free), it gives a nice look to FF/TB. You also want to add the JAVA applet plug-in as well as the QuickTime plug-in and the Flash plugin. Another useful plugin will be RealPlayer. For TB I also use a plug-in called Folderpane Tools, which allows customization of folders. To avoid many of the steps in setting up your accounts in TB, you can port them from your old computer. In /Users/[user name]/Library/Thunderbird/Profiles you can find a folder with a name that looks like [something random].default. Make a copy of the entire contents of this folder on the old computer. On the new computer install Thunderbird and START IT. After starting, close it, and locate your ../Profiles folder. Copy the contents from the old computer. This copies mails, preferences, passwords, themes, extensions etc. Also, get the bookmarks from your old Firefox (.json files). If you go to “Show all Bookmarks -> Import and backup” you can find all you need.

Finally, if you connect to any SSH servers that require keys, or just want to add your key (id_rsa) to connect to anything, don’t forget to put it into .ssh. You should set the permissions on it to 700.

5. Productivity software – Adobe, Office, iWork

To read PDFs, you can use Preview, but it is more convenient to have Adobe Acrobat. The Pro version is very expensive, but you can always just get the free Acrobat Reader. For presentations/documents/charts you can mostly use LaTex, but sometimes other suites come in handy (especially for documents other people make). To maximize compatibility, I use MacOffice and iWork. If you want to go free of charge, you can always use OpenOffice, but it will not have some of the nice options of commercial programs and it will sometimes have compatibility issues.

6. Xcode

Xcode is a collection of compilers, header files, libraries, and software development tools. You definitely want C compiler so that you can install standard Unix software. Xcode is freely available here if you sign up and get a developer account. Starting from Xcode 4.3, the command line tools (the make command, for instance) are no longer shipped with Xcode by default, but they have to be downloaded manually.

To do so, open Xcode, then click on the Xcode bold menu next to the , then Open Developer Tool → More Developer Tools…
You’ll be presented with a webpage where you can download the Command Line Tools for Xcode. Download the dmg, open it, then double-click on the package to install it.

7. (Mac)TeX

I can’t imagine computing without Tex. MacTeX TeXnical working group created an easy-to-install TeX distribution for for MacOSX. Go to The MacTeX Distribution page to download it. The package is very big, but it also contains a Mac-like application that combines the editor and previewer called TexWorks. Bibtex, spell checker etc. are included in the distribution.

Additional software I use includes the KOMA script – to install, unpack the tds file and copy contents (as root) to your texmf tree (mine is in /usr/local/texlive/2011). After the copy, run texhash. Other packages can be installed in the same way. Packages I also use are totcount, layaureo, lettrine and skak.

As for additional fonts, I get the free fonts from exljbris and some additional fonts from Adobe (Garamond Pro, Gill Sans etc.) but you have to pay for these.

8. Application cleanup

Time for some cleanup (important for later steps). You have installed a number of applications – go to the applications pane and sort the apps the way you like in additional folders. I usually make folders like “Programming”, “Productivity”, “Utilities”, “Home” etc. If you make some hard links (like we will do with fink) and then change the application location, things might stop working. So do it now, and then after installing any additional components. Also, I usually install Alfred, which is a nice local search engine and launcher.

9. Porting Unix applications

Mac OS X is based on a variant of Unix called Darwin. Many Unix applications had been ported to Mac OS X already. Fink package manager automates the process of downloading the binary package, or downloading source package, applying a patch, compling, and installing it. Fink was designed carefully as to not disturb or modify the system. It can be uninstalled with a single command ‘sudo rm -r /sw‘. You can use fink to get imagemagick for graphics editing. After installing imagemagick get gimp for all the graphical manipulations you might need.

NOTE: I always install all the software that needs compiling from source in a special folder (usually I create /opt). The reason is simple: this software might not work on other architectures (new computer), so it is best to keep it separated from everything else.

At this point you should create .bash_profile in your home directory (which is /Users/[user name]). I always add the line alias ls=”ls -G” in there to have the ls output in color. You will need this file for complete fink installation. Finally, to install fink:

  1. Get the fink tarball from here
  2. Login as superuser (su)
  3. xcode-select -switch /path/to/
  4. go to wherever you downloaded the tarball
  5. tar xvzf fink-[version]
  6. cd fink-[version]
  7. mkdir -p /opt/fink
  8. chown [username] /opt
  9. chown [username] /opt/fink
  10. ./bootstrap /opt/fink
  11. /opt/fink/bin/
  12. exit
  13. /opt/fink/bin/
  14. Restart the terminal
  15. fink selfupdate-rsync
  16. fink index -f

10. Emacs

You can emacs on Terminal already out of the box, so there is no need for a separate application. Help and shortcuts are available on-line, so… The only issue I have enountered is the page-up/page-down key bindings which only scroll through terminal output (useless). To get the usual Emacs behavior, you can do: Terminal -> Preferences -> Settings -> Keyboard. Double click the “page down” option to edit it. Change Action to “send string to shell” and enter 26 as the string. Save it. Double click the “page up” button to edit it. Change Action to “send string to shell” and enter \33v as the string. Save it.

11. Compilers – (g)fortran and Cross platform make

Although XCode comes with a lot of stuff, it is missing some important compilers you will need – (g)fortran and CMake. You can get a version of gfortan here. CMake is available here (get the newest version). Before running the installation, open a terminal to clean up some symlinks created by the installer of previous CMake versions:

cd /usr/bin
sudo rm -f ccmake cmake cmake-gui cmakexbuild cpack ctest

During the graphical installation just choose the default options and when asked press the button to install the command line links. Both installers will put the software in /usr/local.

12. CERNLIB and calculation support (lapack)

Here is a description of the manual installation of CERNLIBs:

  1. Go to and select one of the sources (compressed tar files) – 2006 is good enough.
  2. cd /
  3. mkdir /opt/cern
  4. copy 3 tar files that you’ve already downloaded (cernlib.tar.gz, cernbin.tar.gz, include.tar.gz)  into cern folder you created.
  5. cd /opt/cern
  6. tar -xvzf *.gz (or unpack one by one)
  7. ln -s 2006 pro
  8. ln -s 2006 new  (2006 is most probable, but you might have another year in the directory, change it accordingly)
  9. Now you should set some system variables: write “export” on the command line to see all fixed system variables and their values which has been declared in the past.
  10. You must change the variables related to CERN. So add these commands into your /Users/[user name]/.bash_profile:
  11. export CERN=<Your Cern Directory>
    export CERN_ROOT=<Your Cern Directory>
    export CERNLIB=$CERN/pro/lib
    export CERNBIN=$CERN/pro/bin
    export PATH=$PATH:$CERNBIN
  12. Check your directory structure – you should have bin, include and lib under 2006, if not, make it so.
  13. rm -f *gz
  14. you will very likely be missing a file called libgfortran.3.dylib or libgfortran.2.dylib (try to start PAW) – locate it on the computer and make a symbolic link from it to wherever PAW is looking for it. If there is no such file, you likely have to get additional software that has it, like gcc453 or R – in this case, I had to make a link to /opt/local/lib/gcc45/libgfortran.3.dylib

13. ROOT and Geant + startup scripts

Now we can install ROOT and Geant. For these, a lot of environment variables have to be exported, so I made a script to do it all. You can find the script at the end of this post. Take note that you can not install ANY combination of Root/Geant. A list of valid combinations is here. You can pick one and enter it in the script. This script now also sets the CERN variables. If you do install Root/Geant, you can remove the “export” commands from your .bash_profile. Next, copy the script somewhere (I use /opt), make it executable (chmod +x and add this line in the bash profile: source /opt/ You can add the switch -n , which automatically selects the preffered triad. Finally, you can install ROOT and GEANT:

  1. source the script
  2. mkdir -p $ROOTSYS
  3. cd $ROOTSYS
  4. svn co$(%5B $ROOT_VER == ‘trunk’ ] || echo tags/)$ROOT_VER .
  5. If prompted to accept the server’s certificate, it is safe to type ‘p’ to accept it permanently and thus avoid subsequent requests.
  6. cd $ROOTSYS
  7. ./configure \
    –with-pythia6-uscore=SINGLE \
    –with-alien-incdir=$GSHELL_ROOT/include \
    –with-alien-libdir=$GSHELL_ROOT/lib \
    –with-monalisa-incdir=”$GSHELL_ROOT/include” \
    –with-monalisa-libdir=”$GSHELL_ROOT/lib” \
    –with-xrootd=$GSHELL_ROOT \
    –with-f77=/usr/local/bin/gfortran \
    –with-clang \
    –enable-minuit2 \
    –enable-roofit \
    –enable-soversion \
    –disable-bonjour \
    –enable-builtin-freetype \
  8. The last step was for Lion with CLang (recommended). You may need other options. Note that disable fink is from ver.5-33-02b onwards.
  9. make -j$MJ
  10. source bin/
  11. When you’re done compiling ROOT, you must source again the script (close and re-open terminal).
  12. mkdir -p $GEANT3DIR
  13. cd $GEANT3DIR
  14. svn co$(%5B $G3_VER == ‘trunk’ ] || echo tags/)$G3_VER .
  15. make -j$MJ
  16. Finally, re-source the script. It should now tell you where the installations are. You can try to run root (just type root).

14. Wolfram Mathematica

Wolfram Mathematica is your all-round set of mathematics tools. There is practically nothing you can’t calculate analitically or numerically in there. It is also an interpreter for a number of languages. Mathematica is available from Wolfram site, but it is quite expensive (1345 Euro LoL)! However, usually your institute has a license, so try to get it there.

15. Miscellaneous Applications

To paste LaTeX equations into Office, use tex2im, a nifty shell script that converts equation in LaTeX to any graphics format. I added the following lines in my .bash_profile:

export TEX2IMBIN=/opt/tex2im

A nice application for creating diagrams of all kinds (and electronics diagrams) is called DIA and can be found on the GNOME pages or on the sourceforge. If tou need to add parton distribution functions to your framework, use this link.

16. Cleanup and pimp-up 🙂

Now it is time to do some cleanup. Here is a list of things that come to mind:

  1. Clean up applications (if you have extras), sort them in folders. You can also sort stuff in launchpad, although that is not so critical.
  2. For pimp-up, you can assign some custom icons to the folders in your applications pane.
  3. Use CleanMyMac to cleanup anything you might not need.
  4. Create a “locate” database: sudo launchctl load -w /System/Library/LaunchDaemons/
  5. Rebuild the OsX Metadata index; you can do this in Alfred -> Preferences -> Advanced -> Rebuild Index
  6. Check the disk for errors and look at disk permissions (in Disk Utility)
  7. For further pimp-up, you can install Wallpaper clocks and get a clock that you like or make your own.
  8. In the end, add some user apps you might want, like Skype and VLC player. I also add CoconutBattery and the Unarchiver, as well as YNAB, a finance application.

17. Backup the disk image

In the end, when it is all done, I strongly recommend you back up the disk image (with or without your data on it, as you prefer). This way you can always restore in the time of need. To backup, you can use Disk Utility found in OsX utilities, but take care – this makes an exact copy of your hard drive (meaning that you have to have the backup AT LEAST the size of your hard drive). Also, you should use this only if you have a mac (or, if you have a PC and want to migrate to another, exactly same PC with the same BIOS settings and version). If you have a PC, you can at least use Time Machine to back up your image and then transfer it to another computer in a time of need. Otherwise, to make an image, you can use a free little app called SuperDuper! which will copy all your files and make a bootable image. For this, you can get a cheap, slow stick, since you’ll likely use it only a couple times (if at all).

You can get this manual in PDF here: Mac OsX for physicists (sorry, it has no hyperlinks since it is just a print of this page – more or less).

Here is the promised startup script (collected, modified and rewritten from other scripts)…

# – by N. Poljak
# This script is meant to be sourced in order to prepare the environment to run
# applications such as ROOT, Geant 3 and CERNLibs.

  # CERN variables
  export CERN=/opt/cern
  export CERN_ROOT=/opt/cern
  export CERNLIB=$CERN/pro/lib
  export CERNBIN=$CERN/pro/bin
  export CERNREV=2006

  # Installation prefix of everything else
  export FRAMEWORK_PREFIX=”/opt/framework”
  export FRAMEWORK_TARGET=”macosx64″

  # Triads in the form “root geant3 cernlibs”.
  TRIAD[1]=”v5-33-02b v1-14 2006″
  # …add more “triads” here without skipping array indices…

  # This is the “triad” that will be selected in non-interactive mode.
  # Set it to the number of the array index of the desired “triad”
  export N_TRIAD=1

# Shows the user a list of configured Framework triads. The chosen triad number is
# saved in the external variable N_TRIAD. A N_TRIAD of 0 means to clean up the
# environment

function FrameMenu() {

  local C R M

  M=”Please select a framework triad in the form 33[1;35mROOT Geant3″
  M=”$M CERNLib33[m (you can also\nsource with 33[1;33m-n33[m to skip”
  M=”$M this menu, or with 33[1;33m-c33[m to clean the environment):”

  echo -e “\n$M\n”
  for ((C=1; $C<=${#TRIAD[@]}; C++)); do
    echo -e ”  33[1;36m($C)33[m “$(NiceTriad ${TRIAD[$C]})
  echo “”;
  echo -e ”  33[1;36m(0)33[m 33[1;33mClear environment33[m”
  while [ 1 ]; do
    echo “”
    echo -n “Your choice: “
    read -n1 N_TRIAD
    echo “”
    expr “$N_TRIAD” + 0 > /dev/null 2>&1
    if [ “$N_TRIAD” != “” ]; then
      if [ $R -eq 0 ] || [ $R -eq 1 ]; then
        if [ “$N_TRIAD” -ge 0 ] && [ “$N_TRIAD” -lt $C ]; then
    echo “Invalid choice.”


# Removes directories from the specified PATH-like variable that contain the
# given files. Variable is the first argument and it is passed by name, without
# the dollar sign; subsequent arguments are the files to search for

function FrameRemovePaths() {

  local VARNAME=$1
  local DIRS=`eval echo \\$$VARNAME`
  local NEWDIRS=””
  local OIFS=”$IFS”
  local D F KEEPDIR

  for D in $DIRS
    if [ -d “$D” ]; then
      for F in $@
        if [ -e “$D/$F” ]; then
    if [ $KEEPDIR == 1 ]; then
      [ “$NEWDIRS” == “” ] && NEWDIRS=”$D” || NEWDIRS=”$NEWDIRS:$D”


  eval export $VARNAME=”$NEWDIRS”


# Cleans leading, trailing and double colons from the variable whose name is
# passed as the only argument of the string

function FrameCleanPathList() {
  local VARNAME=”$1″
  local STR=`eval echo \\$$VARNAME`
  local PREV_STR
  while [ “$PREV_STR” != “$STR” ]; do
    STR=`echo “$STR” | sed s/::/:/g`
  eval export $VARNAME=\”$STR\”

# Cleans up the environment from previously set (DY)LD_LIBRARY_PATH and PATH
# variables

function FrameCleanEnv() {
  FrameRemovePaths PATH xrdgsiproxy root
  FrameRemovePaths LD_LIBRARY_PATH \
  FrameRemovePaths DYLD_LIBRARY_PATH \

  # Unset other environment variables and aliases

# Sets the number of parallel workers for make to the number of cores plus one
# in external variable MJ

function FrameSetParallelMake() {
  MJ=`grep -c bogomips /proc/cpuinfo 2> /dev/null`
  [ “$?” != 0 ] && MJ=`sysctl hw.ncpu | cut -b10 2> /dev/null`
  # If MJ is NaN, “let” treats it as “0”: always fallback to 1 core
  let MJ++
  export MJ

# Exports variables needed to run the Framework, based on the selected triad

function FrameExportVars() {


  # ROOT

  export PATH=”$ROOTSYS/bin:$PATH”
  export PATH=”$PATH:$GSHELL_ROOT/bin”

  # Geant 3


# Prints out the framework paths.

function FramePrintVars() {

  local NOTFOUND=’33[1;31m<not found>33[m’

  # Detect Geant3 installation path
  if [ -x “$GEANT3DIR/lib/tgt_$FRAMEWORK_TARGET/” ]; then

  # Detect ROOT location
  if [ -x “$ROOTSYS/bin/root.exe” ]; then

  # Detect CERNLib location
  if [ -x “$CERN/2006/bin/paw” ]; then

  # Detect CERNLib location
  if [ -x “/opt/fink/bin/apt-get” ]; then

  echo “”
  echo -e ”  33[1;36mCERNLib33[m         $WHERE_IS_CERN”
  echo -e ”  33[1;36mFINKLib33[m         $WHERE_IS_FINK”
  echo -e ”  33[1;36mROOT33[m            $WHERE_IS_ROOT”
  echo -e ”  33[1;36mGeant333[m          $WHERE_IS_G3″
  echo “”


# Separates version from directory, if triad is expressed in the form
# directory(version). If no (version) is expressed, dir is set to version for
# backwards compatiblity

function ParseVerDir() {

  local VERDIR=”$1″
  local DIR_VAR=”$2″
  local VER_VAR=”$3″

  # Perl script to separate dirname/version
  local PERL=’/^([^()]+)\((.+)\)$/ and ‘
  PERL=”$PERL”‘ print “‘$DIR_VAR’=$1 ; ‘$VER_VAR’=$2” or ‘
  PERL=”$PERL”‘ print “‘$DIR_VAR’=’$VERDIR’ ; ‘$VER_VAR’=’$VERDIR'”‘

  # Perl
  eval “unset $DIR_VAR $VER_VAR”
  eval `echo “$VERDIR” | perl -ne “$PERL”`


# Echoes a triad in a proper way, supporting the format directory(version) and
# also the plain old format where dir==ver for backwards compatiblity

function NiceTriad() {
  export D V
  local C=0
  for T in $@ ; do
    ParseVerDir $T D V
    if [ “$D” != “$V” ]; then
      echo -n “33[1;35m$D33[m ($V)”
      echo -n “33[1;35m$D33[m”
    [ $C != 2 ] && echo -n ‘ / ‘
    let C++
  unset D V

# Main function: takes parameters from the command line
function FrameMain() {

  local C T

  # Parse command line options
  while [ $# -gt 0 ]; do
    case “$1” in
      “-q”) OPT_QUIET=1 ;;
      “-v”) OPT_QUIET=0 ;;
      “-n”) OPT_NONINTERACTIVE=1 ;;
      “-i”) OPT_NONINTERACTIVE=0 ;;
      “-c”) OPT_CLEANENV=1; ;;
      “-u”) OPT_DONTUPDATE=1 ;;

  # Always non-interactive+do not update when cleaning environment
  if [ “$OPT_CLEANENV” == 1 ]; then

  [ “$OPT_NONINTERACTIVE” != 1 ] && FrameMenu

  if [ $N_TRIAD -gt 0 ]; then
    for T in ${TRIAD[$N_TRIAD]}
      case $C in
        0) ROOT_VER=$T ;;
        1) G3_VER=$T ;;
        2) CERN_VER=$T ;;
      let C++

    # Separates directory name from version (backwards compatible)
    ParseVerDir $G3_VER    ‘G3_SUBDIR’    ‘G3_VER’

    # N_TRIAD=0 means “clean environment”

  # Cleans up the environment from previous varaiables

  if [ “$OPT_CLEANENV” != 1 ]; then

    # Number of parallel workers (on variable MJ)

    # Export all the needed variables

    # Prints out settings, if requested
    [ “$OPT_QUIET” != 1 ] && FramePrintVars

    if [ “$OPT_QUIET” != 1 ]; then
      echo -e “33[1;33mFrameowrk environment variables cleared33[m”

  # Cleans up artifacts in paths
  FrameCleanPathList LD_LIBRARY_PATH
  FrameCleanPathList DYLD_LIBRARY_PATH
  FrameCleanPathList PATH


# Entry point

FrameMain “$@”
unset FrameCleanEnv FrameCleanPathList FrameExportVars FrameMain FrameMenu FramePrintVars \
  FrameRemovePaths FrameSetParallelMake

Posted in Computing | Tagged , , , , , , , | 4 Comments