Oldskool Wacom

At Aligent all our workstations are on CentOS 7, which is fine & dandy except for one thing. I couldn’t get my Wacom tablet to work.

Ever since I started using computers I’ve used a graphics tablet as my preferred input device and after 20 odd years I can’t stand using a mouse.

Why? Aside from the issue of RSI it just feels so slow and inaccurate. Using a mouse there is another step in the chain between brain and screen. You look at  the screen and know where you want the mouse, then you move your hand and the cursor moves closer to the target. Then you repeat those steps until the cursor is in the right place and THEN you can click. With a tablet, the pen is mapped to the screen. Your body is clever enough to quickly learn the exact position to move your hand  and touching the pen to the tablet is a click. Much quicker.

For the past few weeks I’ve been unable to get my latest Wacom tablet to work with linux. Today I found a solution. I dug out a 20 year old tablet I stole from a company I worked for in London back in the 90’s. Sure enough I plugged it in and bosh – it worked first time. Happy days.

I just love oldskool solutions to modern tech problems.

Vagrant for frontend development

As a frontend developer you’ll often have to set up working environments for the websites you’re working on. It’s not too hard to set up a MAMP stack of Apache,  PHP , MySQL etc on a machine, but sometimes you’ll have different requirements for different projects. For instance one website might require PHP 5.6 on nginx and another 5.3 on Apache.

You could try setting up configurable environments and switch between them, but are you 100% sure that the environment you’re running is identical to the production server it will need to run on when you’ve finished?

What you need is a way of your team to easily create and work on a specifically configured environment that is identical, quick and easy. That’s where vagrant comes in.

Vagrant is a tool for building and managing virtual machine environments in a single workflow. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity, and makes the “works on my machine” excuse a relic of the past.

Who benefits?

  • Developers
    Vagrant will isolate dependencies and their configuration within a single disposable, consistent environment, without sacrificing any of the tools you are used to working with (editors, browsers, debuggers, etc.)
  • DevOps
    Vagrant gives you a disposable environment and consistent workflow for developing and testing infrastructure management scripts. You can quickly test things like shell scripts, Chef cookbooks, Puppet modules, and more using local virtualization such as VirtualBox or VMware.
  • Designers
    Vagrant will automatically set everything up that is required for that web app in order for you to focus on doing what you do best: design.

Installing Magento 2 on Red Hat Openshift

Openshift is brilliant. Mostly because it’s free, but also for it’s more advanced features like being able to deploy your website simply pushing your master branch from git.

Red hat Openshift

Getting back to it being free, there are obviously limitations in the scope of the gears (I think of gears as servers). In trying to setup Magento 2 I came up to those limitations. According to How to Install Magento 2 on Openshift;

  • Magento 2 requires PHP 5.5+ and OpenShift currently has official cartridges of up to PHP 5.4
  • Magento 2 requires shit loads of space, and OpenShift free gears are limited to 1GB
  • Magento 2 requires MySQL 5.6+ and OpenShift currently supports up to MySQL 5.5 official cartridges

After following this excellent set of instructions, we managed to launch a full fledged Magento 2 store, hosted for free here. All you’ll need is a free openshift account, and the OpenShift Client Tools.

# Create a new OpenShift app with NGINX as web server
# Replace "123" by your actual api key & secrets and
# $myapp with your preferred app name.

# Write down the “Git Remote” ssh url that will be shown once the command finishes.
rhc create-app $myapp http://cartreflect-claytondev.rhcloud.com/github/boekkooi/openshift-cartridge-nginx API_KEY=123 API_SECRET=123

# Install PHP 5.6 cartridge into the app
rhc cartridge add -a $myapp http://cartreflect-claytondev.rhcloud.com/github/boekkooi/openshift-cartridge-php

# Install mysql-5.5 cartridge into the app
rhc cartridge add -a $myapp mysql-5.5

# Clone our repository and push it to your app, we will take care of everything for you.
git clone https://github.com/javilumbrales/magento2-openshift
cd magento2-openshift

# Remember to replace $myapp by your app’s name and YOUR_GIT_REMOTE by your actual repository url, the one that you got when you created the app (ie. should be something like ssh://*******@magento2-mage2.rhcloud.com/~/git/yourappname.git/)
git remote add $myapp YOUR_GIT_REMOTE
git push $myapp master -f

Magento is hard

Free open source ecommerce platform helping you sell online

I’m not going to lie, Magento is hard. The codebase contains 30,000 files. It’s like WordPress’s much more sophisticated older sibling. It’s modular and designed to be chopped up and hacked so long as that is done in the right way. There are plenty of wrong ways.

If you need to run a website on your local mac, you’re going to need to follow read “Installing Nginx in Mac OS X Maverick With Homebrew“.

That should give you what you need to then attempt to install Magneto for the first time. To be fair, that part is quite easy. It’s when you lift up the hood and catch sight of all those olden days cogs and whirring moving parts that you realise that there’s a lot more to Magento than a shopping cart.