Archive for the ‘ IT ’ Category

SD Launches Gatekeeper 3.1 platform [New Features]

Gatekeeper Platform

Scaled Dynamics has released a series of enhancements to its flagship product, Gatekeeper. The new version (3.1) offers bug resolutions, “Iceberg” functionality to Spread Bandit and the introduction of the Position Manger. Gatekeeper 3.1 is immediately available for purchase and free 2 week demo in the Scaled Dynamics store. Existing users of Gatekeeper 3 may upgrade to 3.1 for no charge by logging into the Scaled Dynamics Website with their existing SD_ID.

Using Spread Bandit’s new “Iceberg” functionality, Spread Bandit will attempt to obtain a desirable spread position by working orders using a predefined “clip size” and re-submitting orders until the entire desired quantity has been filled.

Position manager allows traders and risk managers to reconcile fills and analyze positions under a variety of market conditions including changes in price, volatility, time, and even hypothetical fills. Positions can be saved to the SD Cloud for later use.

More Info:

Microsoft Surface Pro: First Impressions

It all started a week ago when my laptop bag was stolen. My iPad and Macbook Air, gone. I’m going on vacation in a week and I was going to need to replace it but I didn’t want to spend the fortune that replacing those devices individually would cost (about $3500).

I thought about just getting a tablet and ditching the concept of the laptop altogether however that would preclude me from writing code on the road, something that I frequently do. It occurred to me that I might just buy another Macbook and ditch the tablet, but I really do read on my iPad quite a bit. Enter Microsoft Surface.

Microsoft Surface Pro

My Microsoft Surface Pro in Action

The specifications of the top of the line Surface Pro were almost exactly equivalent to that of my Macbook. The only thing I’d have to live with would be the smaller screen, lack of osx (that I admittedly rarely used), and perhaps a sacrifice in the battery life department. I figured that if I didn’t like it as a computer, I could always get another macbook and I’d just be stuck with an overpriced tablet. After reading this article about developing software on the Surface, my mind was made up. I went to a Best Buy and after suffering through their horrible customer service, the 128 gig Surface Pro was mine.

After a week of using the Surface, I must say that I’m overall disappointed.

The Good:

  • Powerful! I’ve yet to throw anything at it that Surface can’t handle. It compiles Gatekeeper 3 without breaking a sweat, and it honestly FEELS a lot faster than my macbook.
  • Windows 8 works as a tablet OS so much better than I’d thought, though it still lacks the polish of iOS

The Bad:

  • Atrocious Battery Life. I’d read that it was bad, though nothing could prepare me for battery life THIS bad.
  • The power connector seems to be a magsafe ripoff, but it doesn’t work very well. I find that I have twice as much fumbling to do than I did with my magsafe adapter on the macbook.
  • The pen attachment uses the same port as the power adapter, meaning hat I have no place to put it when I’m charging, and may very well lose it.
  • Overall Polish. Coming from an Apple environment, I’ve come to expect a high degree of polish from the products that I use. Things like switching from portrait to landscape mode, fullscreen “apps,” and their “multitasking” seem to kludgy at best
  • Keyboard often doesn’t connect to the tablet seamlessly. I have disconnect and reconnect it a few times.
  • Weight. I know that some compromises need to be made. For its size, the Surface Pro is incredibly powerful, but it just feels too heavy when I’m reading with the virtually unusable kindle app


In all I was hoping to combine the best that a tablet and a laptop have to offer into one device. I think that what I ended up with was a very powerful computer whose design compromises to facilitate such power came at too high a cost. I think that what I’ll end up doing in the near future is buying an ipad mini whenever it supports retina display, and spring for a macbook pro with retina display.


Update 8/7/2013: The pen is gone. The little magnet that keeps it in its place isn’t very strong and it fell as I was getting out of an elevator, falling into the crack between the elevator and the ground and going into the elevator shaft.

AWS: The Complete Guide to Setting up a Simple Webserver

In short, I got sick and tired of paying $700/month for a cabinet in a datacenter and hosting my own servers. The failover was never REALLY truly redundant and my firm is just too small to justify hosting its own infrastructure. I’ve never been a fan of hosting services because I’ve always found them too limiting. I consider myself to be a damn good systems administrator and not having access to router configs and having root access to the machines were nonstarters for me. I’m set in my ways.

While my experience so far has been excellent, there are a number of pitfalls that you need to be aware of, and I will be sure to address those towards the end. This guide is intended for non-technical people to do very technical things so expect a LOT of explanation.

