Fork me on GitHub

Drew's World

Rants, News, Etc on my Life and Projects

The UpDesk UpWrite

by Andrew De Ponte (@cyphactor)


Over the last few years I have been paying more and more attention to ergonamics in my workspace. It all began when I started having issues with my wrists and given I am a software developer I need my hands to work properly. This sent me down a path of exploring ergonomic keyboards and standing desks. I started trying out the cheaper ergonomic keyboards and never had any luck. Enter the Kinesis Advantage Pro, I finally decided to drop a chunk of change on it and I really haven’t looked back. My next exploration will be the ErgoDox which I recently ordered all the parts for.

A little bit before I switched to the Kinesis Advantage Pro I switched to a fixed height standing desk which I bought from Ikea for approx. $150. I have been using the fixed height standing desk for over a year now and I love it. However, the more research I do around the topic the more I have found that it isn’t good to stand all day, which is what I currently do. Therefore, I started looking into motorized standing/sitting desks. After a lot of research I finally decided on the UpDesk UpWrite. It is at the lower end of the price range, $1,149.00, for motorized standing/sitting desks but it has the specs of a lot of the more expensive alternatives. It also has the added benefit that it is a dry erase/wet erase surface so you can scribble notes on it while working.

The Setup

Putting it Together

My UpDesk UpWrite arrived tonight and it was actually very straightforward in terms of physical setup. The included instruction sheet explained things very well. It is actually much simpler in my opinion than most Ikea furniture. It probably took me 25 mins to get it put together. I was extremely impressed with the quality of packaging and the quality of the parts them selves. It seems to be an extremely solid piece of furniture that will last a long time.

Initializing and Calibrating

Once I physically setup the desk I tried to initialize it and callibrate it. Initializing the desk was very straightforward on their instruction sheet and worked like a champ. Calibrating it on the other hand did not work following the instructions they provide. The instructions for calibration that were provided are as follows:

  • At any height, measure the distance from the floor to the top of the desk.
  • Press both the “UP” and “DOWN” arrows at the same time until the display shows three bars (—).
  • Release and immediately set the correct height by pressing either the “UP” or “DOWN” arrow until the correct height is displayed.

I tried the above steps numerous times and every time I got to the third step and pressed the “UP” or “DOWN” arrows to adjust the displayed height it would also move the desk up or down which made no sense if the goal of the process was to callibrate the height.

So, it took a little playing around but I finally figured out how to properly callibrate it. The directions to calibrate it should really be as follows:

  • At any height, measure the distance from the floor to the top of the desk.
  • Press and hold both the “UP” and “DOWN” arrows at the same time, the display will immediately display three bars (—), continue to hold the “UP” and “DOWN” arrows until the display flashes from (—) to the displayed height.
  • Release and immediately set the display to height you previously measured in the first step by pressing either the “UP” or “DOWN” arrow until the correct height is displayed.

Dialing in Presets

Once I had it all calibrated I followed the rest of the instructions to set the presets to heights that I like for standing and sitting. All worked great.


So far the UpDesk UpWrite seems like a great desk. It was a little frustrating that the directions weren’t clear enough, or rather just plain wrong, for how to calibrate it. However, I am willing to look past that small hickup and I hope this blog aids others in getting their desks calibrated quicker than I did.

Shrinking Vagrant Linux Boxes

by Andrew De Ponte (@cyphactor)

So, lately I have been using Virtual Machines via Vagrant a siginificant amount as we are now using them to host our development environments and dependencies for all the development work we do. We have been using Puppet to automate the configuration of our environments and to make building our boxes easier.

Once you have provisioned a VM and you have it all dialed, you will most likely want to create a Vagrant Box from that VM and host it up on S3 so that new developers can get started simply by installing Vagrant, cloning your repository and running:

$ vagrant up

This actually works great. However, I found that the VM disks both for the Vagrant VMware Provider and the VirtualBox Provider grow dynamically, but they never shrink. So, when I was going through the process of building the VM and installing all the dependency software, etc. it was bloating the base machine. This was the case even though I removed the temporary cruft from the filesystem on the guest.

With a little research and some trial and error I found that you can shrink these disks as long as they are ext3 or ext4 file systems with the help of the following command:

$ vagrant ssh
$ sudo dd if=/dev/zero of=wipefile bs=1024x1024; rm wipefile

What the above command is doing is simply writing zero bytes to the wipefile in chunks of 1024 bytes until there is no disk space left in your VM’s disk. Then it is removing the wipefile. This basically leaves all those excess bytes zero’d out.

This is necessary because the shrink/compaction tools provided by either VMWare or VirtualBox both have no way of identifying space they can free up in the disks unless they are zero’d out.

Before shrinking/compacting you should always make sure to exit the guest machine using the following commands:

$ exit
$ vagrant halt

With VMware you can shrink the vmdk disk by doing the following:

$ vmware-vdiskmanager -d /path/to/main.vmdk
$ vmware-vdiskmanager -k /path/to/main.vmdk

I discovered the above commands in the Vagrant VMware documentation,

With VirtualBox the only way I was able to shrink the disk image was to clone it to a smaller copy using the following command:

$ VboxManage clonehd name-of-original-vm.vdi name-of-clone-vm.vdi

Once you have cloned the vdi you can then import it into the VM through VirtualBox and get rid of the original vdi.

That is how you “Shrink Vagrant Linux Boxes!”

AT&T Samsung Galaxy S3 with Google Voice

by Andrew De Ponte (@cyphactor)

Hi All,

It seems there is a little hickup with the instructions google provides you with to “Activate Google voicemail no this phone”. That is at least for the instructions for AT&T while trying to get Google Voice setup on an AT&T Galaxy S3. The instructions Google provides say to enter the following exactly as written as if dialing someone.

*004*1<your 10 digit phone number>#

Every time I tried the above instructions my phone would return an error code. I got so frustrated I even got online with AT&T tech support so that they could verify the state of things as I was trying various other commands that I found on the web. None, of the ones that worked allowed me to setup Google Voice as my voicemail provider appropriately. After being online with AT&T tech support for a while. I tried simply prepending another * character to the entire thing. Guess what, magically it worked. I even had AT&T tech support verify that it made the proper configuration change on my account. So the correct command that Google should be telling people to enter exactly as written is really the following:

**004*1<your 10 digit phone number>#

To disable voicemail forwarding I used the following MMI code.


Anyways, hope this blog post helps some other people struggling with this out there. I know when I was searching I couldn’t find any solution though I did see a number of message boards with people looking for an answer to this problem. If I were a better person I would probably go back and update all those message boards with my solution. I just can’t bring myself to do it.