Sign up for Amazon Cloud Services

First, go to and create an account. You’ll have to enter your billing info, but as long as you stay within the free tier, you won’t be charged anything.

Set up your virtual machine

Next, you’ll want to create an EC2 instance. AWS Free Tier gives you 750 hours per month of Linux or Windows EC2 Micro Instances. There’s roughly that many hours in a month, so as long as you only have one micro instance, you should be completely free. For 99% of small business websites, this is PLENTY, though Amazon does offer a variety of configurations!

1. Sign in to the AWS Management Console. It’s a link under the dropdown in the top right with the credentials you already created.
2. Click on EC2
3. Click the button marked “Launch Instance”.
4. Click “Classic Wizard” and continue.
5. Select a 64 bit Amazon Linux AMI type server. This is a CentOS based linux server for those who are curious.
6. Set the number of instances to 1 and make sure that you have Micro for the type. The availability zone shouldn’t make a huge difference unless you’re latency sensitive and you know where your users are concentrated. If this isn’t you, select “no preference” on the dropdown and continue. On the next page, all of the defaults are fine, so go ahead and hit continue again.
8. On the next page, you’ll have to give server a name. Give your server a name in value box next to name and hit continue.
9. In order to access the server from your local machine, you will need to create a key pair. This will become important later when we discuss how to connect to the server, but for now just enter a name under “Create a New Key Pair” and click “Create & Download your Key Pair”. This will download a .pem file. NOTE: THIS FILE IS IMPORTANT Put it somewhere secure and preferably backed up.
10. To set up the firewall of the server, we need to allow webserver and administrative related traffic in but block out anything that might be malicious. See the settings in the image below:
11. Click “Launch” and you’ll have to give it a few minutes while AWS runs off and builds your configuration.

While we’re waiting, I want to get one last step out of the way so that we’re on top of things for what’s next. If you go to the instances menu item on the left, you’ll bring up a list that contains your server. Clicking on the server instance will bring up some information about your server on the bottom. Scroll down to “Public DNS” and copy the value to the right of it. You’re going to be using this address quite a bit. If you have registered a domain that you want to point to this server, now would be the time to do it. Go to your domain registrant and paste the Public DNS value into wherever your forwarding to. I host through godaddy, so I went to my DNS manager and changed the “@” record to the copied value.

Now let me explain a bit about what you’ve done so far. Those with a technical background can skip to the next section.

A virtual machine is a piece of software that emulates a computer’s hardware. You can put any operating system on it and it will just run. Virtual Machines are great for things like creating software testing environments because you can very quickly set up a “brand new clean” virtual machine, perform whatever tests you need, then throw it out and start fresh. You can vary hardware configurations such as memory, processor architecture, and hard drive size relatively easy. Amazon EC2 instances are virtual machines with public IP addresses that can be accessed from the internet, so they are ideal for our purposes. So far you’ve created a virtual server and made note of its public address, possibly hooking it up to a domain if you have one.

Get Connected to your VM

I’m running a mac using parallels, so I can explain how to connect your server to both environments. In my windows environment, I use WinSCP for file transfers and Putty for shell access. So go ahead and download both of those programs first. Next, dig up that .pem file that I told you was super important. You’re going to have to do a bit of work to get that .pem file to work with putty because it can only really use its proprietary format (don’t ask me why).

1. Open PuTTYgen.
2. Find .pem file. Click Conversions -> Import key.
3. Open the PEM file. The Key pane should populate with a public key, private key fingerprint, comment, and passphrase.
4. Change the comment from “imported-openssh-key” to whatever you named your key pair in step 9 above.
5. Pick a passphrase and click “Save private key.”
6. You’re going to store your key in a timesaver called Pagent, so go ahead and open it. When you open Pagent you’ll just see a new icon in the systemtray.
7. Right click on the new icon in the systray and click “Add Key”
8. Open your PPK file that you created with PuTTYgen and enter the passphrase you created.
9. Close the window
10. Grab the address of the server. Open Putty and paste the public address you copied into the Host Name input.

For Winscp, you’re just going to click the “new” button, and enter all of your hostname and login credentials like you did for Putty. There’s a “Private Key File” option that you’ll use to specify that same .PPK file that you created for Putty. After you’ve done this, go ahead and try to connect to browse the filesystem of your server.

On the mac side, I use the terminal to issue commands on the server. There’s a bit of set up involved to make it easy.
1. Take the key pair file (this is the .PEM, not the .PPK) and copy it to “/[your user id]/.ssh/”
2. Start up the Terminal application. I just go to the search bar and type “Terminal”
3. type “ssh ec2-user@[your server's host address]“. The command will ultimately end up looking something like this: ssh

Get services running on the VM

Now that our server us up and running and we have access to it, it’s time to issue a bunch of linux commands. I’m going to tell you what they are, then explain.

1. Connect to your server either using putty or mac terminal. The default login is ec2-user
2. Type in (“run” for future reference) sudo su. This will switch users to the root user. The root user is allowed to do whatever it wants whereas when you logged in as ec2-user, you’re highly restricted. If you’re on a PC, you can just copy the command text from here, go into your putty window and right click.
3. yum update – yum is a package manager. It connects to a repository of all of the latest greatest software available for this installation of linux and installs whatever software pacakges you tell it to. Think of it as the equivalent of windows update on steroids.
4. yum install httpd mysql mysql-server php php-mysql php-xml php-pdo php-odbc php-soap php-common php-cli php-mbstring php-bcmath php-ldap php-imap php-gd nano sysstathttpd is also known as Apache. It’s a webserver that will ultimately serve up your html pages and php scripts. MySQL is a database server that will be required by our later installations of drupal and wordpress. PHP is a very powerful scripting language that is required by wordpress and drupal. It’s an interpreted language that outputs text (html, css, javascript, or whatever you tell it to really) to a browser. Nano is a text editor that we’ll use when we’re not editing files in winscp. Sysstat is used to get system monitor like information.
5. Fire up the webserver by running service httpd start
6. Fire up the database server by running service mysqld start
7. Let’s create a user ID and password for the mysql server and then restart the service mysqladmin -u root password [new password] and then run service mysqld restart
8. Test everything out to make sure that it worked. cd /var/www/html/
nano index.php type in <?php phpinfo(); ?> and then CTRL + O then CTRL + X. Now open a web browser and navigate to your hostname (if you’ve already forwarded your domain here, go ahead and give that a shot). The page should open with detailed information about your php settings.
9. [Optional] To make your life easy from a permission standpoint, it can’t hurt to make some folders easily accessible by ec2-user so that you can copy and run from your webserver. chown -R ec2-user /var/www

Install web software

In this section, our ultimate goal is to install a CMS such as wordpress or drupal, but first we’re going to make our lives easy from a database standpoint by installing phpMyAdmin.

1. Go ahead and download phpMyAdmin from the link above. Unzip into a folder and copy that folder to /var/www/html/ using winscp (or a copy command if you’re on a mac).
2. Change the name of the folder to something you can remember. “db_admin,” for example.
3. From a web browser, navigate to the folder you just installed. “,” for example.
4. PhpMyAdmin will allow you to create databases, which will be used by wordpress and/or drupal. You can create the databases now, but I would actually recommend waiting because web software will usually create the databases for you.
Screen Shot 2013-05-06 at 10.16.26 AM
5. Using the steps above, follow this exact procedure to copy wordpress and drupal to their own folders. The installations themselves are pretty self explanatory, but if you need help I might be talked into doing a step-by-step guide for each of those.

Optimize Machine

I had this really nasty issue of the virtual machine running out of memory and mysql blowing up and crashing. I made some changes to my my.cnf file that made the installation significantly more stable but I was still left feeling like I wasn’t leaving myself enough room for error, so I also created a swapfile just to put my mind at ease.

You’ll want to navigate to /etc/my.cnf and open in an editor. If you login as root (sudo su just like before) you can edit in nano, or you can use chown to allow you to edit the file in winscp as ec2-user. The changes I made to my my.cnf file are as follows:

# Set internal buffers, caches and stacks very low
key_buffer = 320K
table_cache = 10
sort_buffer_size = 320K
read_buffer_size = 320K
read_rnd_buffer_size = 24K
net_buffer_length = 24K
thread_stack = 320K

innodb_buffer_pool_size = 10M

To add a swapfile, issue the following commands in this exact order:

sudo dd if=/dev/zero of=/var/swapfile bs=1M count=2048
sudo chmod 600 /var/swapfile
sudo mkswap /var/swapfile
echo /var/swapfile none swap defaults 0 0 | sudo tee -a /etc/fstab
sudo swapon -a